Как получить URL YouTube FLV? - PullRequest
       10

Как получить URL YouTube FLV?

3 голосов
/ 22 сентября 2011

Просматривая сайт, каждый вопрос использует устаревший метод. Как веб-сайты / приложения загрузчика YouTube FLV делают это?

Я пытаюсь сделать это на PHP, но теории или шагов для этого будет достаточно, спасибо.

Ответы [ 4 ]

15 голосов
/ 02 октября 2011

Как уже упоминалось в других сообщениях, вы можете посмотреть наш код в youtube-dl (или в коде расширения Firefox, называемом FlashVideoReplacer ).

В частном случае youtube-dl "настоящая работа" выполняется в подклассы InformationExtractor и трудно дать «стабильный» ответ, так как макет таких сайтов постоянно меняется.

Есть некоторые фрагменты информации, которые не являются динамическими, например, для Например, загрузчик видео, заголовок, дата загрузки, и, самое главное, идентификатор видео (строка из 11 символов).

Что касается динамических частей, то о таких инструментах можно сказать следующее: по сути, URL, генерируемые такими видео, генерируются динамически и вам нужно выполнить некоторое обратное общение с сервером.

Важно иметь в виду, что такие сайты могут (и делают) принимать рассмотрение зависит от ряда параметров, в том числе: куки, которые вы уже получили --- как в случае с видео HTML5, ваш геолокация --- для регионального контроля, ваш возраст - для "сильного" материала, ваш язык / локаль --- для показа контента, созданного специально для вас и т. д.

youtube-dl использует регулярное выражение для извлечения идентификатора видео из URL что вы даете, а затем использует «нормализованный», типичный URL, как используется из Соединенные Штаты, из которых следует исходить.

Некоторые динамических данных, которые нужно собрать, включают в себя:

  • некоторая отметка времени (expire и fexp части окончательного URL)
  • куки, отправленные в браузер
  • формат, в котором мы хотим загрузить видео (itag часть окончательного URL)
  • информация о регулировании (algorithm, burst, factor)
  • некоторые хэши / токены, используемые ими внутри (например, signature часть окончательного URL)

Некоторая информация, перечисленная выше, когда-то не требовалась, но теперь они являются (в частности, куки, которые они вам отправляют). Это означает, что приведенная выше информация, скорее всего, устареет, так как контроль стать более строгим.

Вы можете увидеть некоторые работы (в отношении файлов cookie), которые я делал в В связи с этим при реализации внешнего бэкэнда использовать внешний загрузчик («ускоритель загрузки») с тем, что извлекает youtube-dl.

Discloser: я внес некоторые изменения в хранилище, и я поддерживаю пакет youtube-dl в Debian (и, как побочный эффект, в Ubuntu).

4 голосов
/ 29 сентября 2011

Возможно, вы захотите взглянуть на то, как youtube-dl загружает файлы. Поскольку YouTube меняется, эта программа, похоже, обновляется довольно быстро.

1 голос
/ 22 сентября 2011

Youtube не хранит FLV-файлы, они компилируют ваше видео в SWF-объект. Эти видео должны быть извлечены или преобразованы в FLV, чтобы получить FLV.

http://www.youtube.com/v/videoid

например:

http://www.youtube.com/watch?v=C6nRb45I3e4

становится

http://www.youtube.com/v/C6nRb45I3e4

Оттуда вам нужно конвертировать SWF в flv, что можно сделать с помощью ffmpeg .

0 голосов
/ 01 октября 2011

Если вы действительно хотите получить URL-адрес видео на YouTube в режиме FLV или MP4, используйте «YouTube Downloader - Версия: 5.0» в Chrome, вы можете щелкнуть правой кнопкой мыши по кнопке загрузки и скопировать путь.

! [С помощью этой кнопки вы можете получить URL любого формата] [1]

http://i.stack.imgur.com/AFUWr.jpg (see this url due to i can't upload image at this time)

Вы можете нажать на эту кнопку и скопировать URL из "chrome: // downloads /". Я думаю, что это может вам помочь.

...