Uvoz IPTV programov v TVHeadEnd na OpenELEC

TVHeadEnd programi na OpenELEC - jodlajodla.si

Oktobra leta 2012 sem se spopadal z nastavljanjem IPTV na OpenELEC za Raspberry Pi. Po nekaj poskusih mi je uspelo v celoti usposobiti tako povezavo v splet, kot tudi povezavo za ogled televizijskih programov preko enega samega ethernet kabla. Glede na to, da od samega začetka ogled programov preko TVHeadEnd ni deloval, sem našel alternativno pot, kasneje pa so razvijalci to težavo odpravili in ogled programov je odtlej možen preko omenjenega dodatka. Na spletu se je že pred tem pojavil program, ki je omogočal pretvorbo seznamov programov v ustrezne konfiguracijske datoteke za TVHeadEnd, potem pa še skripta, ki omogoča enako. S prvim programom sem bil načeloma zadovoljen, vendar mi ni omogočal spreminjanja vrstnega reda programov ter urejanja le-teh, skripta pa je delovala, vendar kopiranje kanalov v konfiguracijsko mapo ni uspelo. Ker sem želel imeti posodobljene informacije o kanalih ter jih postaviti po poljubnem vrstnem redu, sem se odločil izdelati osnoven program, ki bi omogočal ravno to. Glavna lastnost programa, zaradi katere je le-ta tudi nastal pa je pravilen izvoz kanalov, z vsemi podrobnostmi.

Vodič za uvoz IPTV programov v TVHeadEnd

Za uspešen uvoz programov v TVHeadEnd potrebujemo:

  • Računalnik ali virtualno mašino z nameščenim operacijskim sistemom Windows
  • Napravo ali taisti računalnik na katerem se nahaja nameščen XBMC oziroma OpenELEC s TVHeadEnd
  • Programa FileZilla in PuTTY

Posla se sedaj lahko lotimo, naj pa vas pred nadaljevanjem opozorim, da za kakršnekoli nastale težave ne odgovarjam, saj postopek izvajate na lastno odgovornost! Priporočam vam, da kakršnekoli pomembne datoteke shranite, meni pa se kakšna težavna situacija še ni zgodila, zato postopek smatram kot delujoč.

1. Najprej si na računalnik z operacijskim sistemom Windows prenesemo program IPTV Playlist Editor oziroma v prevodu urejevalnik IPTV programov. Pod prenosi so na voljo tri različice – izvorna koda, ClickOnce ter zgrajena izvršljiva datoteka programa. V kolikor se ne želite preveč ukvarjati z namestitvijo potrebnih dodatkov za delovanje programa, izberite ClickOnce različico. Program namestimo in ga poženemo.

Urejevalnik IPTV seznamov programov - jodlajodla.si

2. V orodni vrstici izberemo način odpiranja seznama IPTV programov, preko iskanja na disku ali odpiranja datoteke iz spleta. Odprete lahko datoteke tipa M3U in CSV, ki imata pravilno strukturo, katero program prepozna. Za M3U mora biti struktura sledeča:

#EXTINF:1,TV Program
#EXTTV:Značka1-Značka2-Značka3;jezik;XML-TV-Program
udp://@10.10.10.10:1000

Tudi datoteka CSV mora imeti sledečo strukturo:

1,TV Program,0,Značka1-Značka2-Značka3,jezik,10.10.10.10:1000,XML1-TV-Program,XML2-TV-Program,XML3-TV-Program,http//domena.tld/tv-program.png

Datoteko odpremo in počakamo, da se le-ta naloži v program ter prikaže seznam vpisanih televizijskih programov.

3. V programu lahko poljubno premikate kanale, kakor vam poželi srce ter jim po možnosti dodate ali spremenite informacije. Ko boste z delom končali lahko nadaljujemo, pred tem pa imate možnost shranitve seznama v M3U ali CSV datoteko. Sedaj v orodni vrstici izberemo ikono s puščico navzdol ter naslovom Export oziroma v prevodu Izvoz, nato pa se nam prikaže novo okno, ki nas sprašuje po vmesniku in izvozni poti. Vmesnik predstavlja omrežno napravo preko katere se naprava ali računalnik z XBMC oziroma OpenELEC povezuje na video pretok IPTV, izvozno pot pa nastavimo na poljubno mapo, kamor bi radi izvozili tri podmape z datotekami za televizijske programe. Po nastavitvi obeh stvari lahko kliknemo na gumb z napisom Export (v prevodu Izvoz). Za izvoz programov je potrebno počakati glede na to, koliko programov izvažate. Po uspešnem izvozu lahko program zaprete.

