YouTube嵌入檢查器

影片

影片資訊
標題
頻道
時長
影片 ID
檢查結果
整體判定
嵌入偵測
播放器 API
播放測試
錯誤代碼

介紹

Toollect 的 YouTube 嵌入檢查器回答一個每次有人往網站加入影片時都會浮現的問題:這支影片真的能在這裡、在我的頁面上播放嗎? 貼上一個連結,工具就會用 YouTube 的兩個公開、免金鑰介面——oEmbed 端點與嵌入播放器——檢查影片,然後告訴你影片是可嵌入、可播放、已消失還是受限制。無需帳戶、無需 API 金鑰、無需上傳。

它消除的陷阱很常見。你複製嵌入程式碼、放進頁面,後來才發現影片顯示灰色播放器、「影片無法使用」佔位符或「在 YouTube 上觀看」提示,因為擁有者停用了嵌入。等到嵌入上線時,這已經成了一樁客服問題。先檢查一下,同樣的事情就變成一個兩秒鐘的步驟。

檢查完全在你的瀏覽器中執行。URL 在本機解析,嵌入狀態從 YouTube 的公開 oEmbed 端點讀取,即時嵌入在頁面上載入並暫停在第一幀——絕不自動播放、絕不為你靜音。不上傳、不儲存、不追蹤任何內容。判定會與影片的標題、頻道與片長一起顯示,這些資訊由嵌入本身回傳——無需另開頁面、無需爬蟲、無需第三方服務。

運作原理

這個工具把「能否嵌入並播放」這個問題拆成三項獨立檢查。每一項都使用 YouTube 一個公開、免金鑰的介面,而且三者都在你的瀏覽器中本機執行。

  1. 擷取影片 ID — 使用與 YouTube 自身相同的模式解析 URL,辨識 watch 連結、youtu.be、Shorts、embed 與 live URL,以及單獨的 11 位 ID。
  2. 嵌入探測 — 工具向該影片的 oEmbed 端點發出請求。可嵌入的影片會回傳一個小型 JSON 物件;擁有者禁止嵌入的影片會回傳錯誤。這正是各服務用於自動產生卡片時的同一端點。
  3. 播放器檢查 — 工具載入嵌入播放器並暫停在第一幀,然後監聽其狀態。如果影片已被刪除或受限,播放器會觸發錯誤碼;如果乾淨載入,標題、頻道與片長會由播放器自身回傳,按下播放鍵會在同一畫面中即時確認播放。

這些都不需要官方的 YouTube Data API。播放器 JavaScript 按需載入、無配額限制,且完全在你的瀏覽器中執行——你貼上的連結永遠不會到達由本站控制的伺服器。

兩個公開介面詳解

oEmbed 端點是 YouTube 的一個公開、免金鑰 API。像 https://www.youtube.com/oembed?url=https://www.youtube.com/watch?v=dQw4w9WgXcQ&format=json 這樣的單次請求就能得到影片標題、頻道名稱與縮圖 URL——如果影片無法嵌入,則會得到明確的拒絕。由於它是輕量級狀態探測,一次來回就能給出答案。

播放器介面與你貼上 iframe 時使用的是同一個:YouTube 在頁面上載入一個小型 IFrame 播放器,播放器的狀態碼講述其餘的故事。沒有錯誤碼就抵達第一幀的播放器,是嵌入接受該影片的證據;而觸發錯誤的播放器會說出原因——未找到、已刪除或禁止嵌入。預覽就暫停在那個第一幀上,與一般嵌入完全一樣:不會自動播放任何內容,音量保持你的設定。

使用場景

除了顯而易見的「這個連結可以安心貼上嗎」,這個工具還能融入真實的工作流程。

Web 與應用程式開發

在儀表板、登陸頁或應用程式中嵌入 YouTube 影片的開發者,經常在發布隔天看到損壞的嵌入。在內容匯入時(產生站點地圖、CMS 匯入或影片推薦)加入預檢查,可以在不可嵌入或已刪除的影片到達使用者之前將其攔截。同樣的 oEmbed 探測也很容易在建置腳本裡複用成一行。

