I\'m wordering how apps such as Video DownloadHelper work.
Any ideas?
Simply by reverse engineering youtube and understanding how it works as stated in this question
UPDATE: This answer may now be outdated, see comments below. This was going to happen eventually anyway, as YouTube phases out FLV and shifts toward HTML5 video...
They simply resolve the link to the actual FLV file, and download it.
This is done by copying the video identifier from the URL:
http://www.youtube.com/watch?v=WEeqHj3Nj2c
Which is used to request info about the video:
http://www.youtube.com/get_video_info?&video_id=WEeqHj3Nj2c
The video info includes a TOKEN
, which you can then you use to make another request:
http://www.youtube.com/get_video?video_id=WEeqHj3Nj2c&t=TOKEN
If all goes well, YouTube will respond with HTTP 303 See Other
, including a Location
header with a direct link to the FLV
file.
Looking at the extension code, you can see it's doing it by regex parsing HTTP responses for various content types. The code is located in network-probe.js.
Specifically its using the http-on-examine-response event in the Firefox addon sdk - https://developer.mozilla.org/en-US/docs/Observer_Notifications#HTTP_requests