我正在寫FLV媒體播放器,並想知道是否存在通過URL訪問YouTube使用的底層FLV文件的方式嗎?過去有很多種方式,但YouTube已經改變了一些事情,我現在找不到任何方式去做它...在.NET中從YouTube獲取FLV
從我迄今看到的情況來看,YouTube API不會看起來也不能進入。有沒有人找到一種方法呢?
乾杯!
我正在寫FLV媒體播放器,並想知道是否存在通過URL訪問YouTube使用的底層FLV文件的方式嗎?過去有很多種方式,但YouTube已經改變了一些事情,我現在找不到任何方式去做它...在.NET中從YouTube獲取FLV
從我迄今看到的情況來看,YouTube API不會看起來也不能進入。有沒有人找到一種方法呢?
乾杯!
有兩種與YouTube視頻相關的值:ID和簽名。該ID很容易獲得,因爲它在URI本身。簽名有點棘手。它嵌入在每個視頻頁面的源代碼中的Javascript語句中。
例如,我們拍下Numa Numa視頻。
它有一個ID爲KmtzQCSh6xk
,可以從URI中看到。
爲了得到簽名,我們必須深入研究HTML的源代碼。要在Firefox中輕鬆完成此操作,請右鍵單擊頁面上的任意位置並單擊「查看頁面源」來加載頁面的源代碼。之後,按Ctrl + F,然後輸入"t":
。它會帶你到頁面的簽名:在引號後面的值就是簽名。
在沼沼舞的情況下,它的簽名是vjVQa1PpcFOSvCcjdAYSc3ZQgK-6EG9yQM7RLSYqJk4%3D
獲得實際的FLV,你進入這個網址:
http://www.youtube.com/get_video?fmt=5&video_id={ID}&t={SIGNATURE}
完整的URI來獲取FLV視頻:
您可以使用這些信息來幫助你摹以及您需要以編程方式下載FLV的簽名和ID。無論是對值"t":
執行簡單的String.Find
還是使用RegEx,都應該很容易找到,直到他們改變爲止。
我試過這個在IE8中,但無法在源代碼中找到簽名。我可能做錯了什麼,但是你在那裏得到的URI也恰好給了我一個403--也許這是YouTube關閉的另一種方法... – 2009-12-10 20:57:51
忽略!我找到了簽名......謝謝! – 2009-12-10 21:08:30
有沒有辦法從頁面以編程方式解析這些信息?當我用WebRequest請求頁面時,即使設置了引用鏈接和用戶代理,我也會得到與瀏覽器完全不同的版本(沒有簽名)。 – 2010-03-22 19:07:49
假設性地說,即使你找到了方法,也不會持續很長時間。 – Sampson 2009-12-10 20:22:37
我認爲可能是這種情況,但我仍然有興趣看看是否有可能 – 2009-12-10 20:23:54