4. Prepričamo se, da je naprava z naloženim XBMC ali OpenELEC prižgana in deluje. Sedaj moramo najti njen IP naslov, saj ga bomo v naslednjih korakih potrebovali. Odpremo program PuTTY in v vrstico z naslovom vnesemo najden IP naslov ter v vse skupaj potrdimo. Pričaka nas okno za vpis, privzeti prijavna podatka za OpenELEC pa sta uporabniško ime root in geslo openelec. Najprej se postavimo v mapo /usr/bin/, nato pa poženemo skript tvheadend.stop:

$ cd /usr/bin/
$ tvheadend.stop

Nadaljujemo z naslednjim korakom in ne vpisujemo kakršnihkoli drugih ukazov, ki bi lahko vplivali na delovanje TVHeadEnd ali operacijski sistem OpenELEC, program PuTTY pa pustimo prižgan.

Putty povezan na OpenELEC, zaustavlja TVHeadEnd - jodlajodla.si

5. Odpremo program FileZilla in v vrhnja okenca vpišemo IP naprave, ki poganja XBMC ali OpenELEC, uporabniško ime in geslo iz prejšnjega koraka ter port oziroma vrata s številko 22. Po uspešni povezavi se v levem predelu programa postavimo na mesto kamor smo prej izvozili datoteke za TVHeadEnd, na desni strani pa odpotujemo v nekaj map globje. Pred premikanjem map se morate nahajati v /storage, nato pa nadaljujemo v podmape .xbmc > userdata > addon_data > service.multimedia.tvheadend. Znotraj zadnje mape boste našli še tri podmape channels, channeltags in iptvservices. Če želite shraniti staro konfiguracijo programov jih prenesite v drugo mapo, nato pa se postopoma prestavite v vsako mapo (channels, channeltags in iptvservices) in izbrišite vse datoteke, ki se v njih nahajajo. Znova se postavite v vrhnjo mapo service.multimedia.tvheadend in na levi strani v mapo kamor ste izvozili programe. Na levi strani izberite vse tri mape (channels, channeltags in iptvservices) ter jih naložite (desni klik in Naloži) na desno stran v mapo service.multimedia.tvheadend.

FileZilla povezana na OpenELEC v TVHeadEnd mapo - jodlajodla.si

6. V kolikor ste pravilno izvedli prejšnji postopek, lahko nadaljujete sicer znova poskusite naložiti datoteke. Ker moramo te datoteke spraviti v delujoče stanje, bomo računalnik oziroma napravo na kateri imate nameščen XBMC ali OpenELEC ponovno zagnali. To lahko storite tako, da se v meniju XBMC pomaknete na gumb za izključitev ter po pritisku izberete možnost Ponovni zagon, če pa v ozadju vašega sistema ne teče noben drug servis, potem to lahko storite tako, kot je prikazano na sliki v četrtem koraku na desni strani, to je s sledečim ukazom:

$ reboot

7. Po ponovnem zagonu počakajte da se sistem dokončno naloži, nato pa izberite predel TV v živo. Postopek nalaganja programov bo nekoliko trajal, predvsem v primeru, če imate ob programih vnesene tudi povezave do ikon programov. Če so vaši televizijski programi razporejeni po značkah in so poleg programov na voljo tudi radijski programi, potem imate le-te na voljo v zavihku Radijski programi. V kolikor vidite vse vaše izvožene programe v TVHeadEnd, potem se uspešno prišli do konca vodiča in lahko zaprete prej zahtevane programe. Želim vam vesel ogled televizijskih programov preko TVHeadEnd!

Radijski programi TVHeadEnd na OpenELEC - jodlajodla.si

