2010-12-30 1 views
1

Я не уверен, что это подходящее место, чтобы опубликовать этот вопрос, я много рассказывал об этом, но ничего не получилось. для связи видаКак получить ссылку на поток данных для любого видео с YouTube?

http://www.youtube.com/watch?v=[video_id]

Как я получить ссылку для потока данных?

ответ

0

Каждый канал предоставляет rss-данные, которые не обновляются немедленно.

Это генератор для RSS-файлов Youtube. Вы должны уметь определять местоположение видеофайлов на основе информации RSS. FLV-файлы должны быть потоковыми, но также предоставляются другие форматы.

EDIT: http://www.referd.info/ больше не доступен. В основном это была служба, в которой вы предоставили ссылку на YouTube, и она была разыменована, и она обнаружила все возможные файлы загрузки для этого видео. Я уверен, что эти службы по-прежнему там ... этот уже не существует.

+0

, что ссылка не кажется, работают очень хорошо – Sridarshan

+0

ссылка не работает, пожалуйста, проверьте. – jAckOdE

+0

[KeepVid] (http://keepvid.com), похоже, работает, единственная проблема - это апплет Java. –

1

Вот быстрый урок в обратном проектировании страницы YouTube для извлечения данных потока.

В HTML вы найдете < сценарий > тег, который определяет переменную "swfHTML" - это выглядит следующим образом: "вар swfHTML = (isIE)?" ...

текст в кавычки, которые следует за этим фрагментом, это HTML, который отображает объект Flash. Обратите внимание: этот текст представляет собой набор сломанных строк, которые объединяются, поэтому вам нужно очистить его до (например, вырезать экземпляры «+» и сбрасывать обратную косую черту, чтобы получить строку HTML.)

После очистки вам нужно найти < парам > тег с Name = «FlashVars», значение этого тега является & -delimited URL. Сделайте разделение на &, и вы получите свои пары ключ-значение для всех данных, относящихся к этому видео.

Главный ключ вы ищете является «fmt_url_map» и что это URL закодированные строка значений, разделенных запятыми, начиная с «35 |» или "34 |" или другой. (Они определены в другом ключе, «fmt_list» быть файлы разрешением 854x480 для 35, 640х360 для 34, и т.д ..)

+0

и как именно я обрабатываю эти закодированные URL? – Sridarshan

+0

Сделайте запрос GET (используя CURL, Fiddler или что-то еще) для одного из URL-адресов.Обязательно включите соответствующие заголовки запросов (Cookie и Host и, возможно, другие). Я захватил файлы cookie YouTube из своего браузера. Я проверил это вручную, используя Fiddler, и я смог загрузить несколько видеороликов. – nedk

2

Следующая Баш скрипт будет получать YouTube потокового URL. Я знаю, что это устарело, но, возможно, это поможет кому-то.

#!/bin/bash 

[ -z "$1" ] && printf "usage: `basename $0` <youtube_url>\n" && exit 1 

ID="$(echo "$1" | grep -o "v=[^\&]*" | sed 's|v=||')" 
URL="$(curl -s "http://www.youtube.com/get_video_info?&video_id=$ID" | sed -e 's|%253A|:|g' -e 's|%252F|/|g' -e 's|%253F|?|g' -e 's|%253D|=|g' -e 's|%2525|%|g' -e 's|%2526|\&|g' -e 's|\%26|\&|g' -e 's|%3D|=|g' -e 's|type=video/[^/]*&sig|signature|g' | grep -o "http://o-o---preferred[^:]*signature=[^\&]*" | head -1)" 

[ -z "$URL" ] && printf "Nothing was found...\n" && exit 2 

echo "$URL"