false, 'count' => 0, 'channels' => [], ])); } $curl = curl_init(); curl_setopt($curl, CURLOPT_URL, $pls_cfg['pls']); curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); curl_setopt($curl, CURLOPT_TIMEOUT, 3); curl_setopt($curl, CURLOPT_HEADER, 1); $response = curl_exec($curl); $headers_size = curl_getinfo($curl, CURLINFO_HEADER_SIZE); curl_close($curl); if ($response === false) { die(json_encode([ 'is_online' => false, 'count' => '-', 'channels' => [], ])); } $headers = array_unique(explode("\r\n", substr($response, 0, $headers_size))); $pls_content = substr($response, $headers_size); unset($response, $headers_size, $curl); $matches = []; // preg_match_all("/^#EXTINF:-?[\d](?:(\s?url-tvg=\".*\")?(\stvg-logo=\".*\")?(\stvg-name=\".*\")?(\stvg-id=\".*\")?(\sgroup-title=\".*\")?)\s?,\s?(.*)/m", $content, $matches); preg_match_all("/^#EXTINF:-?\d.*,\s*(.*)/m", $pls_content, $matches); $channels = $matches[1]; unset($pls_content, $matches); $is_online = !empty($headers) && strpos($headers[0], ' 200') !== false; unset($headers); $channels = array_map('trim', $channels); header("Content-Type: application/json; charset=utf-8"); die(json_encode([ 'is_online' => $is_online, 'count' => $is_online ? count($channels) : '-', 'channels' => $channels, ])); } // redirect to playlist if (array_intersect(array_keys($_GET), array_keys($ini))) { $id = array_keys($_GET)[0]; if (!empty($ini[$id]['redirect'])) { header('Location: ' . $ini[$ini[$id]['redirect']]['pls']); die; } elseif (!empty($ini[$id]['pls'])) { header('Location: ' . $ini[$id]['pls']); die; } } ?> IPTV Playlists

Самообновляемые плейлисты IPTV

GitHub | axenov.dev
Обновлено: МСК
Плейлистов в списке: 

$element) { if (empty($element['pls'])) { continue; } ?>
ID Информация о плейлисте Каналов Ссылка
?
загрузка...

Что здесь происходит?

На этой странице собраны ссылки на IPTV-плейлисты, которые находятся в открытом доступе. Они отбираются мной вручную и проверяются здесь автоматически. Поддержкой этих плейлистов занимаются администраторы ресурсов, указанные как источник. Вопросы работоспособности плейлистов адресуйте тем, кто несёт за них ответственность.

Эти плейлисты бесплатны?

Да, но в любой момент могут перестать таковыми быть.

Как подключить плейлист?

Добавить в твой IPTV-плеер ссылку из последней колонки.

Что означают статусы плейлистов?

  • ? Загрузка данных.
  • online Плейлист активен. Фактически означает, что удалённый файл успешно скачивается.
  • unknown Состояние неизвестно. Скорее всего, плейлист активен, но получить данные о нём не удалось.
  • timeout Не удалось вовремя проверить плейлист.
  • offline Плейлист неактивен.
  • error Ошибка при проверке плейлиста.

Почему нельзя доверять результатам проверки?

Я не гарантирую корректность информации, которую ты увидишь здесь. Рекомендую проверять желаемые плейлисты вручную, ибо нет никаких гарантий:

  • что это вообще плейлисты, а не чьи-то архивы с мокрыми кисками;
  • что плейлисты по разным ссылкам не дублируют друг друга и отличаются каналами хотя бы на четверть;
  • что плейлист работоспособен (каналы работают, корректно названы, имеют аудио, etc.);
  • что подгрузится корректное количество каналов и их список (хотя на это я ещё могу влиять и стараюсь как-то улучшить).

Как пополнить этот список?

Сделать pull-request в репозиторий.