日本語

ビデオと字幕 · YouTube サムネイル ダウンローダーとメタデータ ビューアー

視聴、ショート、埋め込みリンクから YouTube 動画 ID を抽出する方法

· 仕組み

YouTube URL 解析中

1 つのビデオ識別子に収束する複数の YouTube リンク形状
オリジナル ToolAcre ベクトル イラスト

同じビデオを何通りもの方法でリンクできます。この投稿では、YouTube リンクの形式、ツールがそれぞれのリンク内の 11 文字の ID を見つける方法、および追跡パラメーターとタイムスタンプの処理方法について説明します。

同じ動画、5 つの異なるリンク - 再生ページ、短いリンク、ショート動画、埋め込み、モバイル アドレス

1 つの動画は、再生 URL、youtu.be 共有、ショート パス、埋め込みアドレス、ライブ リンク、またはモバイル ホスト リンクとして受信できます。 ToolAcre は、ネットワーク作業を考慮する前に、サポートされている各シェイプを同じ 11 文字の ID に削減します。したがって、混合インポートでは、1 つのビデオへの 6 つのリンクを 6 つのレコードとして扱うのではなく、その ID を重複排除キーとして使用できます。

この順序は、編集者が混合リストをクリーンアップする場合に役立ちます。解析はページ内で決定的な文字列と URL が機能するため、貼り付けられた値をリモート リゾルバーに漏らすことなく、不正なドメインとプレイリストのみのリンクを報告できます。コレクション URL は、その存在もその順序も編集者がどのメンバーを引用しようとしていたのかを識別しないため、未解決のままになります。

ID 自体 — 64 シンボルのアルファベットの 11 文字と、それがランダムに見える理由

受け入れられる ID の形状は、大文字、小文字、数字、ハイフン、アンダースコアから抽出されたちょうど 11 文字です。これは形式チェックのみです。これを通過しても、ビデオが存在することを証明したり、文字の意味を明らかにしたりすることはできません。解析された v 値またはパス セグメントにルールを適用すると、関連のないエンコードされたパラメーターから ID のような部分文字列が収集されることが回避されます。

ベア一致 ID は直ちに受け入れられます。長いプレイリスト識別子は別の保守的なパターンを使用し、プレイリスト トークンが 1 つのビデオのキーとしてサイレントに処理されるのを防ぎます。開始時刻は引用データに付随したままになります。30 秒を 90 秒に変更しても、同じ 11 文字のビデオ レコードを指します。

URL API を使用した解析 - 正規表現のみを使用して推測せずにホスト、パス、クエリを読み取る

URL コンストラクターは、プロトコル、正規化されたホスト、パス セグメント、およびクエリ パラメーターを分離します。これにより、誤って類似ドメインを受け入れたり、クエリ値とパス ID を混同したりする可能性のある 1 つの巨大な正規表現が回避されます。欺瞞的なホストを拒否することは、信頼できない URL に埋め込まれた識別子の信頼できるサムネイルを作成するよりも安全です。

HTTP と HTTPS のみが受け入れられ、先頭の www は正規化されて削除されます。この許可リストは、youtube という単語を含むホスト名を信頼するのではなく、YouTube、モバイル、音楽、ゲーム、nocookie、youtu.be ホストを対象としています。攻撃者が無関係なドメインに実際のパブリック ID を意図的に含める可能性があるため、リモート成功では解析が不十分なリンクの出所を検証できません。

各シェイプで ID が隠れる場所 — v パラメーター、youtu.be 上のパス、/shorts/, /embed/ および /live/

視聴ページでは v クエリ パラメーターが使用され、youtu.be では最初のパス セグメントが使用され、ショート、埋め込み、ライブ フォームではプレフィックスの後のセグメントが使用されます。従来の /v/ および /e/ パスも、同じ厳密な形状チェックによって認識されます。一致する識別子はローカル処理のみを許可し、コンテンツや所有権に関するクレームは許可しません。

パーサーはさらに、有効なプレイリスト ID と t または start からの開始オフセットを読み取ります。これらを個別のファクトとして返すため、ビデオ識別子自体を汚染することなく、生成されたリンクに情報を提供できます。ネットワーク境界はこの区別が完了した後にのみ開始されるため、パーサー テストはオフラインで実行できます。

