Как получить живые файлы m3u8, а не файлы DVR m3u8 прямых трансляций YouTube?

Я хотел бы получить живой файл m3u8, а не DVR m3u8, поскольку последний содержит слишком много сегментов (4 часа), медленный и неудобный для загрузки и обработки.

Например, прямой эфир Sky News

www.youtube.com/watch?v=y60wDzZt8yg

Что я наделал:

Изменение строки пользовательского агента на iPad или посещение

www.youtube.com/get_video_info?&video_id=y60wDzZt8yg

Я мог бы получить что-то вроде

manifest.googlevideo.com/api/manifest/hls_variant/playlist_type/DVR/signature/11D1EE619ACDCA91661CB6F42597F96F0C86CC1F.742A7B383F4B10A099B1C7AAEF1E15DCD2F160C6/ipbits/0/fexp/9416126%2C9420452%2C9422596%2C9423459%2C9423661%2C9423662/source/yt_live_broadcast/id/y60wDzZt8yg.2/ sver / 3 / key / yt6 / upn / 0y8ab4RaX_U / expire / 1454380402 / sparams / gcr% 2Cid% 2Cip% 2Cipbits% 2Citag% 2Cmaudio% 2Cplaylist_type% 2Cpmbypass% 2Csource% 2Cexpirepass3 / ip / 86.172.62. да / maudio / 1 / gcr / ГБ / файл / index.m3u8

который содержит файлы sub-m3u8 с несколькими разрешениями.

При открытии этого файла 720p sub-m3u8

manifest.googlevideo.com/api/manifest/hls_playlist/id/y60wDzZt8yg.2/itag/95/source/yt_live_broadcast/requiressl/yes/ratebypass/yes/live/1/cmbypass/yes/gir/yes/dg_shard4/eTWYww 95 / hls_chunk_host / r7 --- sn-cu-n1qe.googlevideo.com/playlist_type/DVR/pmbypass/yes/gcr/gb/mm/32/mn/sn-cu-n1qe/ms/lv/mv/u/ pcm2cms / yes / pl / 24 / dover / 3 / fexp / 9416126,9420452,9422596,9423459,9423661,9423662 / sver / 3 / upn / 0y8ab4RaX_U / mt / 1454358580 / ip / 86.172.63.152 / ipbits / 0 / expire / 1454380402 / sparams / ip, ipbits, expire, id, itag, source, requiressl, ratebypass, live, cmbypass, gir, dg_shard, hls_chunk_host, playlist_type, pmbypass, gcr, mm, mn, ms, mv, pcm2cms, pl / signature / 86FCD06C0400556C7F94B21019707B2501F98308.659A34C0F8A2DC70CC8DC411CD5D723C55146DD3 / key / dg_yt0 / playlist / index.m3u8

Он содержит ts-сегменты за последние 4 часа, и он очень медленно обрабатывается и выполняет дальнейшие действия. Я обнаружил, добавляю ли я строку запроса

? start_seq = 344610

по приведенной выше ссылке я мог бы получить гораздо более короткий файл m3u8, который начинается с этой конкретной последовательности. Однако количество последовательностей в файле будет увеличиваться со временем, если параметр start_seq не будет увеличен одновременно.

Напротив, для прямой трансляции без воспроизведения, разрешенного поставщиком канала, YouTube автоматически вернет живой файл m3u8, который содержит только несколько последовательностей продолжительностью менее одной минуты. Самое заметное отличие ссылки -

playlist_type / LIVE

скорее, чем

playlist_type / DVR

Мне интересно, могу ли я получить файл LIVE m3u8 для тех прямых трансляций YouTube, чьи провайдеры разрешают воспроизведение? Может есть какие-то параметры, похожие на "start_seq = XXX"? Или есть какой-то API, который может напрямую возвращать живые ссылки m3u8? Большое тебе спасибо.


comment
Вы нашли на это ответ?   -  person John Bassos    schedule 11.05.2017


Ответы (1)


Я не уверен, что это именно то, что вам нужно, но, используя Charles Proxy с Firefox и установив пользовательский агент на Safari на iOS, я смог получить плейлист m3u8 со ссылками на DVR.

HTTP GET: https://manifest.googlevideo.com/api/manifest/hls_variant/upn/wLKv6OL3J1A/sparams/gcr%2Cid%2Cip%2Cipbits%2Citag%2Cplaylist_type%2Cpmbypass%2Cratebypass%2Csource%2Cexpire/expire/1454656348/signature/D1ADDA66092157D87C5DBAB0ECD81AB1D4467291.646FFD703F6ADA2C2E9769F7F3590274C9555148/id/y60wDzZt8yg.2/key/yt6/ip/209.122.120.50/ratebypass/yes/pmbypass/yes/gcr/us/itag/0/ipbits/0/fexp/9405349%2C9408491%2C9418223%2C9419543%2C9420452%2C9421886%2C9422596%2C9422780%2C9423661%2C9424135%2C9424163%2C9425065%2C9425200%2C9425744%2C9426402%2C9427000%2C9427753/playlist_type/DVR/source/yt_live_broadcast/sver/3/keepalive/yes/file/index.m3u8?cpn=OjahYpsGmZq6lLAS

Полная команда curl с заголовками:

curl -H "Host: manifest.googlevideo.com" \
-H "User-Agent: Mozilla/5.0 (iPhone; U; CPU iPhone OS 3_0 like Mac OS X; en-us) AppleWebKit/528.18 (KHTML, like Gecko) Version/4.0 Mobile/7A341 Safari/528.16" \
-H "Accept: video/webm,video/ogg,video/*;q=0.9,application/ogg;q=0.7,audio/*;q=0.6,*/*;q=0.5" \
-H "Accept-Language: en-US,en;q=0.5" \
-H "Range: bytes=0-" \
-H "Referer: https://m.youtube.com/watch?v=y60wDzZt8yg" \
https://manifest.googlevideo.com/api/manifest/hls_variant/upn/wLKv6OL3J1A/sparams/gcr%2Cid%2Cip%2Cipbits%2Citag%2Cplaylist_type%2Cpmbypass%2Cratebypass%2Csource%2Cexpire/expire/1454656348/signature/D1ADDA66092157D87C5DBAB0ECD81AB1D4467291.646FFD703F6ADA2C2E9769F7F3590274C9555148/id/y60wDzZt8yg.2/key/yt6/ip/209.122.120.50/ratebypass/yes/pmbypass/yes/gcr/us/itag/0/ipbits/0/fexp/9405349%2C9408491%2C9418223%2C9419543%2C9420452%2C9421886%2C9422596%2C9422780%2C9423661%2C9424135%2C9424163%2C9425065%2C9425200%2C9425744%2C9426402%2C9427000%2C9427753/playlist_type/DVR/source/yt_live_broadcast/sver/3/keepalive/yes/file/index.m3u8?cpn=OjahYpsGmZq6lLAS

Эта ссылка принимает параметр cpn, который представляет собой номер конфиденциальности канала. Это был параметр, добавленный к URL-запросу, который я считаю необязательным.

person JAL    schedule 05.02.2016