Форум XBMC и Kodi. Помощь, поддержка, обсуждение, плагины.
   

Вернуться   Форум XBMC и Kodi. Помощь, поддержка, обсуждение, плагины. > Помощь и поддержка > Помощь по плагинам

Ответ
 
Опции темы Опции просмотра
Старый 22.09.2011, 20:22   #1
ego
Junior Member
 
Регистрация: 03.02.2011
Сообщений: 14
По умолчанию hts tvheadend m3u import

Не совсем плагин это, но все-же пишу сюда.

Подскажите, для просмотра IPtv можно-ли как-нибудь импортировать .m3u в программу или нужно все каналы вручную набивать?
__________________
Z77X-ud5h
i7 3770k
GTX670

SONY BRAVIA KDL-40L4000 40" Full HD 1080
ego вне форума   Ответить с цитированием
   
Старый 22.09.2011, 22:54   #2
MATPOC
Senior Member
 
Регистрация: 27.12.2010
Адрес: Междуреченск, Кемеровская обл.
Сообщений: 301
По умолчанию

Цитата:
Сообщение от ego Посмотреть сообщение
Не совсем плагин это, но все-же пишу сюда.
Подскажите, для просмотра IPtv можно-ли как-нибудь импортировать .m3u в программу или нужно все каналы вручную набивать?
Да, я писал скрипт для конвертирования плейлиста в формате navi-x. Поправьте в переменной $MIFACE интерфейс, с которого делаются запросы к провайдеру IPTV. Скрипт очень простой - берёт плейлист в формате m3u со стандартного ввода (stdin) или указать имя файла в качестве агрумента. Файлы нумеруются с 1001 (iptv_1001 и т.д.) чтобы не пересекаться с возможными спутниковыми каналами. Файлы с определениями IPTV каналов создаются в домашней директории ~/.hts/tvheadend/iptvservices текущего пользователя, то есть нужно запускать от имени пользователя, под которым работает tvehadend:

Код:
sudo su -c './m3u2hts.pl iptv.m3u' - hts
Если директория ~/.hts/tvheadend/iptvservices не существует или недоступна для записи, скрипт завершает работу с выводом предупреждения.

Позиции плейлиста m3u должны задаваться парами строк вида:

#EXTINF:что угодно , Имя канала
proto://@233.32.240.236:1234

Где proto == udp или rtp, адрес обязательно из четырёх чисел, разделённых точками.

Сам код очень простой, но там есть все заготовки для вывода плейлиста в других форматах - в переменные $mproto, $mgroup, $mport из строки URL вычленяются соответственно протокол, мультикаст группа и порт. Так как для вывода в формат tvheadend некторые переменные не используются, то perl выдаёт предупреждения, которые можно игнорировать:

Цитата:
Name "main::mproto" used only once: possible typo at ./m3u2hts.pl line 27.
Name "main::murl" used only once: possible typo at ./m3u2hts.pl line 28.
PHP код:
#!/usr/bin/perl -w

my $DEBUG 0;
my $MIFACE "eth1";
my $MAXN 9999;

my $HTSIPTVDIR "~/.hts/tvheadend/iptvservices";
# my $HTSIPTVDIR = "~/.hts/tvheadend/iptvtransports"; // old version
my $fcount 1000;

# Check $HTSIPTVDIR exist?
### glob возвращает СПИСОК!!! нестабильно работает как скаляр
my @lghtsiptvdir glob($HTSIPTVDIR);
my $ghtsiptvdir $lghtsiptvdir[0];
die 
"Directory '$ghtsiptvdir' is not exist or not writable\n"
    
if !(-w $ghtsiptvdir);

sub out_tvheadend;

while (
defined($line = <>) ) {
    if (
$line =~ /#EXTINF:.*,\s*(.*)(\s*)/) {
    
$channel_name = $1;
    
$channel_name =~ s/\r+//;

        
if (defined($line = <>)
        and (
$line =~ '(udp|rtp)://@?(\d+\.\d+\.\d+\.\d+):(\d+)')) {
        
$mproto = $1$mgroup = $2$mport = $3;
        
$murl $line;
    }
    
out_tvheadend;
    }
}