残りを無視します — ビデオを識別しないプレイリスト パラメーター、開始時間、および共有トラッキング値

共有追跡値、無関係なクエリ パラメーター、およびタイムスタンプはビデオを識別しません。 ToolAcre は ID 抽出後にそれらを無視しますが、意図的に開始点を保持するリンクの場合、サポートされている時間形式は整数秒に正規化されます。したがって、異なるキャンペーン タグを持つ 2 つのリンクは、生成された URL にマーケティング パラメーターを含めることなく、1 つの資産レコードに解決できます。

プレイリストのみ、チャンネルおよび検索ページは、動画の名前が 1 つも指定されていないため、実用的な拒否を受けます。これらのページから ID を推測すると確実性が高まり、間違ったレコードのアセットが取得される可能性があります。キュレーターは最初に個々のアイテムを選択する必要があります。パーサーは、後で順序が変更される可能性があるコレクションから最初の結果を静かに選択しません。

作業例: 貼り付けられた 10 個のリンクを ID に正規化 (うち 2 つは YouTube リンクではありません)

実際の 10 個のペーストのバッチには、ウォッチ、ショート、ショート、埋め込み、ライブ、モバイル、ベア ID フォームと 2 つの無関係なドメインを含めることができます。最初の 8 つは ID に収束します。無関係なホストは、受け入れられたホストのリストを使用してローカルで失敗します。したがって、投稿者が複数の異なる YouTube インターフェースからリンクをコピーした場合でも、出力は ID によって重複排除できます。

その正規化中に存在プローブは発生しません。形状は有効だが存在しない ID は、後のフェッチ段階に進み、サムネイルと oEmbed 応答によってパーサー結果が遡及的に変更されるのではなく、独立した証拠が提供されます。これにより、「テキストは有効な識別子である」と「Google は現在そのテキストに対して公開資料を提供している」との間の明確な区別が保たれます。

これでカバーされないもの — 単一のビデオ ID を含まないチャンネル、プレイリスト、および検索 URL

パーサーは、チャンネル、プレイリスト、または検索結果を選択されたビデオに解決しません。また、公開識別子の抽出は保護されたマテリアルを取得する権限ではないため、プライベート、削除済み、または年齢制限のあるアクセスをバイパスすることもできません。あいまいなコレクション URL を拒否すると、ある人の画面に最初に表示されたアイテムがカタログに入力されるのを防ぎます。

Fetch が押されると、イメージ プローブで 404、その他の HTTP エラー、200 プレースホルダー、またはデコードできないバイトが発生する可能性があります。メタデータは、ブロッカー、プロキシ、またはオフライン状態が干渉する場合を含め、トランスポート、HTTP 拒否、または無効な JSON によって個別に失敗する可能性があります。これらの結果は可用性レポートに含まれます。パーサーが元のリンクを別のビデオとして再解釈することはできません。

要点: ID を見つけると、すべてが続きます — YouTube サムネイル ダウンローダーが YouTube リンクをどのように受け入れ、サポートする形状を文書化するか

ローカル解析後、ブラウザは i.ytimg.com から JPEG 候補ごとに 1 つのサムネイルを直接リクエストし、www.youtube.com から 1 つの oEmbed JSON レコードを直接リクエストします。 oEmbed URL は、正規の監視 URL と format=json をラップします。 [ネットワーク] パネルでこれらの呼び出しを確認すると、正規化が完了し、抽出された同じ ID がアセットとメタデータの両方のリクエストを駆動していることが確認できます。

これらの匿名 GET は、認証情報とリファラーを省略し、ストアを使用せず、リダイレクトに従い、ToolAcre サーバーまたはプロキシをバイパスします。 Google はリクエストと Origin ヘッダーを確認します。サインアウト制限は、非公開の動画、削除された動画、年齢制限のある動画には引き続き適用されます。コンポーネントを識別するための検索が必要ないため、ボタンをクリックする前に、代表的な URL 形状を使用してパーサーの動作をオフラインでテストできます。