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

Все что касается этой функции в приложении: обсуждение, баги, обмен ссылками.
Post Reply
ilya148
Ensign
Ensign
Posts: 3
Joined: 13 Dec 2016, 11:17
TV Model: LG 49UH610
United States of America

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

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

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

User avatar
Eugene
Project Leader
Project Leader
Posts: 5620
Joined: 15 Apr 2013, 22:54
TV Model: LG 47LM960V, LG LB679V
Location: Санкт-Петербург
Been thanked: 18 times
Contact:
Russia

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

Post by Eugene »

Вам нужно скриптом не возвращать ссылку, а делать перенаправление на нее, тогда все должно заработать.

ilya148
Ensign
Ensign
Posts: 3
Joined: 13 Dec 2016, 11:17
TV Model: LG 49UH610
United States of America

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

Post by ilya148 »

Сделал перенаправление. В браузере при выполнении начинается закачка файла m3u8, в приложении изменений нет.

User avatar
Eugene
Project Leader
Project Leader
Posts: 5620
Joined: 15 Apr 2013, 22:54
TV Model: LG 47LM960V, LG LB679V
Location: Санкт-Петербург
Been thanked: 18 times
Contact:
Russia

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

Post by Eugene »

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

ilya148
Ensign
Ensign
Posts: 3
Joined: 13 Dec 2016, 11:17
TV Model: LG 49UH610
United States of America

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

Post by ilya148 »

Да! То, что нужно. Спасибо.

Post Reply