Page 1 of 1

Twitch, php и все такое

Posted: 13 Dec 2016, 11:37
by ilya148
Добрый день.

Предыстория:
Разработал 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) дать понять что это не окончательная ссылка, а ее надо получить? Либо может еще какие-то варианты решения есть, которые я не увидел.

Заранее спасибо!

Re: Twitch, php и все такое

Posted: 13 Dec 2016, 16:29
by Eugene
Вам нужно скриптом не возвращать ссылку, а делать перенаправление на нее, тогда все должно заработать.

Re: Twitch, php и все такое

Posted: 13 Dec 2016, 20:09
by ilya148
Сделал перенаправление. В браузере при выполнении начинается закачка файла m3u8, в приложении изменений нет.

Re: Twitch, php и все такое

Posted: 13 Dec 2016, 20:27
by Eugene
Это потому что для hls-потоков на Samsung нужно использовать другой плеер. Приложение по внешнему виду ссылки определяет, какой плеер использовать, но в вашей исходной ссылке m3u8 нет, поэтому приложение не понимает, что этот поток нужно воспроизводить иначе.
Именно для этих целей мы реализовали поддержку атрибута mime-type в плейлисте. Используйте его со значением application/x-mpegURL для ваших потоков.

Re: Twitch, php и все такое

Posted: 13 Dec 2016, 20:37
by ilya148
Да! То, что нужно. Спасибо.