• 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:
  • 3 Hlas(ů) - 4.67 Průměr
  • 1
  • 2
  • 3
  • 4
  • 5
Playlist O2TV.CZ script - vývoj a podpora zde ukončena
smazáno
 
Problémy s přihlašováním - objasnění

Před časem se tu řešily problémy s přihlašováním. Bylo několik názorů co za tím stálo a také diskuze o tom, co stálo za tím, že někomu po krátkém výpadku začalo přihlašování fungovat, většina musela počkat na novou verzi addon/scriptu. Dneska jsem měl možnost mluvit s insiderem z O2 a dostal následující vysvětlení. Není asi úplně 100% (dotyčný pracuje v jiné části O2 a informace má také pouze zprostředkované) a nelze se tedy na ně spolehnout, ale jistá logika v nich je a +/- odpovídají mým vlastním zkušenostem i informacím tady z fóra. Berte to tak, že "prodávám, jak jsem nakoupil".

Došlo skutečně ke změnám v procesu přihlašování, které se projevily následně různě u uživatelů:
  1. s STB - tam většinou k výpadku služby (možnosti přihlášení) nedošlo
  2. uživatelů i jiných služeb (nejen tedy O2TV) - u nich došlo k trvalému výpadku a museli použít novou verzi přihlašování
  3. uživatelů pouze s O2TV, kteří neměli "Můj účet O2" - došlo u nich k výpadku, ale pouze dočasnému, po několika hodinách se funkce přihlašování obnovila v původní rozsahu
 
Děje se mi že při použití ffmpeg( přes TVH) u SD programu se mi vybere nejhorší nebo horší kvalita streamu. Máte s tím někdo zkušenost?Vyzkoušel jsem už asi 3 scripty a nemůžu docílit toho aby byla defaultně vybrána nej kvalita.
Např. spustím 3x stejný program kvalita nej a na počvrté se mi tam dá horší kvalita....
Mohl by někdo poradit?
 
analyzuj stream a na pevno si tam namapuj ten stream s nejvyssim nebo celkove rozlisenim ktere chces. to same plati pro zvukove stopy. -map 0:1 nebo jak si pbudeš přát
 
@otava5 Použij script od @pavuucek. Nebo je tady někde oprava v modulu o2tvgo.py (myslím, že je to v tom vlákně addon). Má tam doplněný kód, ve kterém se snaží vybrat nejlepší možnou kvalitu v nabízených streamech. Já tam měl taky to původní od @JiRo, kde se bral první nabízený stream a skutečně to někdy a náhodně vrátilo nižší kvalitu. Tak jsem si to podle @pavuucek opravil a funguje mi to super. Vše mám v FHD.

Je to tady:
Kód:
   def url(self):
       if not self._o2tv.access_token:
           self._o2tv.refresh_access_token()
       access_token = self._o2tv.access_token
       if not self._o2tv.subscription_code:
           self._o2tv.refresh_configuration()
       subscription_code = self._o2tv.subscription_code
       playlist = None
       while access_token:
           params = {"serviceType":"LIVE_TV",
             "subscriptionCode":subscription_code,
             "channelKey": self.channel_key,
             "deviceType":self.quality,
             "streamingProtocol":"HLS"} # JiRo - doplněn parametr kvality
           headers = _COMMON_HEADERS
           cookies = { "access_token": access_token, "deviceId": self._o2tv.device_id }
           req = requests.get('http://app.o2tv.cz/sws/server/streaming/uris.json', params=params, headers=headers, cookies=cookies)
           jsonData = req.json()
           access_token = None
           if 'statusMessage' in jsonData:
               status = jsonData['statusMessage']
               if status == 'bad-credentials':
                   access_token = self._o2tv.refresh_access_token()
               elif status == 'channel.not-found':
                   raise ChannelIsNotBroadcastingError()
               else:
                   raise Exception(status)
           else:
               # Pavuucek: Pokus o vynucení HD kvality
               playlist = ""
               # pro kvalitu STB nebo PC se pokusíme vybrat HD adresu.
               # když není k dispozici, tak první v seznamu
               if self.quality == "STB" or self.quality == "PC":
                   for uris in jsonData["uris"]:
                       if uris["resolution"] == "HD" and playlist == "":
                           # vezmi první HD adresu
                           playlist = uris["uri"]
               # playlist nebyl přiřazený, takže první adresa v seznamu
               if playlist == "":
                   playlist = jsonData["uris"][0]["uri"]
       return playlist
 
