Hirdetés

Keresés

Hirdetés

Új hozzászólás Aktív témák

  • Mr Dini

    addikt

    válasz pycur #25287 üzenetére

    Szia!

    Csak bat lenne jó? Ott kicsit nehézkes http kéréseket csinálni, mindenképp kell curl vagy hasonló.

    Amúgy bármilyen nyelv ok, ami tud parsolni, meg tudja az előbb említett HTTP kéréseket.

    Itt egy gyors, dirty Python példa (extract_url.py):

    # -*- coding: utf-8 -*-

    from re import findall
    import urllib2

    req = urllib2.Request("https://player.mediaklikk.hu/playernew/player.php?video=mtv2live")
    req.add_header("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.169 Safari/537.36")
    data = urllib2.urlopen(req).read()
    url = findall(r'"file": "([^"]+)",', data)[0].replace("\/", "/")[2:]
    print(url)

    Igaz, ez az index.m3u8-at is beleveszi a végén, de ezt szükség esetén le tudod vágni a replace fv-el akár. Bár nem látom értelmét.

    [ Szerkesztve ]

    Eleinte angol billentzuyetet akartam. De aztán megismerkedtem a nagy 'Ő'-vel!

  • Mr Dini

    addikt

    válasz pycur #25293 üzenetére

    Ahh, azt hittem Kodi alól próbálod, hisz Kodi kieg. topikban vagyunk. Kodinak jó a 2.7-re írt kód (ezt írtam fentebb), de a 3-as Python, ami most a legfrissebb, már nem rendelkezik az urllib2 könyvtárral.

    Szóval Win+R (Futtatás), majd beírod: cmd.exe; Nyomsz egy entert. Feljön a terminál. Ide jobb klikkel illeszd be:

    pip install requests

    Ez telepíti a requests modult, ha minden igaz. Egyszer kell csak futtatni.

    Aztán csinálj egy extract_url.py fájlt bárhova, legyen ez a tartalma:

    # -*- coding: utf-8 -*-

    from re import findall
    import requests

    req = requests.get("https://player.mediaklikk.hu/playernew/player.php?video=mtv2live", headers={"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.169 Safari/537.36"})
    url = findall(r'"file": "([^"]+)",', req.text)[0].replace("\/", "/")[2:]
    print(url)

    Ha a C:\Users\pycur\Desktop\extract_url.py lett a teljes útvonala (mindegy mi, csak akkor hivatkozz rá más elérési úttal), akkor a python C:\Users\pycur\Desktop\extract_url.py parancs futtatja Neked és ki is írja a linket.

    Amibe Te vagy, a három > jelzi, az a Python interaktív módja. Sorról sorra tudsz megadni egy kódot, így tesztelve élőben, hogy mi történik. Hasznos, de perzisztens, automatizált, illetve komplex dolgokhoz már py fájlba kell rakni a kódot. Pl a fenti kód megy interaktívan is:

    >>> from re import findall
    >>> import requests
    >>> req = requests.get("https://player.mediaklikk.hu/playernew/player.php?video=mtv2live", headers={"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.169 Safari/537.36"})
    >>> url = findall(r'"file": "([^"]+)",', req.text)[0].replace("\/", "/")[2:]
    >>> print(url)
    c123-node12-cdn.connectmedia.hu/1001/c5653fdz4334453453rrre546fgd5643455/index.m3u8?v=5i
    >>> exit()

    [ Szerkesztve ]

    Eleinte angol billentzuyetet akartam. De aztán megismerkedtem a nagy 'Ő'-vel!

  • Mr Dini

    addikt

    válasz pycur #25295 üzenetére

    A replace fv-t annyit "stackeled", azaz pakolod le egymás után, ahányszor csak akarod. [Ide vonatkozó Python docs] Nem a legszebb megoldás, azt elismerem, de gyors és egy szkriptbe oké. Fájlba kiírással együtt pl.:

    # -*- coding: utf-8 -*-

    import os
    from re import findall
    import requests

    req = requests.get("https://player.mediaklikk.hu/playernew/player.php?video=mtv2live", headers={"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.169 Safari/537.36"})
    url = findall(r'"file": "([^"]+)",', req.text)[0].replace("\/", "/").replace("index", "02")[2:]
    with open(os.path.join(os.getcwd(), "current_url.txt"), "w") as f:
    f.write(url)

    PS: fv = függvény

    (#25296) aryes

    Valamit írni kellett oda, így a kolléga nickneve lett a felh.név ;)

    [ Szerkesztve ]

    Eleinte angol billentzuyetet akartam. De aztán megismerkedtem a nagy 'Ő'-vel!

  • pycur

    tag

    válasz pycur #25299 üzenetére

    Na végre elkészült!

    Itt a forrása ha valakit érdekel M2 mediaklikk online felvevő bat fájl ffmpeg progival:
    Installált Python 2.x kell hozzá.

    getm2.py
    -------------
    # -*- coding: utf-8 -*-

    from re import findall
    import urllib2
    import os

    req = urllib2.Request("https://player.mediaklikk.hu/playernew/player.php?video=mtv2live")
    req.add_header("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.169 Safari/537.36")
    data = urllib2.urlopen(req).read()
    url = findall(r'"file": "([^"]+)",', data)[0].replace("\/", "/").replace("index.m3u8?v=5i", "02.m3u8")[2:]
    print(url)
    with open(os.path.join(os.getcwd(), "m2link.txt"), "w") as f:
    f.write(url)

    M2rec-LIVE-automata.bat
    -----------------------------------
    setlocal
    getm2.py
    for /f "delims=" %%x in (m2link.txt) do set m2link=%%x
    set dllink=https://%m2link%
    for /f "tokens=2 delims==" %%a in ('wmic OS Get localdatetime /value') do set "dt=%%a"
    set "YY=%dt:~2,2%" & set "YYYY=%dt:~0,4%" & set "MM=%dt:~4,2%" & set "DD=%dt:~6,2%"
    set "HH=%dt:~8,2%" & set "Min=%dt:~10,2%" & set "Sec=%dt:~12,2%"
    set "datestamp=%YYYY%%MM%%DD%" & set "timestamp=%HH%%Min%%Sec%"
    set "fullstamp=%YYYY%-%MM%-%DD%_%HH%-%Min%-%Sec%"
    ffmpeg -i %dllink% -c copy "m2rec-"%fullstamp%.ts"

    A 2 fájlt az ffmpeg mappájába kell tenni és a bat fájlt indítani. Addig vesz amíg be nem zárod az ablakot.

    Köszi mégegyszer!

    Az agy a hardver, az ész a szoftver, az IQ pedig a verziószám. :D

Új hozzászólás Aktív témák

Hirdetés