Всем привет! Подскажите, пожалуйста, как мне получить рабочий m3u8 файл или целый видеоролик?
Есть сайт, который возвращает
вот такое
#EXTM3U
#EXT-X-TARGETDURATION:20
#EXT-X-ALLOW-CACHE:YES
#EXT-X-PLAYLIST-TYPE:VOD
#EXT-X-VERSION:3
#EXT-X-MEDIA-SEQUENCE:1
#EXTINF:20.000,
VIDEOID.mp666/Frag-1-v1-a1
#EXTINF:20.000,
VIDEOID.mp666/Frag-2-v1-a1
#EXTINF:20.000,
VIDEOID.mp666/Frag-3-v1-a1
#EXTINF:20.000,
VIDEOID.mp666/Frag-4-v1-a1
#EXTINF:20.000,
VIDEOID.mp666/Frag-5-v1-a1
#EXTINF:20.000,
VIDEOID.mp666/Frag-6-v1-a1
...
#EXT-X-ENDLIST
В одном из фрагментов, которые видны во вкладке network и выглядят так Frag-1-v1-a1, в поле Request URL записано это:
https://какой-то_cdn.com/большой_путь_к_файлу/VIDE... и т.д
Так можно скачать видео через Streamlink
streamlink --http-header Origin=
https://название_сайта "
hls://https://какой-то_cdn.com/большой_путь_к_файл..." best -o свое_название.ts,
где в --http-header Origin=
https://название_сайта указывает тот сайт, что указан в поле origin в браузере. При этом полностью удаляются расширения и остается только название видео (VIDEOID).
Но через Streamlink файл скачивается какой-то кривой. Весит гораздо меньше, все видео в артефактах, звук заикается.
Есть другой сайт, который тоже возвращает файл название_файла.m3u8. Там записано что-то
вроде этого
#EXTM3U
#EXT-X-VERSION:3
#EXT-X-TARGETDURATION:20
#EXT-X-MEDIA-SEQUENCE:0
#EXTINF:18.644867,
название_видео0.ts
#EXTINF:1.960422,
название_видео1.ts
#EXTINF:10.219222,
название_видео2.ts
#EXTINF:10.386067,
название_видео3.ts
#EXTINF:9.009600,
название_видео4.ts
#EXTINF:11.178578,
название_видео5.ts
#EXTINF:10.594622,
название_видео6.ts
...
#EXT-X-ENDLIST
В одном из фрагментов, которые видны во вкладке network и выглядит так название_видео0.ts, в поле Request URL записано это
https://какой-то_сервер.cc/путь_к_файлу/название_в....
Если я скопирую ссылку файла m3u8 и вставлю в VLC, то у меня запускается нормальное видео.
Если я скопирую строчки из m3u8, создам у себя на компе m3u8 файл, вставлю туда строчки, которые указал выше, но при этом добавлю тот же сайт, что и в Request URL и получу что-то
, то и этот m3u8 файл будет работать.
Но проблема в том, что такой же способ с добавление названия сервера и расширения .ts не срабатывает с первым сайтом.
Эти сайты отличаются тем, что у первого сайта не показывается расширение у плейлиста и фрагментов, а у второго они есть. Если я открою ссылку на плейлист из первого сайта, то я получаю 403 ошибку, а у второго скачиваю m3u8 файл.
Плюс первый сайт возвращает ошибку 403, если я обращаюсь к нему через curl --verbose
https://название_сайта/путь_к_файлу/файл, но если я сделаю такой же запрос, но с curl -H "Origin:
https://сайт_из_поля_origin", то я получаю, то же самое, что и в спойлер 1.
Как из всего этого можно получить нормальный, рабочий m3u8 файл
с первого сайта? Streamlink же как-то частично получает видео.
Надеюсь, кто-нибудь дочитал до конца.