Благодаря реализованной в SS IPTV системе вложенных плейлистов, вы можете создавать для своих пользователей сложные иерархические структуры, включающие в себя переход от одного плейлиста к другому. Эти структуры могут быть полезны, например при организации видеотеки или архива передач.
В данной статье будет описано, как используя вложенные плейлисты можно подключить к приложению вашу видеотеку. Для этого вам могут понадобиться атрибуты tvg-logo и description а также директивы #EXTSIZE и #EXTBG, описанные в статье Инструкция по формату M3U.
Основным отличием корневого плейлиста видеотеки от обычных плейлистов является то, что его элементы ссылаются не на видео-потоки, а на другие плейлисты. Для того, чтобы сообщить приложению, что элемент является ссылкой на плейлист, а не на поток, используйте атрибут type со значением playlist
Обратите внимание, если url указывает на файл с расширением m3u или xspf, использовать атрибут type нет необходимости, приложение определит тип автоматически.
Таким образом, корневой плейлист вашей видеотеки может выглядеть следующим образом:
#EXTM3U #EXTINF:0 type="playlist", 2015 год http://example.com/playlists/2015.m3u #EXTINF:0 type="playlist", 2010-2014 гг. http://example.com/playlists/2010-2014.m3u #EXTINF:0 type="playlist", А-Я http://example.com/playlists/a-ya.m3u #EXTINF:0 type="playlist", A-Z http://example.com/playlists/a-z.m3u #EXTINF:0 type="playlist", Документальный http://example.com/playlists/docs.m3u #EXTINF:0 type="playlist", Драма http://example.com/playlists/drama.m3u #EXTINF:0 type="playlist", Комедия http://example.com/playlists/comedy.m3u #EXTINF:0 type="playlist", Сериалы http://example.com/playlists/serials.m3u #EXTINF:0 type="playlist", Триллер http://example.com/playlists/trillers.m3u #EXTINF:0 type="playlist", Ужасы http://example.com/playlists/horror.m3u #EXTINF:0 type="playlist", Фантастика http://example.com/playlists/fantastic.m3u
В приложении же этот плейлист будет выглядеть так:
Воспользуемся теперь атрибутом tvg-logo и директивой #EXTSIZE и #EXTBG, чтобы сделать наш плейлист более наглядным:
#EXTM3U #EXTINF:0 type="playlist", 2015 год #EXTSIZE: Medium http://example.com/playlists/2015.m3u #EXTINF:0 type="playlist", 2010-2014 гг. #EXTSIZE: Medium http://example.com/playlists/2010-2014.m3u #EXTINF:0 type="playlist", А-Я #EXTSIZE: Medium http://example.com/playlists/a-ya.m3u #EXTINF:0 type="playlist", A-Z #EXTSIZE: Medium http://example.com/playlists/a-z.m3u #EXTINF:0 tvg-logo="http://example.com/logos/docs.png", Документальный http://example.com/playlists/docs.m3u #EXTINF:0 tvg-logo="http://example.com/logos/drama.png", Драма http://example.com/playlists/drama.m3u #EXTINF:0 tvg-logo="http://example.com/logos/comedy.png", Комедия http://example.com/playlists/comedy.m3u #EXTINF:0 tvg-logo="http://example.com/logos/serials.png", Сериалы http://example.com/playlists/serials.m3u #EXTINF:0 tvg-logo="http://example.com/logos/trillers.png", Триллер http://example.com/playlists/trillers.m3u #EXTINF:0 tvg-logo="http://example.com/logos/horror.png", Ужасы http://example.com/playlists/horror.m3u #EXTINF:0 tvg-logo="http://example.com/logos/fantastic.png", Фантастика http://example.com/playlists/fantastic.m3u
Модифицированный таким образом плейлист, будет выглядеть так:
Плейлисты нижних уровней могут содержать в себе как ссылки на конкретные потоки, так и на новые плейлисты-подразделы, создавая таким образом каталогизированную структуру. Рассмотрим возможный внешний вид конечного файла fantastic.m3u:
#EXTM3U size="medium" #EXTINF:0 tvg-logo="http://examples.com/logos/films/fantastic1.png" type="video" description="2014 год", Интерстеллар http://example.com/stream1 #EXTINF:0 tvg-logo="http://examples.com/logos/films/fantastic2.png" type="video" description="1973 год", Иван Васильевич меняет профессию http://example.com/stream2 #EXTINF:0 tvg-logo="http://examples.com/logos/films/fantastic3.png" type="video" description="1997 год", Гаттака http://example.com/stream3 #EXTINF:0 tvg-logo="http://examples.com/logos/films/fantastic4.png" type="video" description="1984 год", Гостья из будущего http://example.com/stream4 #EXTINF:0 tvg-logo="http://examples.com/logos/films/fantastic5.png" type="video" description="2014 год", Грань будущего http://example.com/stream5 #EXTINF:0 tvg-logo="http://examples.com/logos/films/fantastic6.png" description="2008 год", Загадочная история Бенджамина Баттона http://example.com/stream6 #EXTINF:0 tvg-logo="http://examples.com/logos/films/fantastic7.png" type="video" description="1999 год", Матрица http://example.com/stream7 #EXTINF:0 tvg-logo="http://examples.com/logos/films/fantastic8.png" type="video" description="2010 год", Начало http://example.com/stream8 #EXTINF:0 tvg-logo="http://examples.com/logos/films/fantastic9.png" type="video" description="2001 год", Планета Ка-Пэкс http://example.com/stream9 #EXTINF:0 tvg-logo="http://examples.com/logos/films/fantastic10.png" type="video" description="1997 год", Пятый элемент http://example.com/stream10 #EXTINF:0 tvg-logo="http://examples.com/logos/films/fantastic11.png" type="video" description="1988 год", Собачье сердце http://example.com/stream11 #EXTINF:0 tvg-logo="http://examples.com/logos/films/fantastic12.png" type="video" description="2008 год", Темный рыцарь http://example.com/stream12 #EXTINF:0 tvg-logo="http://examples.com/logos/films/fantastic13.png" type="video" description="2012 год", Темный рыцарь: возрождение легенды http://example.com/stream13 #EXTINF:0 tvg-logo="http://examples.com/logos/films/fantastic14.png" type="video" description="2004 год", Эффект бабочки http://example.com/stream14
Атрибут size у заголовочной директивы #EXTM3U определяет размер по умолчанию для всех тайлов данного плейлиста. Разумеется, вместо этого также можно варьировать размер, используя этот параметр, например, для выделения наиболее популярных фильмов. Атрибут type сообщает приложению, что элементы плейлиста относятся к VoD, т.е. эти потоки с экрана воспроизведения могут быть поставлены на паузу или перемотаны. Данный атрибут необязателен, но мы рекомендуем его использовать, чтобы исключить неоднозначности.
Будьте очень аккуратны, используя в больших плейлистах (несколько сотен элементов) атрибут tvg-logo. В качестве его значения ни в коем случае не должны выступать полноразмерные картинки, т.к. их одновременная загрузка может привести к нехватке памяти на телевизоре и аварийному прекращению работы приложения.
Описанный выше плейлист fantastic.m3u будет выглядеть следующим образом: