YouTube埋め込みチェッカー
はじめに
ToollectのYouTube埋め込みチェッカーは、誰かがウェブサイトに動画を追加するたびに浮かぶ疑問に答えます。この動画はここ、私のページで本当に再生されるのか? リンクを貼り付けると、このツールはキー不要の公開YouTube面を2つ使って動画を確認します。oEmbedエンドポイントと埋め込みプレイヤーです。そして動画が埋め込み可能か、再生可能か、存在しないか、制限されているかを教えてくれます。アカウントもAPIキーもアップロードも不要です。
このツールが取り除くのはよくある落とし穴です。埋め込みコードをコピーしてページに貼り付け、後になって動画がグレーのプレイヤー、「動画を利用できません」というプレースホルダー、あるいは「YouTubeで見る」という案内を表示していることに気づく。所有者が埋め込みを無効にしていたからです。埋め込みが公開される頃には、それはサポート案件になっています。先に確認すれば、同じ作業が2秒のステップになります。
確認はすべてあなたのブラウザ内で実行されます。URLはローカルで解析され、埋め込みステータスはYouTubeの公開oEmbedエンドポイントから読み取られ、ライブ埋め込みがページ上で最初のフレームに一時停止した状態で読み込まれます。自動再生も、あなたに向けたミュートもありません。アップロードも保存もトラッキングも一切ありません。結果は、埋め込み自体が返す動画のタイトル・チャンネル・再生時間とともに表示されます。別ページもスクレイパーもサードパーティサービスも不要です。
仕組み
このツールは「埋め込めて再生できるか」という問いを3つの独立した確認に分解します。それぞれがYouTubeの公開・キー不要面を使い、3つすべてがブラウザ内でローカルに実行されます。
- 動画IDの抽出 – URLはYouTube自身と同じパターンで解析され、watchリンク、youtu.be、Shorts、embed、liveの各URLと11文字の単体IDを認識します。
- 埋め込みプローブ – ツールは動画のoEmbedエンドポイントをリクエストします。埋め込み可能な動画は小さなJSONオブジェクトを返し、所有者が埋め込みを禁じた動画はエラーを返します。サービスがカードを自動生成するときに使うのと同じエンドポイントです。
- プレイヤー確認 – ツールは埋め込みプレイヤーを最初のフレームで一時停止した状態で読み込み、そのステータスを待ち受けます。動画が削除または制限されている場合はプレイヤーがエラーコードを発火し、正常に読み込まれた場合はタイトル・チャンネル・再生時間がプレイヤー自身から返り、再生ボタンを押すと同じフレーム内でライブ再生が確認されます。
これらはどれも公式YouTube Data APIを必要としません。プレイヤーJavaScriptはオンデマンドで読み込まれ、割り当て枠も不要で、完全にブラウザ内で実行されます。貼り付けたリンクがこのサイトが管理するサーバーに届くことは決してありません。
2つの公開面の詳細
oEmbedエンドポイントはYouTubeの公開・キー不要APIです。https://www.youtube.com/oembed?url=https://www.youtube.com/watch?v=dQw4w9WgXcQ&format=jsonのような1回のリクエストで、動画のタイトル、チャンネル名、サムネイルURLが得られます。埋め込めない動画なら明確な拒否が返ります。軽量なステータスプローブなので、1往復で答えが返ってきます。
プレイヤー面は、あなたがiframeを貼り付けるときに使うものと同じです。YouTubeがページ上に小さなIFrameプレイヤーを読み込み、プレイヤーのステータスコードが残りのストーリーを語ります。エラーコードなしで最初のフレームに到達したプレイヤーは、埋め込みが動画を受け入れた証拠です。一方、エラーを発火したプレイヤーは理由を示します。見つからない、削除された、埋め込み制限付き、といった具合です。プレビューはその最初のフレームで一時停止したまま。通常の埋め込みとまったく同じで、自動再生もなければ、音量もあなたが設定したままです。
ユースケース
「このリンクは貼り付けて安全か」という当然の用途の先に、このツールは実際のワークフローに収まります。
ウェブ・アプリ開発
ダッシュボードやランディングページ、アプリにYouTube動画を埋め込む開発者は、公開翌日に壊れた埋め込みに直面することがよくあります。コンテンツインポート時(サイトマップ生成、CMSインポート、動画レコメンデーション)に事前確認を組み込めば、埋め込み不可や削除済みの動画をユーザーに届く前に検出できます。同じoEmbedプローブはビルドスクリプトの1行として再利用も簡単です。
コンテンツ制作とマーケティング
プロモーションページやニュースレター、ナレッジベース記事を組み立てる編集者は、1本ずつ埋め込みを監視せずに多くの動画をリンクしたいと考えています。このツールをURL1件ずつまとめて実行すれば、壊れたプレースホルダーとして描画される動画を事前に洗い出せて、クリーンな状態で公開できます。
調査とアーカイブのトリアージ
動画の可用性を時系列で追跡するジャーナリストやアーキビスト、研究者は、確認を再実行して結果をアーカイブできます。「以前は埋め込み可能だったのに、今はエラー100」というパターンは、動画が削除されたことの早期警告です。それ自体が有用な事実です。
結果とエラーコード
ツールが表示する各結果は、プレイヤー自身の答えを翻訳したものです。あなたが読む結果と、その下のエラーコードは同じ情報源に由来するため、2つの層が矛盾することはありません。
結果の種類:
| 結果 | 意味 | 典型的な原因 |
|---|---|---|
| 再生可能 | 埋め込みが受け入れられ、最初のフレームに到達した | 健全で埋め込み可能な動画 |
| 埋め込み不可 | 所有者が埋め込みを禁止している | プレイヤーからのエラー101または150 |
| 動画が見つかりません | プレイヤーが動画を読み込めない | 削除または非公開、エラー100 |
| 動画を利用できません | プレイヤーがリクエストを拒否した | 古い・誤ったリンク、またはプレイヤーの一般的な障害 |
| タイムアウト | 待機時間内にプレイヤーからの応答がない | スクリプトのブロックやネットワークの問題 |
エラーコード:
| コード | 意味 | 何を伝えているか |
|---|---|---|
| 100 | 動画が見つかりません | 動画が削除または非公開になった。あるいはIDは有効だがプレイヤーが動画に到達できない |
| 101 | 埋め込みが許可されていません | 所有者がこの動画の埋め込みを無効にしている |
| 150 | 埋め込みが許可されていません | 同じ制限が一部の面で150として報告される |
| 2 | 無効なリクエスト | プレイヤーから動画を利用できない。多くの場合、古い・誤った動画リンク |
| 5 | プレイヤー作成に失敗 | HTML5プレイヤーの一般的な障害。埋め込み外の再生エラーの兆候であることもある |
コード101と150は同じ結果、埋め込み不可につながります。「所有者が埋め込みを許可していない」ということです。100は動画が公開利用できなくなったことを意味し、動画が見つかりませんにつながります。コード2と5はどちらも動画を利用できませんです。そして待機時間を過ぎても沈黙したままのプレイヤーはタイムアウトにつながります。スクリプトやネットワークルールがプレイヤー自体をブロックしているときに見る結果です。埋め込みギャラリーを監査するとき、最も頻繁に遭遇する答えたちです。
検出できることとできないこと
限界について正直であることが、このツールを役立たせる要素の一つです。次の表は、埋め込みパイプラインが明らかにすることと、沈黙することを示します。
| 質問 | このツールで検出できますか? |
|---|---|
| 埋め込み可能(所有者が埋め込みを許可) | はい、oEmbedプローブ経由で |
| 埋め込んだ後に実際に再生される | はい – プレビューで再生を押すと、ツールが再生を確認します |
| 動画が削除または非公開 | はい、エラー100 |
| 年齢制限動画 | 通常は可能 – 一部の地域ではプレイヤーが同意ステップで再試行します |
| 地域(国)制限 | あなたがいる地域のみ。しかもプレイヤーAPI面に対してのみ |
| 動画が利用可能な国 | いいえ |
| 再生回数・高評価・コメント | いいえ |
| タグ・ライセンス・アップロード日 | いいえ |
| 字幕の有無 | いいえ |
| デフォルトの音声・動画言語 | いいえ |
核心の結果を決める質問、つまり埋め込み確認・再生の証明・削除または非公開のシグナルは、すべてキーなしで完全に答えられます。リッチ化レイヤー、つまり再生回数・地域リスト・タグ・字幕・アップロード日は別の話で、「公式APIとの比較」で扱います。
使い方
ワークフローは2つのフィールドからなるインタラクティブ画面です。
- YouTubeリンクを貼り付けます – アドレスバー、共有メニュー、動画の埋め込みシートのいずれからでも。
- Enterを押すか、[確認]ボタンをクリックします。
- 結果を読みます – バッジが結果を再生可能・埋め込み不可・動画が見つかりません・動画を利用できません・タイムアウトのいずれかで表示します。
- 詳細を読みます – プレイヤーパネルがバッジの下に動画のタイトル・チャンネル・再生時間・IDを並べ、その下の3つのプローブ行が各確認の成り行きを説明します。
貼り付けただけでは確認は始まりません。確認またはEnterを押したときに実行されます。これによりツールは予測可能に保たれます。フィールドを編集しても、見ている結果が突然破棄されることはありません。入力が有効なYouTube URLでない場合はエラーが表示され、フィールドがクリアされます。
対応リンク形式
入力はYouTube自身が使うのと同じ形式を受け付けます。どれか1つを貼り付けてください。
| 形式 | 例 |
|---|---|
| 標準watch | youtube.com/watch?v=VIDEO_ID |
| 短縮リンク | youtu.be/VIDEO_ID |
| Shorts | youtube.com/shorts/VIDEO_ID |
| 埋め込み | youtube.com/embed/VIDEO_ID |
| Live | youtube.com/live/VIDEO_ID |
| 旧形式の動画パス | youtube.com/v/VIDEO_ID |
| 単体のID | VIDEO_ID(11文字) |
プレイリストやタイムスタンプなどの追加パラメータは自動的に無視されます。
チュートリアル
1本の動画をリンクから結果まで進めてみましょう。
ステップ1 – リンクを取得します。 任意のYouTube動画を開いてURLをコピーします。例:https://www.youtube.com/watch?v=dQw4w9WgXcQ。
ステップ2 – 貼り付けて確認します。 入力フィールドをクリックして貼り付け(Ctrl+VまたはCmd+V)、Enterを押します。バッジが*確認中…*に切り替わります。
ステップ3 – バッジを読みます。 約2秒以内に結果が表示されます。通常の埋め込み可能な動画なら、プローブ行に裏付けられた再生可能という結果になります。
ステップ4 – 制限付き動画と比較します。 次に、レーベルが埋め込みを認めていないミュージックビデオのリンクを貼り付けます。大手レーベルの音楽クリップのほとんどはブロックされています。結果は埋め込み不可になり、エラー行に101と表示されます。これはまさに、埋め込みコードを手動で貼り付けたときに空のグレーボックスとして再現される障害です。
ステップ5 – 証拠を調べます。 プローブ行はバッジと一致します。埋め込み行はブロックを示し、再生行は、あなたが再生を押す前にプレイヤーが失敗したため、確認を表示しません。この組み合わせ、つまり埋め込み拒否・再生なしは、まさにYouTube自身のページでそうした動画に見られる「埋め込みパネルなし」のシグナルです。
これが完全なループです。貼り付けて、確認して、バッジを読む。そして結果が実際の埋め込みと食い違う場合は、プローブ行で理由を理解します。
プロのヒント
- 単体の動画IDを貼り付けます。 入力は11文字のIDをURLなしで単体でも受け付けます。APIレスポンスやデータベースエクスポート、IDだけしか教えてくれない短縮リンクから作業するときに便利です。
- Enterで再実行します。 フィールド内のリンクを編集しても現在の結果は消えません。本当に確認したいURLが入ったらEnterを押してください。
- 埋め込みゲートを自動化します。 フィードからページを生成しているなら、ツールが使うのと同じoEmbedプローブをcurlで叩き(
https://www.youtube.com/oembed?url=…&format=json)、200以外を「この動画は拒否」としてパイプラインで処理できます。 - 地域依存コンテンツは対象地域からテストします。 視聴者が特定の国にいるなら、そのネットワークに接続した状態で確認を実行してください。プレイヤーは配信先の地域を反映します。
エラー100を変化のシグナルとして扱います。 問題なく確認できていた動画が突然100を報告したら、ほぼ確実に削除または非公開になっています。埋め込み動画の台帳を管理しているなら定期的に再確認を。訪問者がグレーのプレイヤーに遭遇する前に、ステータスの変化を知っておく価値があります。
動画を自分で埋め込む
再生可能という結果は、ツールが確認したのとまったく同じ埋め込みを使うためのゴーサインです。
<div style="aspect-ratio: 16 / 9;">
<iframe
src="https://www.youtube-nocookie.com/embed/VIDEO_ID"
width="100%"
height="100%"
frameborder="0"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
allowfullscreen
loading="lazy"
></iframe>
</div>
nocookieドメインを優先します。youtube-nocookie.comは、YouTubeの非必須Cookieを使わずに同じプレイヤーを配信します。ほとんどのサイトにとってプライバシーに配慮した標準的な選択です。loading="lazy"はスニペットに含まれています。 動画が画面内にスクロールされるまで埋め込みを遅らせます。読み込みが重要なファーストビューのヒーローでは外してください。- Content-Security-Policyに注意します。 サイトがCSPを配信しているなら、
frame-src https://www.youtube-nocookie.comを追加してください(通常ドメインを維持するならhttps://www.youtube.com)。追加しないと、埋め込みは読み込み前にブロックされます。
代替手段
開発者は通常、どうやって埋め込みの破損を知るのでしょうか。表が選択肢を整理します。
| 方法 | 何がわかるか | キーが必要 | 再生の証明 |
|---|---|---|---|
| 埋め込みを貼ってページを再読み込み | 壊れたプレースホルダーを事後的に知る | いいえ | ページが動けば間接的に |
| oEmbedの1行 | 埋め込みステータスのみ、エラーコードなし | いいえ | いいえ |
| 公式Data API | すべて。割り当て枠ベースのコストとサーバーキー | はい | いいえ |
| このツール | 結果+エラーコード+再生できるライブ埋め込み | 不要 | はい – プレビューで再生を押す |
公式Data APIは最も完全ですが、キーが必要で、露出を避けるためにサーバーサイドで動かし、リクエストごとに割り当て枠を消費します。コードだけの単純な埋め込みプローブでは、プレイヤーメッセージも再生の証明も手に入りません。生のiframe貼り付けは、公開後にしか、このツールが公開前に即座に見せてくれることを教えてくれません。
公式APIとの比較
以下の表は、同じ疑問に対する2つの正直な道を比較します。公式YouTube Data API(サーバー・キー・割り当て枠)とこのツール(ブラウザだけ・キーなし・サーバーなし)です。この比較こそ、「キー不要」が制限ではなく機能である理由です。トレードオフは埋め込みに関係する列にあります。
| 機能 | 公式Data API | このツール |
|---|---|---|
| 埋め込み可否ステータス | status.embeddable経由 |
oEmbed+プレイヤーコード |
| 再生の証明 | 間接的(メタデータのみ) | 直接的 – プレビューで再生を押す |
| エラーコードの意味 | 生コード、説明なし | 判定結果に翻訳 |
| 地域・国リスト | contentDetails.regionRestriction |
あなたがいる地域のみ |
| 再生回数・高評価・コメント | statistics |
利用不可 |
| タグ | snippet.tags |
利用不可 |
| ライセンス | status.license |
利用不可 |
| 年齢制限 | contentDetails.contentRating |
プレイヤーからの暗黙的な推定、正確ではない |
| アップロード日 | snippet.publishedAt |
利用不可 |
| 必要なデータ | APIキー+サーバープロキシ | なし – 100%ブラウザ |
2つの面が重なるのは、埋め込みを決めるまさにその指標です。ページ内で再生されるか。公式APIは分析に役立つものすべて、つまりメタデータ・統計・地域リストで勝ります。ツールが勝つのは最終回答です。ブラウザで読み込まれ、最初のフレームで一時停止し、自分で再生を押して見られるライブ埋め込みです。
トラブルシューティング
| 問題 | 原因 | 解決策 |
|---|---|---|
| 「確認中…」のまま進まない | プレイヤーまたはoEmbedの呼び出しがブロックされている(広告ブロッカー、ローカルネットワーク) | youtube.comのプレイヤースクリプトを許可するか、確認をやり直す |
| 埋め込みが最初のフレームで止まったまま | 意図的な設計です。プレビューは自動再生もストリームのプリロードもしません | 再生を押してください。一時停止した埋め込みで音声アイコンが使える状態は、健全な埋め込みです |
| 「埋め込み不可」なのに動画ページは正常に再生される | 所有者が埋め込みを禁止している。サイトでの再生と埋め込みは別物です | 確認してみてください。動画ページの共有 ▸ 埋め込みを開くと、そこでも拒否が表示されます |
| 「動画が見つかりません」という結果 | 動画が削除・非公開・地域限定公開になっている | まず自分のブラウザで動画が再生されるか確認する |
| 入力が受け付けられない | URLがYouTube形式ではない | watchページか共有メニューからのリンクを使う |
プライバシーとデータの取り扱い
このツールは他のToollectツールと同じプライバシーモデルに従います。すべてローカルで実行されます。
- アップロードは一切ありません。 URLはブラウザ内で解析されます。URLを含むリクエストが、あなたが管理していないサーバーに送信されることはありません。
- アカウントもトラッキングもありません。 ログインも解析も、確認した動画の履歴もありません。
- プレイヤー通信のみ。 ネットワークリクエストはプレイヤー自身のものだけです。どんなウェブサイトも動画を埋め込むときに行うのと同じリクエストです。保存もスクリーンショットも記録もありません。
- 事前に動画をダウンロードすることはありません。 プレビューは通常の再生ボタン付きで最初のフレームに一時停止します。ストリームは、再生を押したとき初めて読み込みが始まります。どんな埋め込みと同じで、何も保存されません。
どの動画を調べるかをプライバシー面で気にしているなら、このページはブラウザで普通の動画ページを見るのとまったく同じ挙動です。あなたのリンクは、自分のプレイヤー以外のどこにも行きません。
技術仕様
詳細:
- 埋め込みプローブ:
https://www.youtube.com/oembed?url={watch_url}&format=json– HTTP 200 = 埋め込み可能、200以外 = 制限あり - プレイヤー:YouTube IFrame Player API、
playsinline埋め込みとしてオンデマンドで読み込み、最初のフレームで一時停止(自動再生の強制もミュートの強制もなし) - 結果の情報源:oEmbedステータス、プレイヤーエラーコード(2、5、100、101、150)、再生ボタンを押したときのライブ再生イベント
- メタデータ:プレイヤー自身が返すタイトル・チャンネル・再生時間・動画ID
- 処理:100%クライアントサイドJavaScript。APIキーもアップロードもサーバーもなし
- ブラウザ対応:PromiseとES5レベルをサポートするすべてのモダンブラウザ(Chrome、Edge、Firefox、Safari)
機能
- 貼り付けたYouTubeリンクの埋め込み可否を即座に確認
- 最初のフレームで一時停止するライブ埋め込みプレビュー、再生ボタンを押した瞬間に再生を確認
- YouTubeプレイヤー自身のエラーコードに基づく判定と、わかりやすい解説
- 別のページを開かずにタイトル・チャンネル・再生時間を表示
- データを一切アップロードしない100%ブラウザ内処理、APIキー不要
- watch・Shorts・embed・live・youtu.beリンクと単体の動画IDに対応