• Vítejte na XBMC-Kodi.cz
  • Česko-slovenská komunita fanoušků XBMC/Kodi
Vítejte návštevníku! Přihlášení Registrace


Hodnocení tématu:
  • 0 Hlas(ů) - 0 Průměr
  • 1
  • 2
  • 3
  • 4
  • 5
Playlisty radio stanic
#1
Existuje plno addons a řešení pro poslech radiových stanic a je škoda, že se neujala nějaká společná správa zdrojových dat pro to, aby to nemuseli všichni řešit ve vlastní režii. Nepíšu to proto, že bych se něčeho takového chtěl ujmout, ale chci se podělit o jednu primitivní vychytávku, pomocí které jsem poslech rádií u pár známých vyřešil.

Požadavek byl poslech rádií v Kodi přes nativní funkci Radio, ať už prostřednictvím IPTV Simple Client nebo Tvheadend a na něj navazujícího Kodi addon PVR Tvheadend HTSP Client. Já osobně používám druhou metodu, kde kombinuji zdroje z DVB-T a OTT/IPTV. OTT/IPTV už používám léta a za tu dobu se mi nahromadila slušná skupina radiových stanic, které mě zajímají, ať už domácích nebo zahraničních. A tak, když někdo chtěl něco podobného, tak jsme mu nabídl své portfolio. V řadě addon, která jsou k dispozici, je ale stanic daleko více a tak jsem občas pro zdrojová data sáhl tam. Vždy to byla ruční práce, což tak strašné nebylo. Nejčastěji lovím v addon Poslouchej radio a když už jsem editace měl dost, rozhodl jsem se to nějak zjednodušit. Nešlo mi o vytvoření nějakého sofistikovaného nástroje, prostě jen chtěl známý všechny české stanice, které addon nabízí a než bych to editoval, tak jsem tomu věnoval asi 2 minuty práce, a data tohoto addon použil v jednoduchém scriptu.

Data stanic jsou v addon Poslouchej radio uložena, podle svého zařazení do položek hlavního menu, v jednotlivých python modulech, které najdeme v adresáři plugin.audio.poslouchej.radia/resources/lib. Pro české stanice je jméno souboru modulu celkem očekávané radioCzechRepublic.py. Otevřeme-li soubor, data stanic nalezneme celkem rychle:
Kód:
list = [
    ['Alternative Times Radio', 'http://ice3.abradio.cz/alternative128.mp3', 'https://i62.servimg.com/u/f62/19/40/01/67/radioa10.jpg'],
    ['Be iN Radio Network', 'http://icecast1.play.cz/beinradionetwork1-128.mp3', 'https://i46.servimg.com/u/f46/19/40/01/67/be-in-10.png'],
.
.
.
    ['Známka Punku', 'http://ice.abradio.cz/znamkapunku128.mp3', 'https://i46.servimg.com/u/f46/19/40/01/67/znamen10.png'],
    ]
Vezmeme-li si tato data a vložíme je do jednoduchého scriptu
Kód:
# -*- coding: utf-8 -*-

list = [
    ['Alternative Times Radio', 'http://ice3.abradio.cz/alternative128.mp3', 'https://i62.servimg.com/u/f62/19/40/01/67/radioa10.jpg'],
    ['Be iN Radio Network', 'http://icecast1.play.cz/beinradionetwork1-128.mp3', 'https://i46.servimg.com/u/f46/19/40/01/67/be-in-10.png'],
.
.
.
    ['Známka Punku', 'http://ice.abradio.cz/znamkapunku128.mp3', 'https://i46.servimg.com/u/f46/19/40/01/67/znamen10.png'],
    ]

LINE0 = '#EXTM3U\n'
LINE1 = '#EXTINF:-1 tvg-logo="%s", %s\n'
LINE2 = 'pipe://ffmpeg -loglevel fatal -i %s -acodec copy -metadata service_provider=ipradio -metadata service_name=radio -f mpegts -mpegts_service_type digital_radio pipe:1\n'

i = 0
file = open('playlist.m3u8', 'w')
file.write(LINE0)
for key in list:
    file.write(LINE1 % (key[2], key[0]))
    file.write(LINE2 % (key[1]))
    i += 1
