Jump to content

ltcproxy - m3u8 playlist proxy for shortcut.lv


ivars777
 Share

Recommended Posts

Eksponē permamentus m3u8 linkus (playlisti), ko var norādīt PerfectPlayer, Kodi vai kādai citai IPTV aplikācijai.

Ļauj skatīties shortcut.lv uz jebkuras iekārtas klasiskās TV pieredzes formā. Var to darīt no vairākām iekārtām (proxy režīmā).

Strādā arhīvs (ar PerfectPlayer, bet var teorētiski pielāgot arī citiem pleijeriem).

Nepieciešams derīgs shortcut.lv konts.

Strādā jebkuŗā tīklā (tiek izmantots Android TV shortcut API).

Pagaidām ALFA versija (proof of concept, daudz vēl kas pietaisāms)!

Instalēšana

  1. Strādā uz jebkura datora, kur ir Python 2.7. Vislabāk kāds Linux serveris, var arī uz Windows (nestrādās daemona režīms)

  2. Lejupielādējam/atzipojam aktuālo versiju no http://git.blue.lv/home/ltcproxy vai noklonējam folderi ar git clone http://git.blue.lv/home/ltcproxy un uztaisam cd uz folderi.

  3. Uzinstalējam Python atkarības

    pip install -r  requirements.txt
    
  4. (Optional) Uzinstalējam “mīļāko” WSGI serveri - cheroot, waitress u.c. Skat. iespējamos variantus https://bottlepy.org/docs/dev/deployment.html. Defaultā strādas ar wsgiref, kas derēs mazām slodzēm. Piemēram,

    pip install cheroot
    
  5. Sakonfigurējam ar teksta redaktoru konfigurācijas failu ltcproxy.cfg

    • debug = False|True - papildus debug info
    • port = 8881 - proxy ports
    • redirect = False - ja True, tad veic vienkāršu pāradresāciju (302), citādi strādā kā proxy
    • cache = True - kešo pieprasījumus (t.sk. video), lai lieki neraustītu shortcut.lv serveri un paātrinātu darbu
    • key = 0000 - drošības kods, kas jānorāda url (skat ltc2.m3u9 piemēru)
    • wsgi = wsgiref|mtwsgi|cheroot|waitress... - izmantojamais WSGI serveris (mtwsgi - multitredingots defaultais wsgi)
    • workers = n - tredu skaits (atkarībā no izmantotā WSGI servera)
    • ltc_user = user - shortcut.lv lietotājs
    • ltc_password = passowrd - shortcut.lv parole
  6. Piestartējam va nu foreground vai daemon (tikai uz linux) režīmā atticīgi (palaižot bez parametriem var redzēt iespējamās opcijas)
    •  python ltcproxy.py manualstart
    •  python ltcproxy.py start
  7. Ja daemon procesu vajag apstādināt vai pārstartēt
    • python ltcproxy.py stop
      python ltcproxy.py restart
      
  8. Sagatavojam pleilisti. Parauga fails ltc2.m3u8 ir folderī vai šeit http://epg.blue.lv/ltc2.m3u8. localhost aizvietojam ar servera hostname. Neaizmirstam ielikt pareizo key (uzreiz pēc servera vārda). Kanāla paraugs

    #EXTINF:0 group-title="Latvian" tvg-id="ltc101" tvg-logo="https://manstv.lattelecom.tv/images/01_Bildes/01_Kanalu_LOGO/ltv-1_70x70.png" 
    catchup="append" catchup-source="${start}/",LTV1
    http://hostname:8881/00000/live/101/
    
  9. catchup tagi ir lai strādātu arhīvs PerfecPlayer (tagi ir specifiski PerfectPlayer). Principā var dabūt jebkuru vēsturisko arhīvu visiem strīmiem, ko nodrošina shortcut.lv pieliekot galā unix timestamp. Diemžēl shortcut.lv ierobežojumu dēļ aktīvajām pārraidēm arhīvs nav pieejams , tikai tām pārraidēm, kas beigušās (nevar patīt tekošajam raidījumam 5 min atpakaļ). Zinot arhīva izsaukumu var mēģināt nokonfigurēt arhīvu piejam'ību citiem IPTV playeriem..

    • http://hostname:8881/00000/live/101/1570406400/

  10. IPTV aplikācijā norādām sagatavoto playlisti, kā arī EPG linku. Pašreiz var izmantot http://epg.blue.lv/ltc.xml.gz. Paredzēts, ka nākotnē to eksponēs ltcproxy.

  11. Tas arī viss. Ja lieto kešu, tad vēlams 1x dienā pārstartēt (pārstartējot kešs nodzēšas). Ja iestrēgst kanāls, var mēģināt pārslēgties uz priekšu/atpakaļ. Ja nelīdz, tad jāpārstartē ltcproxy.

Zināmās kļūdas/plāni

  • Ne līdz galam korekti nostrādā HEAD pieprasījumi (daži playeri pirms spēlēšanas nočeko ar HEAD, kas par strīma tipu). Šī iemesla dēļ šobrīd nestrādā uz Android TV Channels
  • Brīžiem pārlec uz priekšu atpakaļ par 5-10 sekundēm proxy režīmā (īsti nesaprotu iemeslu, varbūt kaut kāda shortcut strīmu īpatnība atjaunojot sesijas kukiju)
  • Plānā ir iespēja skatīties shortcut.lv filmas VOD playlista veidā
  • Plānā ir iespēja proxy režīmā izmantot citus (ne ltc strīmus)

Kļūdām/ierosmēm

 

Kaut kā tā,

