У меня есть сценарий, который загружает файлы mp4 с youtube. Что он делает, так это генерировать ссылку формы http://youtube.com/get_video?video_id= * VIDEO_ID * & & t = * THE_TOKEN * = & fmt = 18 & asv = 2, но он больше не работает (заметил сегодня). Как вы думаете?Не удается загрузить с youtube
ответ
Вместо того чтобы пытаться использовать get_video для получения видео, попробуйте вместо этого выполнить разбор fmt_url_map (format-url map).
Вы должны найти 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 и покажите «Comarison of the media media encoding options». ПРИМЕЧАНИЕ. Не все форматы могут быть доступны для всех видео.
спасибо вам! – Leg10n
+10 если можно. Вопрос: вы сказали, что это зависит от клиента, так что это не сработает, если я создам URL-адрес для пользователя, чтобы загрузить файл самостоятельно? Любые другие решения для этого? – samquo
Это может быть проблема (хотя у get_video была и эта проблема). Если вы действительно запрашиваете страницу и получаете URL-адрес загрузки на внешнем сервере, YouTube связывает IP-адрес сервера с этим URL-адресом (точно так же, как он связывает IP-адрес с каждым токеном в методе get_video). Предполагая, что вы пытаетесь сделать это в веб-браузере, вы можете попробовать и сделать это на стороне клиента с помощью апплета Java (это то, что делают многие сайты, такие как clipnabber.com, хотя это может быть довольно неуклюжим). Если вы просто пишете полностью клиентскую программу, это должно быть хорошо, потому что все запросы отправляются с IP-адресом клиента – jhartz
Если вы хотите загрузить на сервер, вы можете использовать youtube-dl, который все еще работает.
Ну, похоже, что они удалили опцию fmt. См. http://en.wikipedia.org/wiki/YouTube#Quality_and_codecs.
Это совсем не хорошо! Интересно, может ли кто-нибудь найти хак ... – Alex1987
Если вы разобрали fmt_url_map (с http://www.youtube.com/get_video_info?video_id=*VIDEO_ID*), вы можете получить более прямой URL для загрузки, t есть все возможные форматы ... – jhartz
Это замечательный человек! вы действительно должны сказать это как ответ! – Alex1987
Я создал сервер node.js, который может напрямую транслировать видеоролики YouTube клиенту, и он работает. См. https://github.com/licson0729/node-YouTubeStreamer.
- 1. Не удается загрузить видео youtube
- 2. Проблемы с YouTube загрузить
- 3. Не удается загрузить JVM
- 4. Не удается загрузить Nokogiri
- 5. Не удается загрузить php_sqlsrv_55_ts.dll
- 6. Не удается загрузить модуль
- 7. Не удается загрузить javax.comm
- 8. Не удается загрузить hibernate.cfg.xml
- 9. Не удается загрузить CascadeClassifier
- 10. Не удается загрузить org.springframework.web.servlet.DispatcherServlet
- 11. Как загрузить субтитры с видео с youtube через youtube -dl
- 12. Не удается загрузить провайдера
- 13. Не удается загрузить MicrosoftAjax.debug.js
- 14. Не удается загрузить файл-
- 15. Не удается загрузить CSS
- 16. Не удается загрузить lbpcascade_profile.xml
- 17. Не удается загрузить файл
- 18. Не удается загрузить CSS
- 19. Не удается загрузить файл
- 20. Не удается загрузить pixmap
- 21. Не удается загрузить ответ
- 22. Не удается загрузить HTML
- 23. Не удается загрузить instafeed.min.js
- 24. Не удается загрузить oracle.so
- 25. Не удается загрузить страницу
- 26. Не удается загрузить изображение
- 27. Не удается загрузить каталог
- 28. Не удается загрузить ntdll.dll
- 29. Windows Phone Youtube Загрузить
- 30. Не удается загрузить модули/mod_ssl.so на сервер
Мы все серьезно нуждаемся в проекте с открытым исходным кодом, чтобы не отставать от ссылки youtube dl для нас. Я устаю не отставать от своей игры. – samquo