sub out_tvheadend
{
    do 
    { 
# ищем несуществующий файл iptv_ с номером $fcount
        
$fname sprintf "%s/iptv_%04u"$ghtsiptvdir, ++$fcount;
    } 
until (!(-e $fname) and ($fcount $MAXN));

    print 
$fcount" "$channel_name" "$fname"\n" if $DEBUG;

    if (!(
open(FH">"$fname))) {
        
warn "Couldn't open $fname for writing: $!\n"
    
}
    else {
        print 
FH "{\n";
        print 
FH "\t\"pmt\": 0,\n";
        print 
FH "\t\"port\": $mport,\n";
        print 
FH "\t\"interface\": \"$MIFACE\",\n";
        print 
FH "\t\"group\": \"$mgroup\",\n";
        print 
FH "\t\"channelname\": \"$channel_name\",\n";
        print 
FH "\t\"mapped\": 1,\n";
        print 
FH "\t\"pcr\": 0,\n";
        print 
FH "\t\"disabled\": 0\n";
        print 
FH "}\n";
        
close FH or warn "Couldn't close $fname: $!\n";
    } 

Вложения
Тип файла: zip m3u2hts.zip (1.0 Кб, 206 просмотров)
__________________
Intel Core2 Duo, ASUS Nvidia GT220, GMC AVC M1, Linux // M8S+ Amlogic S805, Tronsmart Vega S96 Amlogic S912
MATPOC вне форума   Ответить с цитированием
Старый 22.09.2011, 23:10   #3
ego
Junior Member
 
Регистрация: 03.02.2011
Сообщений: 14
По умолчанию

Большое Вам спасибо!
__________________
Z77X-ud5h
i7 3770k
GTX670

SONY BRAVIA KDL-40L4000 40" Full HD 1080
ego вне форума   Ответить с цитированием
Старый 29.10.2011, 21:11   #4
bam
Senior Member
 
Регистрация: 24.10.2011
Сообщений: 132
По умолчанию

Спасибо за скрипт.
Было бы полезно добавить возможность обновления каналов tvheadend новыми каналами из плейлиста, а не импортировать каждый раз все каналы.
bam вне форума   Ответить с цитированием
Старый 30.10.2011, 12:23   #5
Stranger
Senior Member
 
Регистрация: 08.05.2010
Сообщений: 202
По умолчанию

чтобы темы не плодить, тоже здесь спрошу. никто не знает, можно xbmc+tvheadend заставить работать через udproxy? имеется прокси udp, который на выходе выдает поток по http протоколу (формат строки запроса http://192.168.1.1:81/udp/234.5.2.64:1234).
__________________
HTPC:
matherboard Gigabyte H81M-HD3, Intel Pentium G3220
ОЗУ 4Гб, HDD Samsung 500Гб +2Тб,
video MSI GeForce GT 1030, InWin BK623
Stranger вне форума   Ответить с цитированием
Старый 30.10.2011, 23:11   #6
MATPOC
Senior Member
 
Регистрация: 27.12.2010
Адрес: Междуреченск, Кемеровская обл.
Сообщений: 301
По умолчанию

Цитата:
Сообщение от bam Посмотреть сообщение
Спасибо за скрипт.
Было бы полезно добавить возможность обновления каналов tvheadend новыми каналами из плейлиста, а не импортировать каждый раз все каналы.
Такой скрипт за пять сек не рисуется. Я делаю проще - при помощи команды diff или fc получаю разницу между предыдущим и новым плейлистом и уже на этот маленький кусочек натравливаю скрипт.
__________________
Intel Core2 Duo, ASUS Nvidia GT220, GMC AVC M1, Linux // M8S+ Amlogic S805, Tronsmart Vega S96 Amlogic S912
MATPOC вне форума   Ответить с цитированием
Старый 30.10.2011, 23:27   #7
MATPOC
Senior Member
 
Регистрация: 27.12.2010
Адрес: Междуреченск, Кемеровская обл.
Сообщений: 301
По умолчанию

Цитата:
Сообщение от Stranger Посмотреть сообщение
чтобы темы не плодить, тоже здесь спрошу. никто не знает, можно xbmc+tvheadend заставить работать через udproxy? имеется прокси udp, который на выходе выдает поток по http протоколу (формат строки запроса http://192.168.1.1:81/udp/234.5.2.64:1234).
tvheadend понимает только udp и rtp. XBMC понимает почти всё, поэтому вы можете поднять udpxy и использовать локальные плейлисты, но без прелестей tvheadend. Для локальных плейлистов я рекомендую плагин Navi-X, обсуждение которого ведётся в ветке Плагин для IP-TV провайдеров на третьей странице.
__________________
Intel Core2 Duo, ASUS Nvidia GT220, GMC AVC M1, Linux // M8S+ Amlogic S805, Tronsmart Vega S96 Amlogic S912

Последний раз редактировалось MATPOC; 03.11.2011 в 23:14.
MATPOC вне форума   Ответить с цитированием
Старый 04.11.2011, 20:22   #8
bam
Senior Member
 
Регистрация: 24.10.2011
Сообщений: 132
По умолчанию

Цитата:
Сообщение от MATPOC Посмотреть сообщение
Такой скрипт за пять сек не рисуется. Я делаю проще - при помощи команды diff или fc получаю разницу между предыдущим и новым плейлистом и уже на этот маленький кусочек натравливаю скрипт.
Хм. Это тоже идея. Спасибо.
Думаю настроить запуск вашего скрипта при пробуждении системы из сна.
Возникает вопрос - если при этом будут проимпортированы новые каналы, заметит ли это tvheadend без перезапуска?
bam вне форума   Ответить с цитированием
Старый 05.11.2011, 13:35   #9
MATPOC
Senior Member
 
Регистрация: 27.12.2010
Адрес: Междуреченск, Кемеровская обл.
Сообщений: 301
По умолчанию

Цитата:
Сообщение от bam Посмотреть сообщение
Думаю настроить запуск вашего скрипта при пробуждении системы из сна.
Возникает вопрос - если при этом будут проимпортированы новые каналы, заметит ли это tvheadend без перезапуска?
Так часто обновляется плейлист? И tvheadebd автоматом не подхватит новые каналы, как минимум надо послать ему сигнал HUP.
__________________
Intel Core2 Duo, ASUS Nvidia GT220, GMC AVC M1, Linux // M8S+ Amlogic S805, Tronsmart Vega S96 Amlogic S912
MATPOC вне форума   Ответить с цитированием
Старый 05.11.2011, 15:04   #10
bam
Senior Member
 
Регистрация: 24.10.2011
Сообщений: 132
По умолчанию

плейлист обновляется конечно не так часто - но бывает, за неделю пару каналов добавят, а то и больше. Просто не нашёл другого более подходящего события, по которому можно было бы автоматом обновлять плейлист, а cron я как-то по возможности избегаю. Да и обновление это вроде бы не такая тяжелая операция, зато точно знаешь - после включения TV список каналов у тебя всегда актуальный.
А вот про сигнал HUP не знал - благодарю.
bam вне форума   Ответить с цитированием
Ответ

Метки
playlist, tvheadend
 


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 
Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Дружим XBMC и HTS Tvheadend seppius Подсказки, описания и FAQ по XBMC 1877 11.09.2019 21:26
Tvheadend EPG xmltv tv_grab_ru MATPOC Подсказки, описания и FAQ по XBMC 61 17.09.2014 22:58
XBMC + HTS Tvheadend не безплатно sergleo69 Off-Topic 0 14.08.2011 23:57
Помогите,Вход в Tvheadend Balagan Поддержка платформы Linux \ Live 20 09.07.2011 17:32
Клиенты для XBMC + tvheadend пкун Оборудование для XBMC 7 03.07.2011 17:04


Текущее время: 02:01. Часовой пояс GMT +3.


Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.