2011-09-21 66 views
3

在網站上查看,每個問題使用過時的方法。 YouTube FLV下載網站/應用程序如何做到這一點?如何獲得YouTube FLV網址?

我想在PHP中這樣做,但理論或步驟做到這一點就足夠了,謝謝。

+0

啊可能希望從源頭上看看file2hd.com –

回答

15

正如其他職位提到的,你可能想看看我們的代碼在 youtube-dl(或Firefox擴展的代碼中調用 FlashVideoReplacer)。

在YouTube的-DL的特殊情況下,「真正的工作」中的InformationExtractor的 子做,它很難給一個「穩定」的答案, 爲不斷此類網站的佈局改變。

有一些信息不是動態的,例如,對於 實例,視頻的上傳者,標題,上傳日期以及最重要的是視頻的標識符(a 11個字符的字符串)。

對於動態部分,關於這些工具可以說的是,從本質上說,這些視頻生成的URL是動態生成的,您需要與服務器進行一些往返式通信。

重要的是要記住,這些網站可以(並且確實)考慮 考慮的因素取決於許多參數,包括:您已經收到的 的Cookie ---對於HTML5視頻,您的 地理位置---用於區域控制,您的年齡 - 用於「強」材料,您的 語言/地區---用於顯示適合您的內容等。

的YouTube-DL使用正則表達式來從你給和,那麼URL 提取視頻ID,採用的是「標準化」,典型的URL從 美國,從中進行使用。

動態數據收集的一些包括:

  • 一些時間戳(的expire,並fexp零件的最終URL)
  • 餅乾發送到瀏覽器
  • 在此我們要下載的視頻(最終URL的一部分itag
  • 限制信息(algorithmburst,012格式)
  • 通過它們內部使用一些散列/令牌(例如,最後的URL的signature一部分)

一些上面列出曾經不所需的信息,但現在它們 是(特別是他們寄給你的cookies)。這意味着,上面列出的 信息很可能變得過時,作爲對照 變得更加嚴格。

你可以看到一些工作(相對於餅乾),我在 做了這方面的外部的後端的實現使用外部 下載(「下載加速器」)什麼的YouTube-DL提取物。 Discloser:我已經對存儲庫進行了一些更改,並且我在Debian中維護 youtube-dl軟件包(並且,作爲Ubuntu的一個副作用)。

+2

與youtube-dl,它很高興能夠找到像易於使用和積極維護的有用的東西。 – AndyDunn

+0

@AndyDunn,自從我編寫回答和最新變更以來,youtube-dl已獲得許多其他網站的支持。看到一個簡單的'InformationExtractors'是理解視頻抓取原理如何工作的好方法。 – rbrito

+0

感謝一羣人指出。這對我所做的事情有很大的影響,知道它也可以用於其他網站! :) – AndyDunn

1

Youtube不存儲FLV文件,他們將您的視頻編譯成SWF對象。這些視頻需要提取或轉換爲FLV才能獲得FLV。

http://www.youtube.com/v/videoid

例如:

http://www.youtube.com/watch?v=C6nRb45I3e4 

成爲

http://www.youtube.com/v/C6nRb45I3e4 

從那裏,你需要將SWF轉換成FLV,可與ffmpeg完成。

+0

感謝,但是這不是我所提出的要求。 – xLite

+0

是的,flv文件沒有url,因爲沒有FLV文件。它們是在SWF對象內編譯的。您必須使用ffmpeg進行反編譯才能獲取flv。 SWF位於前面提到的位置。 –

+5

?? YouTube會將FLV文件傳輸到播放器。他們不會上傳嵌入視頻的獨特SWF文件。 – xLite

4

您可能想看看youtube-dl如何下載文件。隨着YouTube的變化,該程序似乎更新得相當快。

-1

如果你真的想在flv或mp4模式下獲得youtube視頻的網址,那麼在Chrome中使用「YouTube Downloader - 版本:5.0」,你可以右鍵點擊下載按鈕並複製路徑。 !

[你可以從這個按鈕,任何格式的URL] [1]

http://i.stack.imgur.com/AFUWr.jpg (see this url due to i can't upload image at this time) 

您可以點擊此按鈕,並從複製網址「鉻://下載/」 我想,這可能幫你。