2010-05-21 262 views
3

我正在爲音樂媒體平臺編寫CLI。其中一項功能就是您可以直接從CLI上播放YouTube視頻。我真的不知道如何去做,但這聽起來是最合理的:流音頻(YouTube)

我打算使用那些可以從YouTube下載音樂的網站,例如http://keepvid.com/,然後我直接播放和播放,但我有一個問題。有沒有任何Python庫可以做到這一點,如果是的話,你有什麼具體的例子嗎?

我一直在尋找,但我什麼都沒發現,甚至沒有與GStreamer

回答

1

您需要兩件事才能下載YouTube視頻,URLv=部分表示的視頻ID以及頁面源中存在的隱藏字段t=。我不知道這個t值是什麼,但這是你需要的:)

然後,你可以使用格式的URL下載視頻;

http://www.youtube.com/get_video?video_id=*******&t=******* 

其中星星代表所獲得的值。

我猜你可以從用戶輸入請求視頻ID,因爲它很容易獲得。然後,您的程序將下載該視頻的HTML源,解析t值的來源,然後使用新構建的URL下載視頻。

例如,如果您在瀏覽器中打開此鏈接,它應該下載視頻,或者您可以使用下載程序,如Wget;

http://www.youtube.com/get_video?video_id=3HrSN7176XI&t=vjVQa1PpcFNM4c8MbEhsnGaNvYKoYERIJ-hK7ErLpUI=

+0

我很確定YouTube是否阻止了他們獲取他們的視頻的方式,您是否也嘗試過給自己做榜樣? – wvd 2010-05-22 08:06:36

+0

是的。它昨晚對我很好,但現在不起作用。我猜想視頻的位置發生了變化...... – Jivings 2010-05-22 09:58:46

+0

你在哪裏可以找到網站源文件中的「t = ***」?我試圖搜索它,但沒有發現任何看起來像這樣的東西。 – wvd 2010-05-22 10:30:53

0

看起來,KeepVid只是一個JavaScript書籤,可將您鏈接到KeepVid下載頁面,然後您可以下載各種格式的任何一種YouTube視頻。所以,除非你想知道如何流式傳輸它所鏈接的文件,否則它不容易實現。您必須刮取返回的頁面並確定要下載哪個URL,然後您必須從該URL進行流式傳輸(並且某些格式可能無論如何都可能是流式傳輸)。另外,儘管他們沒有指定服務條款,但我想這是因爲他們似乎主要是受廣告支持,他們通過在他們的廣告支持的網頁上轉過身來濫用他們的功能將是道德上可疑的。

+0

好吧,我只是reffering到KeepVid一樣作爲一個例子,如果有任何更好的網站我會很高興聽到這個消息。 – wvd 2010-05-21 21:13:37