Getting an FLV from YouTube in .NET

妖精的绣舞 提交于 2019-12-07 23:15:52

问题


I'm writting FLV media player and want to know if there is there anyway of accessing the underlying FLV files used by YouTube from a URL? There used to be a bunch of ways of doing it, but YouTube have changed things about and I now can't find any way of doing it...

From what I've seen so far, the YouTube API doesn't seem to give access either. Has anyone found a way of doing it?

Cheers!


回答1:


There are two values associated with a YouTube video: an ID and a signature. The ID is simple to get, as it's in the URI itself. The signature is a bit trickier to get. It's embedded in a Javascript statement in the source code of each video page.

For example, let's take the Numa Numa video.

It has an ID of KmtzQCSh6xk, as can be seen from the URI.

To get the signature, we have to dig into the source code of the HTML. To easily do this in Firefox, load the source of the page by right clicking anywhere on the page and click "View Page Source." After that, press Ctrl+F, and type in "t":. It will take you to the signature of the page: the value directly after that in quotes is the signature.

In the case of the Numa Numa Dance, it's signature is vjVQa1PpcFOSvCcjdAYSc3ZQgK-6EG9yQM7RLSYqJk4%3D

To get the actual FLV, you enter this URI:

http://www.youtube.com/get_video?fmt=5&video_id={ID}&t={SIGNATURE}

The complete URI to get the FLV video is:

http://www.youtube.com/get_video?fmt=5&video_id=KmtzQCSh6xk&t=vjVQa1PpcFOSvCcjdAYSc3ZQgK-6EG9yQM7RLSYqJk4%3D

You can use this information to help you get the signature and ID you need to download the FLV programatically. Whether it's doing a simple String.Find for the value "t": or using RegEx, it should be simple to find until they change it.



来源:https://stackoverflow.com/questions/1883737/getting-an-flv-from-youtube-in-net

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!