(Метод актуален на 27.01.2025). В конце более короткий способ
-
Получаем ссылку на файл
.m3u8
. Я делаю на смартфоне связкойKateMobile + MXPlayer
. Результат выглядит так:
https://vkvsd52.okcdn.ru/hls/7614690757221.m3u8/sig/J6eD0sJY52U/srcIp/213.87.130.61/urls/45.136.22.54/expires/1738450126006/clientType/13/srcAg/UNKNOWN_ANDROID/fromCache/1/mid/8588981971813/id/7614690757221/video.m3u8?p -
Скачиваем
.m3u8
файл черезDownload Master
(лучше) или иным способом.
Если использовали DM
, то после скачивания он сам проанализирует содержимое файла и извлечёт ссылки на доступные потоки.
Если развернуть ссылки целиком, в конце увидим указание на качество видеопотоков.
Уже на этом этапе можно Right Click -> Copy
и вставить ссылку в проигрыватель, подерживающий потоковую трансляцию. Немного подумав, он начнёт воспроизведение.
- Но продолжим. Окрываем
.m3u8
файл в блокноте и видим такую картину:
#EXTM3U
#EXT-X-VERSION:3
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=2383966,RESOLUTION=1280x720,QUALITY=hd
7614690757221_high/index.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=559657,RESOLUTION=852x480,QUALITY=sd
7614690757221_medium/index.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=453277,RESOLUTION=640x360,QUALITY=low
7614690757221_low/index.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=205795,RESOLUTION=428x240,QUALITY=lowest
7614690757221_lowest/index.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=6580680,RESOLUTION=1920x1080,QUALITY=full
7614690757221_fullhd/index.m3u8
Строки, начинающиеся с #EXT-X-STREAM-INF...
, содержат описание потока, а прямо под ними ссылка на сам поток.
Из полученной в пункте #1 ссылки стираем video.m3u8?p
и добавляем строку с нужным качеством.
-
Оригинальная полная ссылка:
https://vkvsd52.okcdn.ru/hls/7614690757221.m3u8/sig/J6eD0sJY52U/srcIp/213.87.130.61/urls/45.136.22.54/expires/1738450126006/clientType/13/srcAg/UNKNOWN_ANDROID/fromCache/1/mid/8588981971813/id/7614690757221/video.m3u8?p -
Убираем крайнее звено URI и добавляем строку с желаемым качеством:
https://vkvsd52.okcdn.ru/hls/7614690757221.m3u8/.../id/7614690757221/video.m3u8?p
https://vkvsd52.okcdn.ru/hls/7614690757221.m3u8/.../id/7614690757221/+
7614690757221_high/index.m3u8 -
Получаем итоговую ссылку, которую скармливаем плееру:
https://vkvsd52.okcdn.ru/hls/7614690757221.m3u8/sig/J6eD0sJY52U/srcIp/213.87.130.61/urls/45.136.22.54/expires/1738450126006/clientType/13/srcAg/UNKNOWN_ANDROID/fromCache/1/mid/8588981971813/id/7614690757221/7614690757221_high/index.m3u8
→ Активируем Панель разработчика
→ Включаем "Режим адаптивного дизайна", чтобы притвориться мобилкой и заходим на трансу
→ Вкладка "Сеть"
→ Фильтрация по запросу: "getVideoDiscover"
→ Получим что-то типа: "https://api.vkvideo.ru/method/video.getVideoDiscover?v=5.245&client_id=7879029"
В теле запроса будет:
{
"rtmp": "rtmp://vkvsd256.okcdn.ru/playback/9654631410609?stkn=Z3AP1scbGSihpDZtND1DeCiD9PSztu-wVXW-M-TPSbO_qwqFr0wpzDGDJ3a20Ql74lmPhOUHaHw&uid=0&sp=uid,sp&sig=vlibqm4nyu",
"cmaf": "https://vkvsd256.okcdn.ru/cmaf/7942858017457/sig/-PcC2bPbvKE/expires/1738436785715/srcIp/213.87.144.36/urls/45.136.22.55/clientType/14/srcAg/CHROME_ANDROID/mid/9654631410609/get/dash_9654631410609.4LjUIxb8Qk0.mpd",
"hls_live": "https://vkvsd256.okcdn.ru/hls/7942858017457.m3u8/sig/-PcC2bPbvKE/expires/1738436785715/srcIp/213.87.144.36/urls/45.136.22.55/clientType/14/srcAg/CHROME_ANDROID/mid/9654631410609/video.m3u8?p",
"hls_live_playback": "https://vkvsd256.okcdn.ru/hls/7942858017457_offset_p.m3u8/sig/-PcC2bPbvKE/expires/1738436785715/srcIp/213.87.144.36/urls/45.136.22.55/clientType/14/srcAg/CHROME_ANDROID/mid/9654631410609/video.m3u8?p",
"dash_live": "https://vkvsd256.okcdn.ru/dash/stream_7942858017457/stream.manifest/sig/-PcC2bPbvKE/expires/1738436785715/srcIp/213.87.144.36/urls/45.136.22.55/clientType/14/srcAg/CHROME_ANDROID/mid/9654631410609/video",
"dash_live_playback": "https://vkvsd256.okcdn.ru/dash/stream_7942858017457_offset_p/stream.manifest/sig/-PcC2bPbvKE/expires/1738436785715/srcIp/213.87.144.36/urls/45.136.22.55/clientType/14/srcAg/CHROME_ANDROID/mid/9654631410609/video",
"failover_host": "vkvsd19.okcdn.ru"
},