內容製作與行銷

製作宣傳頁面、電子報或知識庫文章的編輯們想連結大量影片,而不必逐一照看每個嵌入。用這個工具一次一個 URL 快速掃過一遍,就能標出會轉譯成損壞佔位符的影片,從而乾淨地發布列表。

研究與歸檔篩選

追蹤影片隨時間可用性的記者、檔案管理員與研究人員,可以重複執行檢查並歸檔結果。「以前可嵌入,現在錯誤 100」的模式是影片被刪除的早期預警——這本身就是有用的事實。

判定與錯誤碼

工具顯示的每個判定都是播放器自身的回答,經過翻譯。你讀到的判定與底下的錯誤碼來自同一來源,兩層永遠不會互相矛盾。

判定:

結果 含義 典型原因
可播放 嵌入被接受並抵達了第一幀 健康、可嵌入的影片
無法嵌入 擁有者禁止嵌入 播放器回傳錯誤 101 或 150
找不到影片 播放器無法載入該影片 已刪除或設為私人,錯誤 100
影片無法使用 播放器拒絕了請求 過期或錯誤的連結,或播放器通用故障
逾時 等待時間內播放器無回應 腳本被攔截或網路問題

錯誤碼:

代碼 含義 它告訴你什麼
100 找不到影片 影片已被刪除或設為私人,或 ID 有效但播放器無法連上影片
101 不允許嵌入 擁有者已停用該影片的嵌入
150 不允許嵌入 同一限制,在某些介面上回報為 150
2 請求無效 影片對播放器不可用,通常是過期或錯誤的影片連結
5 播放器建立失敗 HTML5 播放器通用故障,有時是嵌入之外的播放錯誤跡象

代碼 101 與 150 通向同一個判定:無法嵌入——「擁有者不允許嵌入」。100 意味著影片不再公開可用,通向找不到影片。代碼 2 與 5 都通向影片無法使用。而過了等待時間仍保持沉默的播放器通向逾時——當腳本或網路規則攔截播放器本身時你會看到的判定。這些就是審查嵌入圖庫時最常遇到的答案。

能偵測什麼、不能偵測什麼

坦然面對侷限,正是這個工具之所以有用的原因之一。下表展示嵌入流程能揭露什麼、又對什麼保持沉默。

問題 此工具能偵測嗎?
可嵌入(擁有者允許嵌入) 能,透過 oEmbed 探測
嵌入後確實能播放 能——在預覽中按下播放鍵,工具即確認播放
影片已刪除或設為私人 能,錯誤 100
年齡限制影片 通常可以——在某些地區播放器會透過同意步驟重試
地區(國家)限制 僅限你所在的地區,且僅針對播放器 API 介面
影片可在哪些國家觀看 不能
觀看次數、按讚、留言 不能
標籤、授權、上傳日期 不能
字幕可用性 不能
預設音訊 / 影片語言 不能

決定核心結果的每個問題——嵌入檢查、播放證明、刪除或私人的訊號——都能在無金鑰的情況下完整回答。豐富化層——觀看次數、地區列表、標籤、字幕、上傳日期——是另一個故事,在「與官方 API 對比」中詳述。

使用方法

操作流程是一個雙欄位互動介面:

  1. 貼上 YouTube 連結 — 從網址列、分享選單或影片的嵌入面板複製。
  2. 按 Enter 或點擊檢查按鈕。
  3. 閱讀判定 — 徽章將結果描述為可播放無法嵌入找不到影片影片無法使用逾時
  4. 閱讀詳情 — 播放器面板在徽章下方列出影片的標題、頻道、片長與 ID;下方的三行探測說明每項檢查的結果。