file.close()

LINE0 = '#EXTM3U\n'
LINE1 = '#EXTINF:-1 tvg-logo="%s" radio="true", %s\n'
LINE2 = '%s\n'

i = 0
file = open('simple_playlist.m3u8', 'w')
file.write(LINE0)
for key in list:
    file.write(LINE1 % (key[2], key[0]))
    file.write(LINE2 % (key[1]))
    i += 1
file.close()
a script spustíme, dostaneme dva playlisty, playlist.m3u8 pro Tvheadend a simple_playlist.m3u8 pro IPTV simple Client.

Je to postup velmi primitivní a dal by se jistě vytvořit nástroj daleko mocnější. Ale to už nechám pro někoho dalšího. Nabízí se totiž řešení, použít data stanic ze všech modulů tohoto addon, sjednotit je do nějaké datové struktury, například uložené někde ve sdíleném prostředí a ostatní (addons, scripty pro Tvheadend a IPTV Simple Client) upravit tak, aby si ta zdrojová data mohly brát podle potřeby. Určitě by šlo zdrojová data stanic rozšířit o definici skupin a mít tak možnost zajistit členění stanic do skupin podobně, jako to má výchozí addon Poslouchej radio.

To sdílení je možné vytvořit jen na úrovni Kodi, místo modulů v rámci adodn Poslouchej radio vytvořil například addon jako modul, a ten pak v ostatních addon nebo scriptech používat jako zdrojová data stanic. Těch možností je samozřejmě více a rozhodně by byly lepší a efektivnější než to řešit v každém addon či scriptu znova a znova...

Pokud má někdo zájem, zde je zip obsahující script s daty pro české stanice vyjmuté z uvedeného modulu addon Poslouchej radio, a také tímto scriptem vygenerované playlisty. Playlisty se dají použít okamžitě, je možné, že ne všechny stanice budou dostupné, ale to už je věci jiná.

.zip   playlist.zip (Velikost: 12,54 KB / Stažení: 68)
 
Citovat
#2
Tak ještě přidám jednu inspiraci. Doplnil jsem si data stanic o další položku a tou jsou skupiny. Použít ta data i pro IPTV Simpe Client je možné, pak se ale oddělovač skupin, kterým je pro Tvheadend "|", musí nahradit znakem ";". Alespoň tak to píše @Client ve jeho tutorialu Playlist - struktura, obsah a parametry (já to nezkoušel, ale nemám důvod mu  nevěřit). Ostatně každému, kdo se zabývá playlisty pro IPTV Simple Client prábě  tohle doporučuji k přečtení. Škoda, že nepokračoval a nedoplnil stejně obsažný popis pro playlist Tvheadend. Pro tento případ tak alespoň vezměte za vděk jako slabou náhražku popisem uvedený zde. Není ani zdaleka tak dokonalý jako ten od @Client, ale základní informace v něm najdete.

