Twitch, php и все такое
Posted: 13 Dec 2016, 11:37
Добрый день.
Предыстория:
Разработал php-скрипт, который генерит m3u плей-листы по моим подпискам.
В первой итерации разработки столкнулся с тем, что приложение, насколько я понял, имеет ограничение на время получения плейлиста, а мой скрипт получал все ссылки на все трансляции сразу, поэтому не успевал уложиться в ограничение по времени (максимальное количество трансляций, которое удалось получить - 4).
Во второй итерации я решил формировать плей-листы без ссылок, а сами ссылки получать при выборе конкретного канала.
И в общем-то почти все получилось: скрипт мог вывести хоть пол сотни трансляций с превьюшками, описаниями. Но возник ключевой глюк - приложению не удается получить ссылку на трансляцию из php-скрипта.
Сейчас объясню на примере:
#EXTM3U
#EXTINF:-1 , Twitch Streamer
#EXTSIZE: big
http://domain/stream.php?s=[тут_имя_стримера]
При обращении из браузера данная ссылка выдает конкретную ссылку вида "http://video-edge-748f88.fra01.hls.ttvnw.net/transcode-x2-8bcbbc/...."
Приложение же получать данную ссылку не хочет. Есть предположение, что переданная ссылка на "трансляцию" (которая на самом деле промежуточный скрипт для получения конечной ссылки) пытается воспроизвестись и выходные данные из этого скрипта не воспринимаются как настоящая ссылка на трансляцию.
Но если сделать вот так:
#EXTM3U
#EXTINF:-1 type="playlist", Twitch Streamer
#EXTSIZE: big
http://domain/stream.php?s=[тут_имя_стримера]
То все начинает более-менее работать, за исключением того, что при нажатии на канал открывается плейлист с одним каналом и именем в виде ссылки, при нажатии на который уже открывается трансляция. Но это, понятно дело, не удобно, т.к. пропадает возможность быстрого переключения на другой стрим, т.к. в этот момент мы находимся во вложенном плей-листе с одним каналом.
Соответственно, вопрос: это особенность m3u, приложения или чего-то еще? Есть ли возможность (может каким-то тегом в m3u) дать понять что это не окончательная ссылка, а ее надо получить? Либо может еще какие-то варианты решения есть, которые я не увидел.
Заранее спасибо!
Предыстория:
Разработал php-скрипт, который генерит m3u плей-листы по моим подпискам.
В первой итерации разработки столкнулся с тем, что приложение, насколько я понял, имеет ограничение на время получения плейлиста, а мой скрипт получал все ссылки на все трансляции сразу, поэтому не успевал уложиться в ограничение по времени (максимальное количество трансляций, которое удалось получить - 4).
Во второй итерации я решил формировать плей-листы без ссылок, а сами ссылки получать при выборе конкретного канала.
И в общем-то почти все получилось: скрипт мог вывести хоть пол сотни трансляций с превьюшками, описаниями. Но возник ключевой глюк - приложению не удается получить ссылку на трансляцию из php-скрипта.
Сейчас объясню на примере:
#EXTM3U
#EXTINF:-1 , Twitch Streamer
#EXTSIZE: big
http://domain/stream.php?s=[тут_имя_стримера]
При обращении из браузера данная ссылка выдает конкретную ссылку вида "http://video-edge-748f88.fra01.hls.ttvnw.net/transcode-x2-8bcbbc/...."
Приложение же получать данную ссылку не хочет. Есть предположение, что переданная ссылка на "трансляцию" (которая на самом деле промежуточный скрипт для получения конечной ссылки) пытается воспроизвестись и выходные данные из этого скрипта не воспринимаются как настоящая ссылка на трансляцию.
Но если сделать вот так:
#EXTM3U
#EXTINF:-1 type="playlist", Twitch Streamer
#EXTSIZE: big
http://domain/stream.php?s=[тут_имя_стримера]
То все начинает более-менее работать, за исключением того, что при нажатии на канал открывается плейлист с одним каналом и именем в виде ссылки, при нажатии на который уже открывается трансляция. Но это, понятно дело, не удобно, т.к. пропадает возможность быстрого переключения на другой стрим, т.к. в этот момент мы находимся во вложенном плей-листе с одним каналом.
Соответственно, вопрос: это особенность m3u, приложения или чего-то еще? Есть ли возможность (может каким-то тегом в m3u) дать понять что это не окончательная ссылка, а ее надо получить? Либо может еще какие-то варианты решения есть, которые я не увидел.
Заранее спасибо!