Не могу скачать с YouTube - PullRequest
       34

Не могу скачать с YouTube

4 голосов
/ 09 декабря 2010

У меня есть скрипт, который загружает файлы mp4 с YouTube. Он генерирует ссылку вида http://youtube.com/get_video?video_id=*VIDEO_ID*&&t=*THE_TOKEN*=&fmt=18&asv=2,, но он больше не работает (заметил это сегодня). Что ты думаешь?

Ответы [ 4 ]

13 голосов
/ 12 декабря 2010

Вместо того чтобы пытаться использовать get_video для получения видео, попробуйте вместо этого разобрать fmt_url_map (map-format-url).

Вы должны быть в состоянии найти fmt_url_map в том же месте, где вы нашли токен (как во флешварах флеш-видеоплеера YouTube или где-то на странице YouTube). Если вы не можете его найти, отправьте запрос по номеру http://www.youtube.com/get_video_info?video_id=VIDEO_ID, и вы должны получить очень длинный результат в формате name=value&name=value&... Найти "fmt_url_map" внутри этого результата (поиск по строке результата который начинается с "& fmt_url_map =" и заканчивается "&").

После того, как вы получите это значение (вам может понадобиться его url-декодирование), оно будет примерно таким (без разрывов строк):

22|http://blah.youtube.com/videoplayback?blah,
35|http://blah.youtube.com/videoplayback?blah,
...

, где каждая разделенная запятыми запись начинается со значения fmt (в данном примере 22 или 35), за которым следует символ канала, за которым следует URL-адрес, по которому вы можете загрузить видео в этом формате. (Этот URL-адрес зависит от клиента, поэтому URL-адрес определенного клиента, скорее всего, не будет работать с другим клиентом из-за проверки IP-адресов YouTube. Кроме того, URL-адреса действительно истекают через некоторое время.)

Список различных значений fmt см. В: http://en.wikipedia.org/wiki/YouTube#Quality_and_formats и отображает «Комарисон параметров кодирования медиафайлов YouTube». ПРИМЕЧАНИЕ. Не все форматы могут быть доступны для всех видео.

Устаревший: больше не будет работать!

2 голосов
/ 10 декабря 2010

Если вы хотите загрузить на сервер, вы можете использовать youtube-dl , который все еще работает.

0 голосов
/ 31 марта 2013

Я создал сервер node.js, который может транслировать видео с YouTube прямо на клиент, и он работает. Подробнее см. https://github.com/licson0729/node-YouTubeStreamer.

0 голосов
/ 10 декабря 2010

Ну, похоже, они убрали опцию fmt.Смотри http://en.wikipedia.org/wiki/YouTube#Quality_and_codecs.

...