頂置文

========================= [頂置文開始] =========================
獨立遊戲「蠟筆大冒險」專頁

JJKid 常出沒地點:




========================= [頂置文結束] =========================

2026年1月31日 星期六

Unity 整合 Youtube 功能,筆記 (第二篇)

前言提要

前一篇整合Youtube的筆記說到使用「YoutubeExplode」套件。本來運作都沒問題,用了幾天後發現開始抓不到資料,一直噴 403 Error。

查了一下好像是 Youtube 覺得你是爬蟲所以把你的請求擋下來。

試著在 Request Header 裡補上 Cookie 資訊以及瀏覽器資訊,看能不能繞過 Youtube 的檢查,但是測完都無效,哭啊。


新的解法

使用「yt-dlp」。這是一個用 Python 寫的工具,它對 YouTube 的簽章破解非常快。

首先到這裡下載「yt-dlp.exe」。

整合進Unity

因為是呼叫 yt-dlp.exe 來取得影片 URL,這裡其實跟 Unity 已經沒啥關係,只是我的介面都用 Unity 做,就還是以 Unity 的視角來整合它。

將下載好的 yt-dlp.exe 放進 Unity 專案的 Assets/StreamingAssets 資料夾中,這樣打包成 .exe 執行檔後,路徑才不會跑掉。

然後就呼叫它並傳入需要的參數。



它會回傳一個 Json,就是程式中的 jsonOutput。內容就是這支影片的所有資訊,長得像這樣:


我只需要部份欄位,像是影片的標題、影片URL、影片ID等資訊,把 json 的內容填進定義好的結構裡面。


定義的結構長這樣,要注意的是欄位名稱要和 json 裡面的命名一樣才行,不能自己亂改。



最終結果

403 錯誤 bye bye,又可以播放 Youtube 影片了,可喜可賀!希望不要再有問題啦,Youtube求放過。




沒有留言:

張貼留言