Ale zpět k tématu. Zatím jsem na zkoušku doplnil jen stanice Českého rozhlasu. Přidal jsem na začátek záznamu pro každou stanici položku do které zapisuji všechny skupiny, do kterých chci danou stanici zařadit. Samozřejmě, že se poté musí upravit vlastní část generování položek playlistu. Ale to už je celkem triviální. Současně s tím bude také třeba doplnit i změnu oddělovače skupin v části generování plalyistu pro IPTV Smple Client, tzn. nahradit znak "|" znakem ";".
Kód:
    ['Česko|Český rozhlas|Zpravodajství', 'CRo Radiožurnál', 'http://icecast8.play.cz/cro1-128.mp3', 'https://i62.servimg.com/u/f62/19/40/01/67/radior12.jpg'],
    ['Česko|Český rozhlas|Zpravodajství', 'CRo Praha', 'http://icecast6.play.cz/cro2-128.mp3', 'https://i62.servimg.com/u/f62/19/40/01/67/radioc22.jpg'],
    ['Česko|Český rozhlas', 'CRo Vltava', 'http://icecast5.play.cz:8000/cro3-128.mp3', 'https://i62.servimg.com/u/f62/19/40/01/67/radioc25.jpg'],
    ['Česko|Český rozhlas|Zpravodajství', 'CRo Brno', 'http://icecast2.play.cz:8000/crobrno128.mp3', 'https://i62.servimg.com/u/f62/19/40/01/67/radioc28.jpg'],
    ['Česko|Český rozhlas', 'CRo Regina DAB Praha', 'http://icecast2.play.cz:8000/croregina128.mp3', 'https://i62.servimg.com/u/f62/19/40/01/67/radioc32.jpg'],
    ['Česko|Český rozhlas', 'CRo D-dur', 'http://icecast5.play.cz:8000/croddur-128.mp3', 'https://i62.servimg.com/u/f62/19/40/01/67/radiod18.jpg'],
    ['Česko|Český rozhlas|Regionální|Zpravodajství', 'CRo Hradec Králové', 'http://icecast2.play.cz:8000/crohk128.mp3', 'https://i62.servimg.com/u/f62/19/40/01/67/radioc30.jpg'],
    ['Česko|Český rozhlas|Jazz', 'CRo Jazz', 'http://icecast2.play.cz:8000/crojazz128aac', 'https://i62.servimg.com/u/f62/19/40/01/67/radioj14.jpg'],
    ['Česko|Český rozhlas|Regionální|Zpravodajství', 'CRo Liberec', 'http://icecast2.play.cz:8000/croliberec128.mp3', 'https://i62.servimg.com/u/f62/19/40/01/67/radiol10.jpg'],
    ['Česko|Český rozhlas|Regionální|Zpravodajství', 'CRo Olomouc', 'http://icecast2.play.cz:8000/crool128.mp3', 'https://i62.servimg.com/u/f62/19/40/01/67/radioc26.jpg'],
    ['Česko|Český rozhlasRegionální||Zpravodajství', 'CRo Ostrava', 'http://icecast2.play.cz:8000/croov128.mp3', 'https://i62.servimg.com/u/f62/19/40/01/67/radioc27.jpg'],
    ['Česko|Český rozhlas|Regionální|Zpravodajství', 'CRo Pardubice', 'http://icecast2.play.cz:8000/cropardubice128.mp3', 'https://i62.servimg.com/u/f62/19/40/01/67/radiop19.jpg'],
    ['Česko|Český rozhlas', 'CRo Plus', 'http://icecast1.play.cz/croplus128.mp3', 'https://i62.servimg.com/u/f62/19/40/01/67/radiop18.jpg'],
    ['Česko|Český rozhlas|Regionální|Zpravodajství', 'CRo Plzeň studio Karlovy Vary', 'http://icecast2.play.cz:8000/crokv128.mp3', 'https://i46.servimg.com/u/f46/19/40/01/67/croplz13.png'],
    ['Česko|Český rozhlas|Regionální|Zpravodajství', 'CRo Plzeň', 'http://icecast2.play.cz:8000/croplzen128.mp3', 'https://i46.servimg.com/u/f46/19/40/01/67/croplz12.png'],
    ['Česko|Český rozhlas', 'CRo Regina DAB Praha', 'http://icecast2.play.cz:8000/croregina128.mp3', 'https://i62.servimg.com/u/f62/19/40/01/67/radioc32.jpg'],
    ['Česko|Český rozhlas|Regionální|Zpravodajství', 'CRo Region - Vysočina', 'http://icecast2.play.cz:8000/crovysocina128.mp3', 'https://i46.servimg.com/u/f46/19/40/01/67/croreg10.png'],
    ['Česko|Český rozhlas|Regionální|Zpravodajství', 'CRo Region Stredočeský kraj', 'http://icecast2.play.cz:8000/croregion128.mp3', 'https://i62.servimg.com/u/f62/19/40/01/67/radiov12.jpg'],
    ['Česko|Český rozhlas|Regionální|Zpravodajství', 'CRo Sever', 'http://icecast2.play.cz:8000/crosever128.mp3', 'https://i62.servimg.com/u/f62/19/40/01/67/radios18.jpg'],
    ['Česko|Český rozhlas', 'CRo Wave', 'http://icecast5.play.cz:8000/crowave-128.mp3', 'https://i62.servimg.com/u/f62/19/40/01/67/radiow10.jpg'],
    ['Česko|Český rozhlas|Regionální|Zpravodajství', 'CRo České Budejovice', 'http://icecast2.play.cz:8000/crocb128.mp3', 'https://i62.servimg.com/u/f62/19/40/01/67/radioc31.jpg'],
    ['Česko|Český rozhlas', 'CRo Rádio Junior Písničky', 'http://icecast7.play.cz/crojuniormini128.mp3', 'https://i62.servimg.com/u/f62/19/40/01/67/radioc29.jpg'],
    ['Česko|Český rozhlas', 'CRo Rádio Junior', 'http://icecast5.play.cz:8000/crojuniormaxi128.mp3', 'https://i62.servimg.com/u/f62/19/40/01/67/radioj15.jpg'],
    ['Česko|Český rozhlas', 'CRo Rádio Retro', 'http://icecast7.play.cz/croretro128.mp3', 'https://i62.servimg.com/u/f62/19/40/01/67/radior13.jpg'],