16 Responses to Uvoz IPTV programov v TVHeadEnd na OpenELEC

  1. Pingback: IPTV in EPG na OpenELEC | jodlajodla´s blog

  2. Ko naložim playlisto preko filezille in dostopam na raspberry pi-ju na moj XBMC, mi ne pokaže ikon programov, prav tako jih ne morem naložiti v Playlist Editorju. Lahko daš kak nasvet?

  3. https://drive.google.com/folderview?id=0B3Yid3D58IaTUTlPNV9zU1UzY2c&usp=sharing

    Imam pa še par vprašanj glede EPG nastavitev na drugem vodiču, ampak ker že tukaj pišem te bom kar sproti vprašal.

    Prvič. Pri generate_config.py kjer moraš vpisovati url naslov in ID. Kateri URL moraš vpisati? Url mojega serverja kjer je Playlist Editor? In kateri izraz za pridobitev vseh kanalov… mi lahko malo razložiš kaj je to.
    Ko pa hočem zagnati bash parse.sh vkaz se mi izpiše spodnji Error:

    Error while reading – WebGrab++.config.xml – check existance and/or format
    Read logfile for details

    Oprosti ampak sem še rookie v tem 🙂 hvala za čas in odgovore

  4. Na Driveu imaš že izvoženo playlisto v TVHeadEnd format. Potreboval bi .m3u ali .csv playlisto, da vidim kakšna je struktura in kje se nahajajo povezave do ikon programov.

    URL v generate_config.py mora biti tisti od kjer jemlješ podatke za EPG z WebGrab++ (glavna stran, kjer so prikazani vsi kanali in nadaljnje povezave za ogled sporeda). V glavnem je to samo primer skripte, ki jo prirediš glede na stran iz katere pobiraš podatke, da se ti nalaga spored za vse trenutne možne kanale. V primeru, da je skripta za WebGrab++ za pobiranje sporeda iz določene strani posodobljena, načeloma te generate_config.py ne potrebuješ.

    Glede branja WebGrab++.config.xml pa je verjetno napaka v zapisu kanalov, v kolikor ne jemlješ podatkov iz prej omenjene strani.

  5. Sem posodobil in naložil m3u datoteko na zgornjem linku. Lahko pogledaš?

    Kako pa ugotovim ali je skripta posodobljena ali ne. Mi lahko poveš za kakšno stran, kjer se nahajajo EPG podatki, moj googl ni ravno najboljši? Ali že obstajajo kakšne custom generate_config datoteke na spletu?

  6. Tako v .csv, kot .m3u ni povezav do ikon programov, zato ti jih IPTV Playlist Editor ne more izvoziti v datoteke za TVHeadEnd.

    Za WebGrab++ najdeš skripte na tej povezavi. Za samodejno ustvarjanje konfiguracije pa je nekaj že vgrajeno v sam WG++.

  7. Je s programom na Codeplexu kaj narobe? Ko prenesem exe file, dobim, če je verjeti “About” meniju, verzijo 1.0 namesto 1.1 (ki ne zna shraniti liste v M3U, ko jo urediš … je šlo zdajle kar nekaj prekladanja kanalov v maloro :\), medtem ko OneClick različica javi napako ob namestitvi.

  8. Ja, res je napaka pod “About” in namesto 1.1 piše 1.0. Prav tako je res, da ClickOnce ne deluje, za kar sam nisem kriv – ob izidu 1.1 je vse delovalo kot mora, verjetno so na CodePlexu kaj spreminjali in se je pojavila ta težava.

    Bom dodelal program in ga objavil pod novo različico.

  9. Nova različica je na voljo. Prav tako sem pripravil ClickOnce različico, ki sedaj deluje.

    Pri prejšnjih različicah programa je s ClickOnce težava zaradi tega, ker je bila pri izgradnji aplikacije vnešena povezava do izdaje s http, ki preko tega protokola ni več dostopna. Izdaje so odslej na voljo le preko https protokola, kar je bila tudi rešitev za delovanje ClickOnce aplikacije zadnje različice aplikacije (ti podatki so za uporabnike nepomembni, bodo pa prav prišli razvijalcem, ki svoje aplikacije prav tako objavljajo na CodePlex ter imajo ClickOnce izdaje).

  10. Hvala za vse verzije programe – vključno z zadnjo.

    Imam manjšo pripombo/željo/predlog – kakorkoli hočeš. Lahko pa, da samo nekaj ne delam prav… ne bi bilo prvič…

    Načelno je vse delalo po opisu, le nikakor mi ni uspelo uvoziti radiskih IP programov v Tvheadend 3.4 na način, da bi se dejansko pokazali med radijskimi programi – do onemoglosti so vztrajali me IPTV programi.

    Sem se zakopal v internet in končno našel rešitev – v iptvservices datotekah je potrebno ‘radijskim’ kanalom popraviti vrednost parametra “stype”: na vrednost 2 (1=IPTV channel, 2=Radio channel).

    Mogoče bi še komu koristilo, če bi v IPTV Playlist Editorju obstajala kolona, kjer bi lahko določili (izbrali) ali gre pri kanalu za radijski ali IPTV kanal. In pa seveda to upoštevti pri exportu podatkov.

    Ne vem kako se obnaša TVHeadEnd 3.9 – strukturo datotek in referenc so z GUID-i zakomplicirali do onemoglosti – vidim pa, da obstaja datoteke, ki vsebujejo element “dvb_servicetype”: 1 . Ali je to res ekvivalentno “stype” elementu v TVHeadEnd 3.4 pa ne morem potrditi (zdi se mi že tako).

    Skratka, če imaš še kaj časa in volje, bi tak popravek znal koristiti še komu.

    Ne glede na vse pa še enkrat en velik hvala za dosedanje delo.

  11. Oprosti za prejšnji komentar – takoj ko sem ga posla sem našel v kodi vrstico:

    “stype\”: ” + (_channels[i].Tag.Contains(“Radio”) || _channels[i].Tag.Contains(“radio”) ? 2 : 1)

    Sedaj mi je vse jasno in zadeva deluje. Sem mi je zdelo, da sem nekaj spregledal… 🙁

    Mogoče bi bilo samo treba kje poudariti…

    Hvala za ves tvoj trud pa ostaja!

  12. Kot si že ugotovil program “samodejno” zazna, če gre za radijski ali navaden TV program na podlagi oznak/tagov. Se strinjam, da to ni najboljša rešitev iz vidika uporabnosti programa, saj je ta podrobnost skrita v samo kodo in nihče ne ve tega, dokler se ne odpravi pregledovati kode.

    Program sem spisal pred letom dni za specifično playlisto, ki je imela podatke o tipu programa že vnesene in se posledično nisem ubadal s tem. Čez čas sem dobil tudi nekaj prošenj za izboljšanje programa, kar mi je uspelo urediti šele sedaj, je pa res, da spet nisem posvečal pozornosti podrobnostim vsake playliste. Razlik med playlistami označenimi (znotraj programa) z “Default”, “Tano Player” in “IPTV Simple Client” je veliko in bi uporabniški vmesnik moral prilagoditi vsaki vrsti seznama predvajanja.

    Kaj bom naredil v povezavi s tem bom še razmislil in ko bo čas zadevo tudi implementiral v program. Rešitev do takrat pa je, da v vsak program, ki bi ga radi označili kot radijski program, med oznake/tage zapišete “Radio” ali “radio” (brez narekovajev, razlika med tem dvema je zgolj v tem, da ima prvi veliko začetnico). Oznake morajo biti ločene z vejico.

  13. Pozdravljeni zasledil sem stran na kateri ste se razpisali in objavili gledanje tv kanalov na xbmc-kodi ker pa sem nov v tej zadevi in se ne spoznam na to prav dobro sem se obrnil tukaj na tej spletni strani na vas ki ste to vse skupaj objavili in sedaj imam vprašanje ter me zanima kako bi lahko gledal slovenske tv kanale preko xbmc-kodi simple iptv client
    in to mislim pač ker nisem uporabnik od T-2 in pa Siol pa bi vse eno rad gledal Slovenske tv kanale čebi se prosim lepo dalo dobiti kakšno pomoč in pa nasvet glede celotne zadeve.

Dodaj odgovor

Vaš e-naslov ne bo objavljen. * označuje zahtevana polja