僅貼上不會觸發檢查;只有按下檢查或 Enter 才會執行。這讓工具保持可預測——編輯輸入框絕不會突然丟棄你正在看的结果。如果輸入不是有效的 YouTube URL,會顯示錯誤並清空輸入框。

支援的連結格式

輸入接受與 YouTube 自身相同的格式——貼上以下任一形式:

格式 範例
標準 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 步 — 取得連結。 開啟任意 YouTube 影片並複製其 URL,例如 https://www.youtube.com/watch?v=dQw4w9WgXcQ

第 2 步 — 貼上並檢查。 點擊輸入框,貼上(Ctrl+V 或 Cmd+V),然後按 Enter。徽章切換為檢查中…

第 3 步 — 閱讀徽章。 大約兩秒內出現判定。對於一般的可嵌入影片,判定為可播放,並由探測行佐證。

第 4 步 — 與受限影片對比。 現在貼上一個唱片公司禁止嵌入的音樂影片連結——大部分主流唱片公司的音樂片段都被封鎖。判定為無法嵌入,錯誤行顯示 101。這正是手動貼上嵌入程式碼時表現為空白灰框的故障。

第 5 步 — 檢查證據。 探測行與徽章一致:嵌入行顯示已封鎖,播放行沒有確認,因為播放器在你按下播放鍵之前就已失敗。這種組合——嵌入被拒、無法播放——正是你在 YouTube 自己的頁面上看到這類影片時出現的「無嵌入面板」訊號。

這就是完整循環:貼上、檢查、讀徽章——如果判定與真實嵌入不符,就用探測行來理解原因。