V Kodi to pak může vypadat nějak takto:
       
Pozn. Použil jsem screenshoty z Kodi 19, na kterém práve ladím a testuji skiny.

Plánuji rozšířit skupiny stát, případně provozovatel rádií (tady vidím jako smysluplnou pouze skupinu Český a Slovenský rozhlas) a žánr/styl i na další stanice. Když k tomuhle připočtu skvělý addon ČRo od @waladir a případně standardní Podchater z Kodi repozitáře, dostává funkce Radio v Kodi pro mne (snad) konečně finální podobu.

A já se teď snad už budu moci vrhnout na můj zatím tajný projekt KKR (Kodi Kitchen Radio) - šuplíkové RPI + mini LCD dotykový + kvalitní audio + aktivní repro + upravený Estouche pro obsluhu pouze dvou funkcí - Weather a Radio.
 
Citovat
#3
Po doplnění skupin do popisu stanic (viz předchozí příspěvek) může pak výkonná část scriptu vypdat nějak takto:
Kód:
LINE0 = '#EXTM3U\n'
LINE1 = '#EXTINF:-1 group-title="%s" tvg-logo="%s", %s\n'
LINE2 = 'pipe://ffmpeg -loglevel fatal -i %s -acodec copy -metadata service_provider=ipradio -metadata service_name=%s -f mpegts -mpegts_service_type digital_radio pipe:1\n'

i = 0
file = open('playlist.m3u8', 'w')
file.write(LINE0)
for key in list:
    file.write(LINE1 % (key[0], key[3], key[1]))
    file.write(LINE2 % (key[2], key[2]))
    i += 1
file.close()

LINE0 = '#EXTM3U\n'
LINE1 = '#EXTINF:-1 group-title="%s" tvg-logo="%s" radio="true", %s\n'
LINE2 = '%s\n'

i = 0
file = open('simple_playlist.m3u8', 'w')
file.write(LINE0)
for key in list:
    file.write(LINE1 % (key[0].replace('|',';'), key[3], key[1]))
    file.write(LINE2 % (key[2]))
    i += 1
file.close()
Je  to funkční jak pro Tvheadend tak i IPTV Simple Client (pro key[0], kde je očekávám seznam skupin, je použité replace oddělovače "|" za ";").
 
Citovat
#4
borci, chcem sa opytat co s tym scriptom urobit aby z neho vyliezol playlist? Big Grin
skusam vseliake online convertery aj cmd aj powershell z navodov a stale mi to hadze chybu.....do tohto sa nevyznam vobec ako mozte vidiet Big Grin
EDIT: už som nato prisiel stacilo stiahnut python a zobrazila sa tato možnosť...


Přiložené soubory Miniatury
   
 
Citovat
#5
Nevie niekto o nejakých dobrých stránkach kde nájdem m3u playlisty internetových rádií podobne niečo ako je iptv org na televíziu, rádia chcem púšťať cez PVR IPTV SIMPLE CIENT tam by som si urobil svoje skupiny, nechcem to počúvať cez desiatky doplnkov.
 
