タグ: Python

お名前.comでサブドメインを設定してRenderに割り当てる方法【初心者向け解説】

Webアプリや静的サイトを Render でデプロイしたあと、独自ドメインを割り当てたいと思い、少し調べた内容をまとめています。
この記事では、お名前.comで取得したドメインにサブドメインを作成し、Renderに適用する方法をわかりやすく解説します。


手順の全体像

大きな流れは以下の通りです。

  1. お名前.comでサブドメインを作成
  2. DNSレコードを設定(AAAAレコード削除 + CNAME/Aレコード追加)
  3. Render側で独自ドメインを追加し、検証(Verify)
  4. SSL証明書を発行して公開

では、順を追って詳しく見ていきましょう。


1. サブドメインを作成する(お名前.com)

  1. お名前.com Navi にログイン
  2. 「ドメイン一覧」から対象ドメインを選択
  3. (レンタルサーバーを利用している場合)レンタルサーバー管理画面にログイン
  4. 「+サブドメイン」をクリックし、任意のサブドメインを入力(例:appapp.example.com
  5. 作成を保存し、数分待機

これでサブドメインが追加されます。続いてDNS設定を行います。


2. DNSレコードを設定する

AAAAレコードを削除

  • IPv6用の AAAAレコード はRender非対応なので削除してください。
  • 残しておくと接続不良の原因になります。

サブドメインをRenderに向ける

サブドメインを使う場合は CNAMEレコード を追加します。

  • ホスト名:app
  • TYPE:CNAME
  • VALUE:Renderで表示されるドメイン(例:your-service.onrender.com
  • TTL:3600(デフォルトでOK)

ルートドメインを使う場合(任意)

もし example.com 自体をRenderに割り当てたい場合は Aレコード を追加します。

  • ホスト名:空欄または@
  • TYPE:A
  • VALUE:216.24.57.1(Render公式ロードバランサIP)

設定を保存して、反映を待ちましょう(数分〜最大72時間)。


3. Renderでドメインを追加・検証する

  1. Renderのダッシュボードにログイン
  2. 対象サービス → Settings > Custom Domains
  3. 「Add Custom Domain」から app.example.com を追加
  4. DNS設定が正しくできていれば「Verify(検証)」が通ります
  5. 検証成功後、SSL証明書(Let’s Encrypt)が自動発行されます

4. 動作確認

  • ブラウザで https://app.example.com にアクセスして、サイトが表示されるか確認
  • DNS Checker などで反映状況を確認可能
  • Render管理画面でSSLステータスが「Issued」になっていればOK

まとめ

  • サブドメインを作成 → AAAAレコード削除 → CNAMEでRenderに向ける
  • ルートドメインも使うならAレコードを追加
  • RenderでVerifyすれば、SSL証明書も自動発行

この流れで、お名前.comのドメインをRenderに割り当てることができます。

【Python】Youtube APIを使って動画情報取得してみた

本業マーケティング、趣味プログラミングのKenです。

私は作業中にライブカメラをスクリーンに流しておくのが好きで、よくYoutubeで猫とかリスのライブ映像や海外の街を流しています。

気分によって見る動画を変えているのですが、Youtubeで調べてもアルゴリズムのせいで似た動画しか表示されません。そこでYoutubeのAPIを使って、ライブ配信をしている動画をリスト化してやろうと思い立ちました。

YouTube APIでできること

Youtube APIでは以下の情報を取得できます。

  • 動画情報:タイトル、説明、再生回数、評価数、コメント数、サムネイル画像、公開日、タグ、ライセンス情報など。
  • チャンネル情報:チャンネル名、説明、登録者数、作成した再生リスト、バナー画像など。
  • 再生リスト情報:再生リストのタイトル、説明、動画のリスト、各動画の詳細情報など。
  • コメント情報:動画やチャンネルに投稿されたコメントの内容、投稿者情報、コメントの返信など。
  • 検索結果:特定のキーワードや条件に基づく動画、チャンネル、再生リストの検索結果。

今回は動画IDからタイトル、説明、サムネ画像、タグを取得していきたいと思います。

Youtube APIキーを取得

まずはAPIキーとかを取得します。細かいことを書くのはめんどくさいので、以下ChatGPTにまとめてもらいました。

1. Google Cloud Consoleでプロジェクトを作成

Google Cloud Consoleにアクセスし、Googleアカウントでログインします。

左上のメニューから「プロジェクトを選択」をクリックして新しいプロジェクトを作成します。

2. YouTube Data APIを有効化

プロジェクトを選択した状態で、左側の「APIとサービス」→「ライブラリ」を選択します。

「YouTube Data API v3」を検索し、選択して「有効にする」をクリックします。

3. APIキーの取得

「APIとサービス」→「認証情報」をクリックします。

「認証情報を作成」ボタンをクリックして「APIキー」を選択します。生成されたAPIキーをコピーしておきます(このキーはAPIリクエストで使用します)。

コーディング

YOUTUBE_API_KEY = 'ここにAPIキー'
VIDEO_ID = 'OmWt0efvmNQ'

さっきコピーしたAPIキーを「YOUTUBE_API_KEY」にいれておきます。あと情報を取得したい動画のIDをVIDEO_IDにいれます。

#YouTube APIクライアントの設定
youtube = build('youtube', 'v3', developerKey=YOUTUBE_API_KEY)

# 動画情報を取得用関数
def get_video_info(youtube, video_id):
    request = youtube.videos().list(part="snippet,recordingDetails", id=video_id)
    response = request.execute()
    if "items" in response and response["items"]:
        video_info = response["items"][0]
        title = video_info["snippet"]["title"]
        description = video_info["snippet"]["description"]
        thumbnail_url = video_info["snippet"]["thumbnails"]["high"]["url"]
        channel_name = video_info["snippet"]["channelTitle"]
        channel_id = video_info["snippet"]["channelId"]
        channel_url = f"https://www.youtube.com/channel/{channel_id}"  # チャンネルリンク生成
        category_name = get_category_name(video_info["snippet"]["categoryId"])
        tags = video_info["snippet"].get("tags", [])
        location = video_info.get("recordingDetails", {}).get("location", None)

        # 位置情報から場所の名前を取得
        if location:
            location_name = get_location_name(location["latitude"], location["longitude"])
        else:
            location_name = "位置情報なし"

        update_google_sheet(video_id, channel_name, channel_url, category_name, tags, location_name, thumbnail_url)

  • snippet にはタイトル、説明、タグ、チャンネル情報などの基本情報が含まれます。recordingDetails には位置情報が含まれます。
  • responseの中身は
    • title: 動画のタイトル
    • description: 動画の説明
    • thumbnail_url: 動画のサムネイル画像URL(高解像度版)
    • channel_name: 動画をアップロードしたチャンネル名
    • channel_id: チャンネルのID
    • channel_url: チャンネルリンクを生成するために channel_id を利用し、チャンネルURLを構築します
    • category_name: 利用してカテゴリー名を取得
    • tags: 動画に関連付けられたタグのリスト。タグが存在しない場合は空のリスト
    • location: recordingDetails に含まれる位置情報(緯度と経度)。位置情報がない場合は None
  • update_google_sheet(…)で取得情報をスプレッドシートに追記

自分用メモすぎで、全く優しくない説明ですみません。わからない点があれば、お気軽にコメントください!お手伝いします!