ビデオと字幕 · YouTube サムネイル ダウンローダーとメタデータ ビューアー
oEmbed 標準: 2008 仕様によりリンク埋め込みがどこでも機能するようになった方法
· 背景
YouTube を埋め込みます ウェブ標準
oEmbed は、リンクを貼り付けてプレーヤーを取得するための地味な標準です。この記事では、その起源、リクエストとレスポンスのコントラクト、サイトがエンドポイントを検出する方法、そしてエンドポイントがパブリックビデオメタデータの最も単純なソースであり続ける理由について説明します。
リンクを貼り付けてプレーヤーを取得 — oEmbed が可能にした日常の魔法
サポートされている YouTube リンクを貼り付けると、ToolAcre は動画再生ページを解析せずにコンパクトな公開レコードを返します。ブラウザーはビデオ ID を抽出して検証し、1 つの明示的な oEmbed リクエストを構築します。開発者は、その宛先を再現し、上流の JSON を表示されたフィールドと比較できます。リソースとそのメタデータの間に脆弱なページ セレクターが存在することはありません。
結果は、完全なビデオ記録ではなく、現在のサインアウトされたスナップショットになります。これは、oEmbed を通じて公開される公開タイトル、作成者、およびサムネイル参照を識別します。この境界により、エラーが明確になります。不正な入力はローカルで失敗し、トランスポートまたは HTTP はリモートで失敗する可能性があり、省略された正規化フィールドはどちらでもありません。それぞれの状態には異なる治療法があります。
リポジトリは、サポートされていない 2008 の元のストーリーではなく、現在のリクエスト コントラクトを証明します
エンドポイントは `https://www.youtube.com/oembed` です。 ToolAcre は、`https://www.youtube.com/watch?v=VIDEO_ID` と `format=json` を含む `url` パラメーターを追加します。どちらもクエリ データとしてエンコードされます。開始時間、プレイリスト コンテキスト、およびコピーされたトラッキング パラメーターはメタデータ リクエストに含まれないため、検証されたビデオ リソースのみがルックアップを決定します。
`youtu.be` 共有リンク、標準の監視リンク、およびサポートされている埋め込みリンクは、同じ ID を生成できるため、同じ oEmbed リクエストを生成できます。この正規化により、入力形式によって結果が誤って変更されるのを防ぎます。また、安定したテスト アサーションも作成されます。1 つの ID が常に既知のエンドポイント、正規の監視 URL、JSON 形式を生成する必要があります。
コントラクト — URL が入力され、入力された応答が出力され、タイトル、作成者、埋め込み HTML、サムネイルのフィールドが含まれます。
応答が成功すると、ToolAcre は JSON を独自のレコードに解析します: `videoId`、タイトル、作者名 `channel`、チャンネル URL、サムネイル URL とサイズ、プレーヤーのサイズ、プロバイダーの詳細、および明示的な省略。上流の作成者キーの名前を変更すると、JSON、Markdown、CSV、およびテキスト エクスポートが、偶発的なワイヤ形式を公開するのではなく、一貫した YouTube 指向の語彙を提供します。
欠落フィールドのリストには、期間、再生回数、「いいね!」、説明、タグ、アップロード日、キャプションが取得されていないことが示されています。 YouTube ではこれらの値が空であるとは主張しません。この区別は CSV とテキストで重要であり、存在しない機能は純粋に空白のプロパティに似ています。数値次元とオプションの文字列は、使用可能な正規化された値としてのみ保持されます。
エンドポイント検出とレジストリはこの実装の範囲外です
ToolAcre は、ページ `<link>` からエンドポイントを検出したり、プロバイダー レジストリを調べたりしません。 The YouTube destination is a source constant. 1 つのパーサー、1 つの識別子シェイプ、および 1 つのリクエスト ビルダーは、任意のページを取得したり、信頼できない HTML によってアドバタイズされたエンドポイント情報を追跡したりすることなく、指定された範囲をカバーします。
検出には、リモート マークアップの解析、アドバタイズされた URL の検証、およびどのホストがフォローアップ リクエストを受信するかを決定する必要があります。固定エンドポイントにより余分な表面が回避され、ネットワークのレビューが簡単になります。 YouTube がサービスを変更する場合、同じレビューを受けていないリンク先を黙ってフォローするのではなく、統合には明示的なコード変更が必要です。
クロスプラットフォーム導入の主張は検証された証拠の外にあります
正規化されたレコードは検査と再利用に有利です。 JSON はキーと値の構造を保持し、Markdown は読みやすいメモを作成し、CSV はインベントリに適合し、プレーン テキストはチケットまたは調査ログに適合します。生の oEmbed ではなくローカル モデルをエクスポートすると、形式間で名前と省略が一致するため、ダウンストリーム ユーザーは 4 つの微妙に異なる解釈を受け取ることがなくなります。
oEmbed は HTML iframe フラグメントを返す場合がありますが、ToolAcre はそれを挿入したりエクスポートしたりしません。アプリは、YouTube のプライバシーが強化されたホストを使用して、検証された ID から独自の応答性の高いプレーヤーを構築します。メタデータをレンダリングから分離すると、プロバイダーのマークアップの信頼が回避され、プレーヤーの宛先が不透明なアップストリーム文字列ではなく、監査可能な製品の選択肢になります。
oEmbed がタイトル、`author_name`、`author_url`、480×360 のサムネイル、プレーヤーのディメンション、およびプロバイダーの詳細を提供するとします。 ToolAcre は、検証された ID を追加し、作成者フィールドをチャネル フィールドにマップし、使用可能な寸法を保持し、サポートされていないプロパティを記録します。この決定論的な投影は、インターフェイスが消費しないキーを上流で追加した場合でも、安定した状態を維持できます。
DNS 障害、ブロッカー、またはオフライン モードはトランスポートの問題です。 A non-success status is an HTTP problem;正常なステータスで不正な形式の JSON が表示される場合は、解析の問題です。 None should create a partial invented record.サムネイル プローブは独立したままであるため、1 つの画像が失敗してもメタデータは成功する可能性があります。また、oEmbed が利用できない場合でも JPEG がデコードされる可能性があります。
これでカバーされないもの — Open Graph と schema.org、プレビューをリンクする他のメタデータ レイヤー
oEmbed は、Open Graph、schema.org JSON-LD、YouTube Data API、またはプレビュー キャッシュを置き換えるものではありません。これらのメカニズムには、認証と鮮度という異なるフィールドがあります。 ToolAcre は、監視ドキュメントを取得して比較することはありません。期間、公開時間、統計、またはキャプションには、サムネイル名やプレーヤーのサイズから導き出された推測ではなく、承認された情報源が必要です。
有効な ID であれば、プライベート、削除済み、制限付き、または存在しないリソースを識別できます。 Signed-out oEmbed cannot make it public.タイトル、チャンネル名、サムネイル参照も同じ ID で変更される可能性があるため、出所にはアクセス日が必要です。 An export records one lookup;永続性を保証するものではなく、返された素材を再公開する許可を与えるものでもありません。
要点: 実装されたリクエストと正規化されたレスポンスのコントラクト
解析と検証はフェッチするまでローカルです。次にブラウザは、oEmbed の場合は `www.youtube.com` に、画像の場合は `i.ytimg.com` に接続し、認証情報とリファラーを省略して、`no-store` をリクエストし、リダイレクトを続けます。 Google は引き続き各リクエストとその Origin ヘッダーを確認します。 ToolAcre プロキシは宛先を隠したり、サインアウトしたアクセス制限をバイパスしたりすることはありません。
契約は正確です。サポートされている入力を 1 つの ID に正規化し、正規クエリを構築し、成功した JSON を要求し、文書化されたフィールドのサブセットを保持し、省略をマークします。入力、トランスポート、HTTP、解析、またはアクセス中にエラーが発生したかどうかを保持します。この証拠により、コンパクトな oEmbed レスポンスが完全な YouTube API であるかのように装うことなく、エクスポートが便利になります。