專業提示

  • 貼上單獨的影片 ID。 輸入框接受單獨的 11 位 ID,無需 URL——當你在處理 API 回應、資料庫匯出或只透露 ID 的短連結時非常有用。
  • 按 Enter 重新執行。 編輯框中的連結不會清除目前結果;當你得到真正想要的 URL 時按 Enter 即可。
  • 自動化嵌入把關。 如果你從 feed 產生頁面,可以用 curl 呼叫工具所使用的同一個 oEmbed 探測(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" 已包含在程式碼片段中。 它會將嵌入延遲到影片捲入視野;對於載入時間重要的首屏 hero,請移除它。
  • 注意你的 Content-Security-Policy。 如果你的網站傳送 CSP,請加入 frame-src https://www.youtube-nocookie.com(如果保留一般網域則為 https://www.youtube.com),否則嵌入會在載入前被攔截。

替代方案

開發者通常如何發現嵌入損壞?下表列齊各種選項。

方法 能告訴你什麼 需要金鑰 播放證明
貼上嵌入並重新整理頁面 事後才知道損壞的佔位符 頁面執行後間接得知
oEmbed 一行程式碼 僅嵌入狀態,無錯誤碼
官方 Data API 一切資訊,但按配額計費並需伺服器金鑰
本工具 判定 + 錯誤碼 + 可播放的即時嵌入 是——在預覽中按播放

官方 Data API 最完整,但需要金鑰、為避免曝露必須在伺服器端執行,並且每次請求都消耗配額。僅憑程式碼的簡單嵌入探測,既得不到播放器訊息,也得不到播放證明。原始 iframe 貼上只能在上線後告訴你工具在發布前就能即時展示的內容。

與官方 API 對比

下表比較同一問題的兩條誠實路徑:官方 YouTube Data API(伺服器、金鑰、配額)與本工具(只有瀏覽器、無金鑰、無伺服器)。這就是「無金鑰」是優勢而非限制的原因——取捨恰好落在對嵌入最關鍵的欄位上。

能力 官方 Data API 本工具
可嵌入狀態 透過 status.embeddable oEmbed + 播放器程式碼
播放證明 間接(僅中繼資料) 直接——在預覽中按播放
錯誤碼含義 原始程式碼,無解釋 翻譯成判定
地區/國家列表 contentDetails.regionRestriction 僅限你所在的地區
觀看次數、按讚、留言 statistics 不可用
標籤 snippet.tags 不可用
授權 status.license 不可用
年齡限制 contentDetails.contentRating 由播放器暗示,不精確
上傳日期 snippet.publishedAt 不可用
所需資料 API 金鑰 + 伺服器代理 無——100% 瀏覽器

兩個介面恰恰在決定嵌入的指標上重合:它會在頁面裡播放嗎? 官方 API 在分析所需的一切上勝出——中繼資料、統計、地區列表。工具在最終答案上勝出:一個在瀏覽器中載入、暫停在第一幀、你可以按下播放鍵親自觀看的即時嵌入。

故障排除

問題 原因 解決方法
答案一直停在「檢查中…」 播放器或 oEmbed 呼叫被攔截(廣告攔截器、本機網路) 允許 youtube.com 的播放器腳本,或重試檢查
嵌入停在第一幀 這是刻意設計——預覽絕不自動播放或預載串流 按下播放鍵;暫停的嵌入且聲音圖示可用,就是健康的嵌入
判定說「無法嵌入」但影片頁面播放正常 擁有者禁止嵌入;在網站播放與嵌入是兩回事 確認一下:開啟影片頁面的分享 ▸ 嵌入——那裡也會顯示拒絕
判定說「找不到影片」 影片已刪除、設為私人或僅限特定地區 先確認影片能在你自己的瀏覽器中播放
輸入不被接受 URL 根本不是 YouTube 格式 使用 watch 頁面或分享選單中的連結

隱私與資料處理

這個工具遵循與其他 Toollect 工具相同的隱私模型:一切都在本機執行。

  • 不上傳任何內容。 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

常見問題

什麼是 YouTube 嵌入檢查器?
YouTube 嵌入檢查器能告訴你影片能否嵌入網站,以及嵌入後是否真的能播放。它適用於打算嵌入影片的開發者、製作宣傳頁面的內容團隊,以及所有貼上嵌入程式碼後看到的不是影片而是 YouTube 錯誤訊息的人。
沒有 YouTube API 金鑰也能用嗎?
可以。這個工具使用兩個公開、免金鑰、免註冊的端點:YouTube 的 oEmbed 服務用於嵌入探測,YouTube 的 IFrame Player API 用於播放器檢查。無需 API 金鑰、無需 OAuth、無配額限制,也無需任何設定。
這個工具能偵測地區限制的影片嗎?
不能。隱私受限與地區鎖定的影片會依請求來源以不同方式提供。檢查結果反映的是你所在的地區與網路,因此請在與你的觀眾相同的地方執行檢查,才能得到有意義的答案。地區可用性本身正是只有官方 Data API 才會揭露的欄位之一。
YouTube 播放器錯誤碼是什麼意思?
錯誤 100 表示影片已被刪除或設為私人。錯誤 101 與 150 都表示擁有者不允許嵌入。錯誤 2 通常表示影片對播放器不可用。錯誤 5 是 HTML5 播放器的通用故障。這個工具會將每個代碼翻譯成白話易懂的判定。
這個工具支援哪些 YouTube URL 格式?
這個工具辨識標準 watch 連結、youtu.be 短連結、Shorts、embed 與 live URL,以及單獨的 11 位影片 ID。播放清單與時間戳記等額外參數會被自動忽略。
這個工具會下載影片嗎?
不會。這個工具載入的是你自己也會使用的同一個嵌入播放器,它會暫停在第一幀,直到你按下播放鍵。不會事先擷取任何影片、不會儲存任何資料,除了瀏覽器向 YouTube 發出的標準播放器請求外,不會傳輸任何內容。
為什麼預覽不會自動播放或出聲?
這是刻意設計。帶聲音自動播放的嵌入會劫持頁面,而自動播放的串流會讓檢查失真——這個工具只在你親自按下播放鍵時才確認播放。預覽暫停在第一幀、音量保持正常,與你放在自己頁面上的嵌入完全一致。
ESC