Меня интересует, как работают такие приложения, как Video DownloadHelper .
Есть идеи?
ОБНОВЛЕНИЕ: Этот ответ теперь может быть устаревшим, см. Комментарии ниже. В любом случае это должно было произойти, так как YouTube отказывается от FLV и переходит к видео HTML5 ...
просто разрешите ссылку на фактический FLV-файл и загрузите его.
Это делается путем копирования идентификатора видео с URL:
http://www.youtube.com/watch?v=WEeqHj3Nj2c
, который используется для запроса информации о видео:
http://www.youtube.com/get_video_info?&video_id=WEeqHj3Nj2c
Информация о видео включает TOKEN, который затем можно использовать для создания другого запроса:
TOKEN
http://www.youtube.com/get_video?video_id=WEeqHj3Nj2c&t=TOKEN
Если все пойдет хорошо, YouTube ответит HTTP 303 See Other, включая заголовок Location с прямой ссылкой на файл FLV.
HTTP 303 See Other
Location
FLV
Глядя на код расширения, вы можете увидеть, как он это делает, анализируя HTTP-ответы для различных типов контента.Код находится в network-probe.js.
В частности, используется событие http-on-exam-response в аддоне Firefox sdk - https://developer.mozilla.org/en-US/docs/Observer_Notifications#HTTP_requests