Citovat
#6
Ak by si nič také nenašiel (neviem o ničom aktualizovanom), tak ti ponúkam plán B:
V prehliadači si otvoríš nejaké online rádio (sú aj stránky s tisíckami rádií), dáš si zobraziť zdrojový kód a tam nájdeš link s audio koncovkou (väčšinou .mp3) ktorý skopíruješ, vyskúšaš prehrať vo VLC a keď funguje, nakopíruješ do svojho playlistu. Najlepšie je použiť notepad++ alebo pspad (kvôli kódovaniu)
Na začiatok si môžeš vygenerovať playlist scriptom od Jira a potom už len pridávať vyššie uvedeným spôsobom.

X92.. X96 max.. T95Z plus.. M8s plus..
 
Citovat
#7
@chobotmilan A to, co je v tomto tématu, ti nevyhovuje?
 
Citovat
#8
Bude muset vynaložit ruční práci, třeba s https://www.internet-radio.com/
Kodi 19/18.x -LibreELEC 9.x -BerryBoot -RPi4/3/0/w -LinuxMint/W10/Android 11/10. Router 1Gbit, 2.4+5GHz
 
Citovat
#9
Mozno ti pomoze tu si daco vybrat.


Přiložené soubory
.txt   radia.txt (Velikost: 152,34 KB / Stažení: 35)
 
Citovat
#10
Ten druhy playlist čo tam je popísané ffmpeg mi nefunguje musím niečo do inštalovať do kodi? No ten druhy kde je napísané Simple mi funguje, no dal som tam na skúšku jedno rádio a podarilo sa mi to rozbehať. Prosím vás vložím sem to rádio a môžete mi k nemu dopísať riadok chcem tam mať žáner napríklad dance 90s a potom aby mi to ukázalo štát Nemecko podľa tohto už si budem vedieť pridávať ďalšie rádia. Ten návod. Čo je hore na začiatku, som moc nepochopil neviem ani čo je skript to je nějaký plugin generátor? Ak áno kde to stiahnem? #EXTINF:-1 tvg-logo="https://media.streamabc.com/sunshine-live/90er/600x600__sunshine_liveDie_90er_colored.png" radio="true", sunshine live - 90er
https://stream.sunshine-live.de/90er/mp3...e/play.mp3
 
Citovat
#11
Tu máš môj starší radio playlist pre simple client, ako ukážku: https://www.xbmc-kodi.cz/prispevek-autop...6#pid93016
Malo by tam byť všetko, čo potrebuješ

X92.. X96 max.. T95Z plus.. M8s plus..
 
Citovat
#12
Tak už viem čo vložiť kď chcem štát: group-title="SK rádio" a keď tam chcem mať aj žáner napríklad techno alebo dance, čo tam mám vložiť?
 
Citovat
#13
Bodkočiarku
https://www.xbmc-kodi.cz/prispevek-playl...-parametry

X92.. X96 max.. T95Z plus.. M8s plus..
 
Citovat
#14
Autoři addon Poslouchej radio vydali novou verzi, tentokrát pro Matrix, s jednou velkou změnou. Data pro jednotlivé stanice mají uloženy v json formátu na jejich serveru přístupném z internetu. Je to velký krok dopředu, i když vlastní realizace zůstává u logiky původního addon. Nebudu to komentovat, určitě by to šlo udělat lépe, ale "darovanému koni na zuby nekoukej". 1

Stačil poměrně jednoduchý script pro načtění Českých a Slovenských stanic, jiné mě v dané chvíli nezajímaly. Vygenerovat s jeho pomocí playlist pro PVR IPTV Simple Client bylo už jen dílem okamžiku. Nevím, jestli má smysl dělat nějaké sofistikovanější řešení. Díky tomu, jak jsou data na serveru organizována by to chtělo se trochu více zamyslet, ale zásadní problém by to být neměl i pro začínajícího a méně zkušeného programátora.

Tak zatím pro ty, kteří to využijí, zde je playlist k použití v PVR IPTV Simple Client. Stanice jsou v něm zařazeny do dvou skupin, České a Slovenské.

.zip   RadiaCS.zip (Velikost: 6,19 KB / Stažení: 40)

Takto to vypadá v mém testovacím Matrix-u.
       
 
Citovat
  


Přejít na fórum:


Prochází: 1 host(ů)