ivars777@gmail.com

Labots - ivars777
  • Patīk 4
Link to comment
Share on other sites

pirms 7 stundām , ivars777 teica:

pip install -r reqirments.txt

Faila nosaukums repozitorijā: requirments.txt

Pareizi rakstās: requirements

Link to comment
Share on other sites

Vai šis strādās ārpus latšmelekom tīka?

Link to comment
Share on other sites

Citēt

lieta@lieta:~/sources/ltcproxy$ python ltcproxy.py manualstart -d
Enabling debuging mode (more output)
*** Starting ltcproxy ***
Bottle v0.13-dev server starting up (using CherootServer())...
Listening on http://0.0.0.0:8880/
Hit Ctrl-C to quit.

Can not login
Can not login
...

 

Link to comment
Share on other sites

ivars777

Varbūt vajag ielogoties  un nočekot vai viss ir ok pārlūkā. Kaut kādos brīžos varbūt shortcuts ieslēdz robotu pārbaudi.

Link to comment
Share on other sites

ivars777

Laikam nebija aktuālā versija iekomitējusies. Tagad gitā ir aktuālā versija. Ceru, ka strādās

Link to comment
Share on other sites

Citēt

lieta@lieta:~/sources/ltcproxy$ python ltcproxy.py manualstart -d
Enabling debuging mode (more output)
*** Starting ltcproxy ***
LTC_USER: xxxxxxxxx
Bottle v0.13-dev server starting up (using CherootServer())...
Listening on http://0.0.0.0:8880/
Hit Ctrl-C to quit.

Can not login xxxxxxxxx/yyyyyyyyy

 

Labots - Lieta
Link to comment
Share on other sites

ivars777

Palabota versija (0.1c).

Pieliku papildus diagnostiku. Varbūt varēs saprast problēmu.

Vai kādam strādā?

  • Patīk 2
Link to comment
Share on other sites

Citēt

lieta@lieta:~/sources/ltcproxy$ python ltcproxy.py manualstart -d
Enabling debuging mode (more output)
*** Starting ltcproxy ***
Traceback (most recent call last):
  File "ltcproxy.py", line 585, in <module>
    start(server,port)
  File "ltcproxy.py", line 446, in start
    if login(LTC_USER, LTC_PASSWORD):
  File "ltcproxy.py", line 483, in login
    print "Login error: %s - %s" % (ex.code, ex.msg)
AttributeError: 'URLError' object has no attribute 'code'

 

Link to comment
Share on other sites

ivars777

Tātad tā nav HTTP kļūda. Visdrīzāk kaut kas ar SSL. Kāda pythona versija?

Nomainīju urllib2 bibliotēku uz requests. Cerams, ka tagad strādās

Link to comment
Share on other sites

Citēt

lieta@lieta:~/sources/ltcproxy$ python ltcproxy.py manualstart -d
Enabling debuging mode (more output)
*** Starting ltcproxy ***
Login exception - HTTPSConnectionPool(host='manstv.lattelecom.tv', port=443): Max retries exceeded with url: /api/v1.7/post/user/users/xxxxxxxxxxxx (Caused by SSLError(SSLError("bad handshake: Error([('SSL routines', 'tls_process_ske_dhe', 'dh key too small')],)",),))
Can not login xxxxxxxxxxxx
Bottle v0.13-dev server starting up (using CherootServer())...
Listening on http://0.0.0.0:8880/
Hit Ctrl-C to quit.

^Clieta@lieta:~/sources/ltcproxy$ python --version
Python 2.7.16

 

Labots - Lieta
Link to comment
Share on other sites

BTW ir iespējams dabūt arā playlisti ar tiešiem linkiem, lai varētu lietot bez proxy? Tas jau būtu interesantāk..

Link to comment
Share on other sites

Strādā. Fix bija šāds:

Citēt

The remote site in the example uses a small DH key [0]. If you can't get owner to upgrade the site and want still to access the site I suggest to remove

CipherString = DEFAULT@SECLEVEL=2

from /etc/ssl/openssl.cnf.

 

https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=907788

manstv.lattelecom.tv izmanto vāju (1024 bitu) DH atslēgu. https://weakdh.org

Labots - Lieta
Link to comment
Share on other sites

Var vienmēr sideloading taisīt ņemot apk no kreisajiem saitiem, piem.

https://www.djjubeemedia.appboxes.co/Apks/Media-Players/

 

Vispār kārtējais stulbums. Pēc šīs loģikas jebkurš telefons  vai smart TV  kļūst par "zādzības" rīku, jo izmantojams nelicenzēta satura patērēšanai s (līdzīgi kā visas atmiņas iekārtas tika pasludināti par piratēšanas līdzekli un apliktas ar nodokli).

  • Patīk 1
Link to comment
Share on other sites

  • 1 month later...

strādā.

uz x86_64 deb un simple iptv uz kodi

(ar labotu doto playlisti un kreiso epg)

vai ir iespēja ietekmēt strīma izšķirtspēju?

kā izskatās ar arhīviem?

un kā nokonfigurēt ?  archive url fomat?

Link to comment
Share on other sites

Izveido kontu, vai pieraksties esošajā, lai komentētu

Jums ir jābūt šī foruma biedram, lai varētu komentēt tēmas

Izveidot jaunu kontu

Piereģistrējies un izveido jaunu kontu, tas būs viegli!

Reģistrēt jaunu kontu

Pierakstīties

Jums jau ir konts? Pierakstieties tajā šeit!

Pierakstīties tagad!
 Share

×
×
  • Izveidot jaunu...