@Client: ale tohle je kód do addonu ne? Já myslím playlist
 
@otava5 To by snad tady v té části mělo být jedno. Ne?
 
@Client: koukal jsem na kód a mám ho stejný jak si poslal asi proto že používám https://github.com/Pavuucek/O2TVKodi

tak jsem ze scriptu úplně vyhodil parametr -map a zdá se že to konečně funguje korektně....
 
@otava5 : přečti si co parametr -map znamena. Jak ti psal výše Client, musíš upravit "pipe" kde mapauješ jak si přeješ. abys obdržel, jinak se může stat, že budeš mit někdy menší rychlost připojení a hodi to rovnou SD kvlaitu při volani. Zde vidíš napriklad info.
Já kdybych chtěl nejvyšší tak bych tam dal -map 0:12 protože jak vidíš tak zde máš rozlišení 1920x1080
toto je moje dobře míněna rada, je to na tobě.


Stream #0:0: Video: h264 (Baseline) ([27][0][0][0] / 0x001B), yuv420p(tv, bt709), 512x288 [SAR 1:1 DAR 16:9], 25 fps, 25 tbr, 90k tbn, 50 tbc
Stream #0:1: Audio: aac (HE-AAC) ([15][0][0][0] / 0x000F), 48000 Hz, stereo, fltp
Stream #0:2: Audio: aac (HE-AAC) ([15][0][0][0] / 0x000F), 48000 Hz, stereo, fltp
Stream #0:3: Video: h264 (Main) ([27][0][0][0] / 0x001B), yuv420p(tv, bt709), 720x404 [SAR 404:405 DAR 16:9], 25 fps, 25 tbr, 90k tbn, 50 tbc
Stream #0:4: Audio: aac (HE-AAC) ([15][0][0][0] / 0x000F), 48000 Hz, stereo, fltp
Stream #0:5: Audio: aac (HE-AAC) ([15][0][0][0] / 0x000F), 48000 Hz, stereo, fltp
Stream #0:6: Video: h264 (Main) ([27][0][0][0] / 0x001B), yuv420p(tv, bt709), 1024x576 [SAR 1:1 DAR 16:9], 25 fps, 25 tbr, 90k tbn, 50 tbc
Stream #0:7: Audio: aac (HE-AAC) ([15][0][0][0] / 0x000F), 48000 Hz, stereo, fltp
Stream #0:8: Audio: aac (HE-AAC) ([15][0][0][0] / 0x000F), 48000 Hz, stereo, fltp
Stream #0:9: Video: h264 (Main) ([27][0][0][0] / 0x001B), yuv420p(tv, bt709), 1280x720 [SAR 1:1 DAR 16:9], 25 fps, 25 tbr, 90k tbn, 50 tbc
Stream #0:10: Audio: aac (HE-AAC) ([15][0][0][0] / 0x000F), 48000 Hz, stereo, fltp
Stream #0:11: Audio: aac (HE-AAC) ([15][0][0][0] / 0x000F), 48000 Hz, stereo, fltp
Stream #0:12: Video: h264 (High) ([27][0][0][0] / 0x001B), yuv420p(tv, bt709), 1920x1080 [SAR 1:1 DAR 16:9], 50 fps, 50 tbr, 90k tbn, 50 tbc
Stream #0:13: Audio: aac (HE-AAC) ([15][0][0][0] / 0x000F), 48000 Hz, stereo, fltp
Stream #0:14: Audio: aac (HE-AAC) ([15][0][0][0] / 0x000F), 48000 Hz, stereo, fltp
 
@francis: jak tento výpis udělám?
 
@otava5 Tohle se ať už tady ve scriptu nebo v addon snad řešilo několikrát. Já jsem časem dospěl k řešení, které mi funguje. Používám jednoduchý streamer script podle @JiRo (pro testovací účely si ukládám jednotlivé kroky do souborů *.log, což samozřejmě není nutné a je to možné vyhodit) a zdá se, že to zatím funguje bez problémů.
Kód:
#! /bin/bash
source=$*
stream=$(grep -A 1 "${source}$" /storage/.kodi/userdata/addon_data/service.playlist.o2tv/o2tv.generic.m3u8 | head -n 2 | tail -n 1)
echo ${stream} > /storage/.kodi/userdata/addon_data/service.playlist.o2tv/stream_HLS.log
wget -O /storage/.kodi/userdata/addon_data/service.playlist.o2tv/stream_ALL.log "${stream}"
stream=$(wget -qO - "${stream}" | tail -n 1)
echo ${stream} > /storage/.kodi/userdata/addon_data/service.playlist.o2tv/stream_LAST.log
ffmpeg -fflags +genpts -loglevel fatal -i ${stream} -vcodec copy -acodec copy -map 0 -f mpegts -metadata service_provider=o2tv.cz -metadata service_name=SERVICE -mpegts_service_type digital_tv pipe:1
 
