IPTV VOD-ohjelmia kanavalistalle

  • Viestiketjun aloittaja JKJ
  • Aloituspäivämäärä
Sivustoa
		sponsoroi SatShop.fi

JKJ

Huoltovalikon jäsen
Sijainti
Hikiä
Laitteisto
Vu+ Duo 4K SE
OpenViX 6.2 | DVB-T Digita | IPTV smartiuse.com
Laiskuuden maksimoimiseksi halusin usein käyttämiäni VOD-palvejen ohjelmia suoraan kanavalistalle, niin
että suoraan kanavalistalta klikkaamalla saan katsottua vaikkapa SVT:n tuoreimmat suomenkieliset uutiset.
Palvelimena on Raspberry, jossa Python-skriptit hoitaa itse sen varsinaisen videostreamin kaivelun ja
uudelleenohjaa Enigma2:n soittimen siihen striimin löydettyään. Digiboksin kanavalistalla on vain noiden Python-skriptien osoitteet.

Esimerkkejä:
Koodi:
#SERVICE 4097:0:0:0:0:0:0:0:0:0:http%3a//192.168.1.14/e2stream/karelija.py:GTRK Uutiset
#SERVICE 4097:0:0:0:0:0:0:0:0:0:http%3a//192.168.1.14/e2stream/svtuutiset.py:SVT Uutiset

svtuutiset.py palvelimella:
Koodi:
#!/usr/bin/env python3
#sudo apt install -y  jq
import subprocess, json, sys, os
komento='''youtube-dl -g 'https://www.svtplay.se/uutiset'|grep http|head -n 1'''
p = subprocess.Popen(komento, stdout=subprocess.PIPE, stderr=subprocess.PIPE, stdin=subprocess.PIPE, shell=True)
url, err = p.communicate()

#with open("/halyt/www/e2stream/loki.txt", "w") as loki:
#    loki.write("---"+str(qs)+"---"+str(type(qs)))
#    loki.write("///"+url+"///"+str(laatu)+"///")

print('''Status: 301 Redirect
Location: {url}
Content-Type: text/html

Moved permanently to <a href="{url}">{url}</a>
'''.format(url=url.decode()))

karelija.py palvelimella:
Koodi:
#!/usr/bin/env python3
#sudo apt install -y  jq
import subprocess, json, sys, os
laatu=360
komento='''youtube-dl -j --flat-playlist https://www.youtube.com/playlist?list=PLoW-0xF9FLAyYzWFjMZ5QJ5Yy7tthvv0S |jq -r '"\(.url)|\(.title)"'|uniq|tail -n 1'''
p = subprocess.Popen(komento, stdout=subprocess.PIPE, stderr=subprocess.PIPE, stdin=subprocess.PIPE, shell=True)
out, err = p.communicate()
video, otsikko=out.decode().split("|")
url = 'https://www.youtube.com/watch?v='+video


#with open("/halyt/www/e2stream/loki.txt", "w") as loki:
#    loki.write("---"+str(qs)+"---"+str(type(qs)))
#    loki.write("///"+url+"///"+str(laatu)+"///")

p = subprocess.Popen('youtube-dl -J '+url, stdout=subprocess.PIPE, stderr=subprocess.PIPE, stdin=subprocess.PIPE, shell=True)
out, err = p.communicate()
json_object = json.loads(out.decode())
for kohde in json_object["formats"]:
    if str(kohde["height"]) == str(laatu):
        striimi=kohde["url"]

print('''Status: 301 Redirect
Location: {url}
Content-Type: text/html

Moved permanently to <a href="{url}">{url}</a>
'''.format(url=striimi))

Periaatteessa tällä tavalla saa kanavalistalle mitä vain usein katsomiaan ohjelmia, kunhan striimi vain
on sellainen, että Enigma2:n joku soitin osaa sen soittaa.
Säännöllisessä katselussa mielestäni kätevämpi kuin Chromecastin kanssa pelaaminen.
Noita skripejä kun tekee, kannattaa debug-käytössä kokeilla ihan VLC:llä tietokoneella niiden toimivuus kuntoon ensin:
Koodi:
vlc http://localhost/e2stream/svtuutiset.py

Ja palvelimella skriptien pitää tietysti olla suorituskelpoisia (chmod a+x) ja katsoa että palvelinohjelmiston
timeout-asetukset ei ole liian tiukat, koska tuo striimien kaivelu aina aikansa kestää.
Tarvittavat ohjelmat sen itse http-palvelimen (esim nginx tai apache2) lisäksi:
Koodi:
sudo apt install -y jq
sudo pip3 install youtube-dl
ja olikohan lisäksi pip3:lla paketti simplejson, joka ton json parseroinnin hoitaa..
 
Takaisin
Ylös