ビデオと字幕 · YouTube サムネイル ダウンローダーとメタデータ ビューアー
oEmbed がビデオの公開タイトル、チャンネル、埋め込みコードを返す方法
· 仕組み
YouTube を埋め込みます メタデータ
ビデオ サイトにリンクの公開タイトル、作成者、埋め込み HTML を問い合わせる、キーを使用しない標準的な方法があります。この投稿では、oEmbed、リクエストとレスポンスがどのようなものであるか、そしてツールがページをスクレイピングせずにメタデータを表示する方法について説明します。
ページをロードせずにタイトルとチャンネル — oEmbed が答えるように設計された質問
ブロガーは、動画再生ページを読み込まなくても、公開動画の現在のタイトルとチャンネルを知ることができます。 ToolAcre は、訪問者が明示的に Fetch を押した後にのみ、YouTube の oEmbed エンドポイントに構造化 JSON レコードを要求します。このシーケンスにより、2 つの段階で異なる証拠が得られるため、失敗したメタデータ ルックアップが不正な形式の URL と混同されることも防止されます。
リンクは最初にブラウザーで解析されます。このプリフライトは、ネットワークにアクセスせずに ID を検証して抽出するため、不正な入力がサムネイル ホストとメタデータ エンドポイントの両方から遠ざけられます。エンドポイントは、汎用のデータ フィードや承認メカニズムではなく、狭い公開表現を提供します。
oEmbed とは — JSON で「この URL について説明してください」と答えるエンドポイントをサイトが公開する小規模な標準です。
oEmbed は、パブリック URL を記述するためのリクエストとレスポンスの規則です。ここで、YouTube はビデオ URL を受け入れ、埋め込みと帰属を目的とした JSON フィールドを返すエンドポイントを提供します。正確なクエリは、アカウントの資格情報を公開せずにどの正規リソースが要求されたかを示すため、ネットワーク トレースで役立ちます。
ToolAcre は、そのエンドポイントをスクレイピングへの入り口ではなく天井として扱います。視聴ページの HTML、内部 YouTubei サービス、署名、またはサインアウトした公開リクエストが到達できないものは検査されません。フィールドは生の JSON に存在していても、アプリケーション コントラクトから意図的に省略される可能性があるため、正規化は製品の決定となります。これにより、下流のメモが上流での偶発的な追加に依存することがなくなります。
リクエスト — 動画の URL と形式パラメータのみが youtube.com に送信されます。
リクエストは、URL が正規の https://www.youtube.com/watch?v=ID 値に設定され、形式が json に設定されて、https://www.youtube.com/oembed に送信されます。 API キー、ログイン Cookie、アカウント トークンは追加されません。したがって、空の結果は境界の観察であり、識別子が無効であることや、保護されたデータを再試行する必要があることの証拠ではありません。
ブラウザーは、認証情報が省略され、リファラーなし、ストア キャッシュなし、およびリダイレクトが続く匿名 GET を送信します。 Google はそれとその Origin ヘッダーを直接受け取ります。 ToolAcre は、そのパスではサーバーやプロキシを動作させません。これにより、ツールが保持することを約束していない追加のフィールドがアップストリーム ペイロードに含まれている場合でも、エクスポートが安定します。
正規化された応答は、oEmbed HTML ではなくメタデータ フィールドを公開します
アウトラインでは埋め込み HTML が表示されることが約束されていましたが、normalizeOembed は意図的にそのフィールドを省略しました。正規化されたオブジェクトには、タイトル、チャンネル、チャンネル URL、サムネイル URL と寸法、プレーヤーの幅と高さ、プロバイダー、ビデオ ID が含まれます。失敗を個別に分類すると、ユーザーは再試行するか、応答を検査するか、または別の許可されたソースを選択するかを決定するのに役立ちます。
すべての値が擁護されます。テキストが欠落している場合は単純なフォールバックが取得され、寸法は正の値である必要があり、リンクは HTTPS である必要があります。これにより、生の oEmbed プロパティがすべてレンダリングされることを意味せずに、エクスポートされた JSON が予測可能になります。リクエストは DevTools で検査できますが、ブラウザーのレコードは、ToolAcre によるストレージやローカルのみの処理を意味しません。
キーもログインも必要ない理由 — データはページ上ですでに公開されています。 oEmbed は構造化するだけです
これはサインアウトされたパブリック メタデータであるためキーは必要ありませんが、パブリックはユニバーサルを意味するものではありません。非公開、削除された、年齢制限のあるビデオは記録を提供しませんが、埋め込みを無効にした所有者が認証応答を引き起こす可能性があります。したがって、失敗したリクエストをレビューするパブリッシャーは、11 文字の ID が正しく解析されなかったと仮定するのではなく、埋め込みの可用性とビデオの可視性を確認する必要があります。
不在境界は明示的です。ビュー、いいね、説明、タグ、期間、公開日、またはキャプションは合成されません。キーフリー エンドポイントは、YouTube が公開することを選択したものを超えるアクセスを許可しません。編集用スプレッドシートにこれらの省略されたフィールドが必要な場合、その作成者は、oEmbed データとして空白を提示する代わりに、別の許可されたソースを使用し、そのソースにラベルを付ける必要があります。
作業例: oEmbed JSON を ToolAcre の正規化されたレコードにマッピングする
1 つの成功したペイロードの場合、title はタイトルに、author_name は channel に、author_url は channelUrl に、サムネイル フィールドはネストされた画像の説明に、幅と高さはプレーヤーの寸法にマップされます。プロバイダー名がプロバイダーになります。このマッピングにより、アップストリームの規約で YouTube チャンネルの作成者用語が使用されている場合でも、エクスポートに安定したアプリケーション名が与えられます。
生の HTML が上流に存在する可能性がありますが、ToolAcre の結果とエクスポートでは公開されません。アプリは、検証された ID から独自の応答性の高いプライバシー強化 iframe を個別に構築し、エンドポイント マークアップへの誤った信頼を回避します。消費者は引用またはシリアル化できるファクトを受け取りますが、実行可能な埋め込みマークアップは正規化されたメタデータ コントラクトの外側に残ります。
これでカバーされないもの — 閲覧数、説明、コメント、キャプション、およびログインの背後にあるもの
オフライン モード、ブロッカー、またはプロキシが原因で、メタデータの試行が応答前に失敗する可能性があります。 HTTP ステータスによって失敗する可能性があります。または、無効な JSON を含む成功ステータスを返すこともできます。各ルートは異なるメッセージを受信します。トランスポート エラーはブラウザ環境をチェックすることを示唆しますが、無効な JSON は、応答は到着したが、エンドポイントの約束された形式を満たせなかったことを示します。
サムネイルの調査は独立しており、404、別のエラー、200 プレースホルダー、またはデコードできないデータが表示される場合があります。どちらのブランチもビデオをダウンロードしたり、非公開コンテンツ、削除されたコンテンツ、または年齢制限のあるコンテンツの制限を回避したりすることはありません。ブランチを独立させておけば、編集者は、タイトルの帰属が一時的に利用できない場合でも、不足しているメタデータを作成することなく、検証済みのポスターを保持できるようになります。
エンドポイントの埋め込み HTML を表示しない構造化されたパブリック メタデータ
結果は、任意の oEmbed HTML のコピーではなく、構造化されたパブリック メタデータです。 ToolAcre は、正規化されたファクトを JSON、Markdown、CSV、またはテキストとしてエクスポートし、検証された識別子から既知のリンクを構築できます。エクスポートの選択により、範囲ではなくプレゼンテーションが変更されます。どの形式も同じタイトル、チャンネル、画像、プレーヤー、プロバイダー、および ID レコードを反映します。
Fetch 後のトラフィックは、直接の i.ytimg.com 画像リクエストと 1 つの正規の oEmbed リクエストで構成されます。リクエストでは認証情報とリファラーが省略され、ストアなしおよびフォローされたリダイレクトが使用され、検証のためにブラウザーの [ネットワーク] パネルに表示されたままになります。このトレースは、ブラウザが Google に直接アクセスしたことを証明します。 ToolAcre がルックアップを保存していることは示されず、操作がローカルになることもありません。