pavuucek vedel by si pridat možnsť preposlať playlist.m3u8 na server trebars cez ftp ? diky
 
Nedaří se mi u typu playlistu 3 úspěšně naskenovat žádný program, mohl by mi někdo poradit? Typ 2 mi funguje bez problémů
- ffmpeg mám nainstalované a cestu nastavenou /storage/.kodi/addons/tools.ffmpeg-tools/bin
- přes putty mám nastavený chmod na streamer.sh, o2tv.playlist.m3u8 a i na ffmpeg
- TVH používám na Rpi2 LE 9.0.1
- v přílohách mám sken chmod (jestli jsou správně) a log z TVH
streamer.sh mám tento:

Kód:
#! /bin/bash
source=$*
tempplaylist=$(mktemp -u)".m3u8"
stream=$(grep -A 1 "${source}$" /storage/.kodi/userdata/addon_data/service.playlist.o2tv/o2tv.generic.m3u8 | head -n 2 | tail -n 1)
wget -qO ${tempplaylist} ${stream}
streamcount=$(cat ${tempplaylist} | grep -Eo "(http|https)://[\da-z./?A-Z0-9\D=_-]*" | wc -l)
streamcount=$((streamcount-1))
if  [ "$streamcount" = "-1" ]; then streamcount=0; fi
/storage/.kodi/addons/tools.ffmpeg-tools/bin -protocol_whitelist file,http,https,tcp,tls -fflags +genpts -loglevel fatal -i ${tempplaylist} -probesize 32 -reconnect_at_eof 1 -reconnect_streamed 1 -c copy -map p:${streamcount}? -f mpegts -tune zerolatency -bsf:v h264_mp4toannexb,dump_extra -mpegts_service_type digital_tv pipe:1


Přiložené soubory Miniatury
       
 
Tak pomohlo použít základní streamer.sh od JiRa, asi hodinu to šlo bez problémů a pak se vyskytla další chyba... 8

Kód:
2019-04-04 20:33:21.978 spawn: wget: server returned error: HTTP/1.1 403 Forbidden
 
@kapacitos78 Tak ten první script je patrně od pavuucka, takže hledej odpověď u něj. Druhý od @JiRo se týká tohoto tématu, které je, jak známo, uzavřené. Tady je každá rada drahá. tedy nejsem schopný takto na dálku zjistit co a jak, protože ten script už také nepožívám a ani neznám jeho obsah.
 
Tak pomohlo vytvořit admin účet, teď už vše funguje :)
 
Mam otazecku, pouzivam script, ale nemuzu nejak docilit aby se mi doplnovalo EPG k tem programum z externiho EPG.... zkousim do playlistu doplnovat ruzne tvg-id, tvg-name, ale porad nic...
 
@Konycz V čem ten playlist používáš?
 
davam ho do TVHEadend... a aby mi to nacetl EPG
 
@Konycz Těch míst, kde se to může "podělat" je hodně. Každopádně musíš:
  1. mít tvg-id zadáno v playlistu,
  2. pak musíš dosáhnout toho, aby se znova načetl playlist
  3. musíš mít samozřejmě načtěný xmltv
  4. v programech nastavený parametr Automatické mapování EPG zdroje
  5. pak si znovu spustit interní graber nebo (pokud používáš externí) znova vložit xmltv
  6. nakonec restartovat Kodi s PVR
Ještě před tím, než začneš laborovat, si taky můžeš (tedy pokud máš v Tvheadend načtené xmltv - to poznáš na stránce Programy EPG graberu) vše nastavit (alespoň pro jeden kanál) ručně. Pak v příslušném programu vybereš v položce Zdroj EPG příslušný zdroj xmltv. Pak pokračuj bodem 5. a 6, z výše uvedeného výčtu.
 
  


Přejít na fórum:


Prochází: 3 host(ů)