Как получить ссылку на поток данных для любого видео YouTube? - PullRequest
1 голос
/ 30 декабря 2010

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

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

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

Ответы [ 4 ]

3 голосов
/ 07 ноября 2012

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

#!/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"
1 голос
/ 30 декабря 2010

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

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

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

После очистки вам нужно найти тег с name = "flashvars" , значением этого тега является & -delimited URL. Разбейте на & и вы получите свои пары ключ-значение для всех данных, относящихся к этому видео.

Основной ключ, который вы ищете - это " fmt_url_map ", и это строка URL-кода, разделенная запятыми, начинающаяся с "35 |" или "34 |" или другой. (Они определены в другом ключе, " fmt_list " для файлов с разрешением 854x480 для 35, 640x360 для 34 и т. Д.) *

0 голосов
/ 22 сентября 2015

Вам нужно открыть ссылку, как это http://www.youtube.com/get_video_info?&video_id=OjEG808MfF4 и найти свой поток ваши данные в ответ

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

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

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

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

...