Ergebnis 1 bis 15 von 15

Thema: Brauche Hilfe - Video URL von XXX Seite auslesen

  1. #1
    Junior
    Registriert
    Dec 2019
    Beiträge
    37
    Gefällt mir!
    1
    Du gefällst: 12

    Brauche Hilfe - Video URL von XXX Seite auslesen

    Hallo Zusammen.

    Ich bin dabei mir ein Kodi Addon für eine XXX Seite zu programmieren. Soweit habe ich alles fertig.
    Mein eigentliches Problem hat mit Python zwar nicht wirklich etwas zutun, aber da das Addon in Python geschrieben wird und ich keine bessere Forenkategorie finden konnte, poste ich mal hier.

    Es geht um folgende Seite: https://mangovideo.club/
    Wenn ich jetzt auf eine Videoseite davon gehe, z.B. https://www.mangovideo.club/videos/3...3-quinn-wilde/, möchte ich daraus den direkten MP4 Link scrapen.

    Folgende Problematik:

    Im Quelltext finde ich diese Stellen:

    video_url: 'function/0/https://www.mangovideo.club/get_file/1/67f4475eb186df52fcac0bb11c56037f8467bc9fe7/37000/37224/37224.mp4/?br=2803' und auch rnd: '1606940313'

    Ich habe dazu bereits herausgefunden:

    Viele Videos, wie auch das aus dem Beispiel hier, kann man ganz einfach so aufrufen: https://www.mangovideo.club/contents...7224/37224.mp4

    Soweit, so gut, so einfach. Jetzt kommt aber der Knackpunkt. Es gibt auch viele Videos, die so einfach nicht aufrufbar sind, weil die URL dann auf verschiedene Subdomains zugreift, z.b. http(s)://61.mangovideo......mp4

    Nun gut, also muss ich den richtigen Weg finden.

    Ebenso habe ich rausgefunden, dass die richtige URL so generiert wird:
    https://www.mangovideo.club/get_file...=1606940673163 Allerdings ist das rnd länger als das aus dem Quelltext.

    Ich habe schon versucht aus dem Javascript des Player schlau zu werden, um zu schauen, ob dort steht, wie die URL generiert wird https://www.mangovideo.club/player/kt_player.js?v=5.2.0
    aber da stoße ich an meine Grenzen.

    Vielleicht gibt es ja hier Jemanden mit Durchblick, der mir helfen kann?!

    MfG.

  2. Werbung - Hier werben?
  3. #2
    Senior
    Registriert
    Jan 2018
    Beiträge
    308
    Gefällt mir!
    170
    Du gefällst: 131
    tl;dr

    schick mal ein bspw. wo das ganze mit deiner logik nicht gefunkt hat

    ich habe einfach mal die seite geparsed und nach dem video tag gesucht und bin so direkt auf die url gekommen


    $("video")[0].src
    "https://www.mangovideo.club/get_file/1/b7b31df66c0f84fec65c15f52ab704712b9970827d/37000/37224/37224.mp4/?br=2803&rnd=1606939076995"

  4. #3
    Junior
    THEMENSTARTER


    Registriert
    Dec 2019
    Beiträge
    37
    Gefällt mir!
    1
    Du gefällst: 12
    Könntest du mir sagen, wo oder wie ich das finde?
    Wenn ich per Browser den Seitenquelltext anzeigen lassen, finde ich die von dir genannte Stelle nicht.

  5. #4
    Senior
    Registriert
    Jan 2018
    Beiträge
    308
    Gefällt mir!
    170
    Du gefällst: 131
    welche bib benutzt du um seiten zu scrappen?

    du musst davon halt die html ansicht rendern und dann nach tags suchen können

    $("video")[0].src su
    $("video") sucht nach alle video tags im source code
    $("video")[0] gibt den ersten video tag zurück der gefunden wird
    $("video")[0].src gibt dir die bei dem ersten video hinterlegen src zurück

    die syntax ist halt abhängig davon welche sprache / framework du zum auslesen, parsen benutzt
    das hier war einfach javascript & jquery

    https://requests.readthedocs.io/proj...tml/en/latest/
    hier könntest du dir bspw. find angucken

    wenn ich die tage mal zeit habe könnte ich gucken wie das ganze in python aussieht

  6. #5
    Junior
    THEMENSTARTER


    Registriert
    Dec 2019
    Beiträge
    37
    Gefällt mir!
    1
    Du gefällst: 12
    Ja genau, mit requests.get lese ich aus. Hab aber noch nie irgendwas mit javascript und jquery gemacht. Für meine bisherigen Zwecke gat der normale HTML Code immer ausgereicht.
    Danke für den Link. Ich versuche es einfach mal, mich da einzulesen. Wenn ich nicht weiterkommen sollte, melde ich mich morgen Abend nochmal.

    - - - - - - - - - - Beitrag nachträglich erweitert - - - - - - - - - -

    Leider kann ich unter Kodi nichts mit requests_html anfangen.
    Ich könnte selenium nutzen, hab damit jetzt auch schon einige Versuche gestartet, aber ich bekomme es einfach nicht gebacken.

  7. #6
    Senior
    Registriert
    Apr 2017
    Beiträge
    229
    Gefällt mir!
    124
    Du gefällst: 115
    Schau dir mal das an, damit solltest du normal die Seite scrappen können,
    https://docs.scrapy.org/en/latest/intro/tutorial.html

    Das ist direkt Python und vielleicht brauchst du da kein javascript.

    Kurzbeispiel aus dem TUT:

    Code:
    import scrapy
    
    
    class QuotesSpider(scrapy.Spider):
        name = "quotes"
        start_urls = [
            'http://quotes.toscrape.com/page/1/',
        ]
    
        def parse(self, response):
            for quote in response.css('div.quote'):
                yield {
                    'text': quote.css('span.text::text').get(),
                    'author': quote.css('span small::text').get(),
                    'tags': quote.css('div.tags a.tag::text').getall(),
                }
    
            next_page = response.css('li.next a::attr(href)').get()
            if next_page is not None:
                yield response.follow(next_page, callback=self.parse)
    gruß Hotte

  8. Diesen Mitgliedern gefällt dieser Beitrag:


  9. #7
    Junior
    THEMENSTARTER


    Registriert
    Dec 2019
    Beiträge
    37
    Gefällt mir!
    1
    Du gefällst: 12
    Aktueller Stand:

    Ich bin immer noch nicht ans Ziel gekommen.

    Habe jetzt die letzten Tage mal mit Python 3 Selenium und PhantomJS und Chromedriver rumprobiert.
    Alles gut und schön. Aber es wird immer noch nicht die Stelle ausgelesen, die ich brauche.
    Vielleicht sind meine Skills dafür auch nicht gut genug. Google hilft mir jetzt auch nicht mehr weiter, habe schon etliches probiert.
    Ich denke, dass erst das Javascript irgendwie ausgeführt werden muss. Aber wie gesagt, 0 Ahnung, wie das funktioniert.

  10. #8
    Junior
    Registriert
    Nov 2019
    Beiträge
    72
    Gefällt mir!
    116
    Du gefällst: 17
    Moin,

    habe ein PHP Skript zusammen gehackt. Kannst ja mal schauen ob du damit was anfangen kannst

    PHP-Code:
    $video_id = isset($_SERVER['QUERY_STRING']) ? (int)$_SERVER['QUERY_STRING'] : '';
    $html file_get_contents('https://www.mangovideo.club/embed/'.$video_id);
    $host 'mangovideo.club';
    if (
    strpos($html,"license_code:") !== false) {
    $t1 explode("license_code: '"$html);
    $t2 explode("'"$t1[1]);
    $d $t2[0];
    $t1 explode("function/0/"$html);
    $t2 explode("'"$t1[count($t1)-1]);
    $orig $t2[0];
    $c 16;

    for (
    $f ""$g 1$g strlen($d); $g++)
        {
        
    $f.= preg_match("/[1-9]/"$d[$g]) ? $d[$g] : 1;
        }

    for (
    $j intval(strlen($f) / 2) , $k substr($f0$j 1) , $l substr($f$j) , $g $l $k$g && ($g = - $g) , $f $g$g $k $l$g && ($g = - $g) , $f+= $g$f $f 2$f "" $f$i $c 2$m ""$g 0$g $j 1$g++)
        {
        for (
    $h 1$h <= 4$h++)
            {
            
    $n $d[$g $h] + $f[$g];
            
    $n >= $i && ($n-= $i);
            
    $m.= $n;
            }
        }

    $t1 explode("/"$orig);
    $j $t1[5];
    $h substr($j032);
    $i $m;

    for (
    $j $h$k strlen($h) - 1$k >= 0$k--)
        {
        for (
    $l $k$m $k$m strlen($i); $m++) $l+= $i[$m];
        for (; 
    $l >= strlen($h);) $l-= strlen($h);
        for (
    $n ""$o 0$o strlen($h); $o++)
            {
            
    $n.= $o == $k $h[$l] : ($o == $l $h[$k] : $h[$o]);
            }

        
    $h $n;
        }

    $link str_replace($j$h$orig);
    } else {
     
    $link="";
    }
    $flash="direct";
    /*
     if ($link && $flash <> "flash")
      $link=$link."|Origin=".urlencode("https://".$host);
      echo   $link;
    */
    echo   $link
    Frag mich nicht ... Ich habe es mit ein paar Inhalten geprüft. Läuft supi

    Hinweis: "Lösung" via google / github / stackoverflow erreicht

  11. Diesen Mitgliedern gefällt dieser Beitrag:


  12. #9
    Junior
    THEMENSTARTER


    Registriert
    Dec 2019
    Beiträge
    37
    Gefällt mir!
    1
    Du gefällst: 12
    Vielen Dank für deine Mühe. Aber das ist nicht genau das, wonach ich suche.

    Wenn ich dein Script ausführe kommt bei mir sowas raus: die Domain + /get_file/18/7722d95db2bea6451792906ca750aa24b679c2abf4/36000/36245/36245.mp4/?br=1596&embed=true
    Da fehlt am Ende aber das &rnd=xxxxxx
    Das Problem ist, der rnd Wert, der im Quelltext zu sehen ist, funktioniert nicht. Wenn du den Netzwerkverkehr in der Browserkonsole beobachtest, siehst du, das beim Starten des Videos ein andere rnd Wert generiert wird, als der aus dem Quelltext. Und dieser rnd Wert hat 3 Ziffern mehr.

  13. #10
    Junior
    Registriert
    Nov 2019
    Beiträge
    72
    Gefällt mir!
    116
    Du gefällst: 17
    Richtig,

    dann machen wir noch einen "Head" request auf diese url und bekommen die direkte URL zurück, Alle files liegen bei denen offen "ohne Schutz"

    PHP-Code:
    <?php
    $video_id 
    = isset($_SERVER['QUERY_STRING']) ? (int)$_SERVER['QUERY_STRING'] : '';
    $html file_get_contents('https://www.mangovideo.club/embed/'.$video_id);
    $host 'mangovideo.club';
    if (
    strpos($html,"license_code:") !== false) {
    $t1 explode("license_code: '"$html);
    $t2 explode("'"$t1[1]);
    $d $t2[0];
    $t1 explode("function/0/"$html);
    $t2 explode("'"$t1[count($t1)-1]);
    $orig $t2[0];
    $c 16;

    for (
    $f ""$g 1$g strlen($d); $g++)
        {
        
    $f.= preg_match("/[1-9]/"$d[$g]) ? $d[$g] : 1;
        }

    for (
    $j intval(strlen($f) / 2) , $k substr($f0$j 1) , $l substr($f$j) , $g $l $k$g && ($g = - $g) , $f $g$g $k $l$g && ($g = - $g) , $f+= $g$f $f 2$f "" $f$i $c 2$m ""$g 0$g $j 1$g++)
        {
        for (
    $h 1$h <= 4$h++)
            {
            
    $n $d[$g $h] + $f[$g];
            
    $n >= $i && ($n-= $i);
            
    $m.= $n;
            }
        }

    $t1 explode("/"$orig);
    $j $t1[5];
    $h substr($j032);
    $i $m;

    for (
    $j $h$k strlen($h) - 1$k >= 0$k--)
        {
        for (
    $l $k$m $k$m strlen($i); $m++) $l+= $i[$m];
        for (; 
    $l >= strlen($h);) $l-= strlen($h);
        for (
    $n ""$o 0$o strlen($h); $o++)
            {
            
    $n.= $o == $k $h[$l] : ($o == $l $h[$k] : $h[$o]);
            }

        
    $h $n;
        }

    $link str_replace($j$h$orig);
    } else {
     
    $link="";
    }
    $flash="direct";
    /*
     if ($link && $flash <> "flash")
      $link=$link."|Origin=".urlencode("https://".$host);
      echo   $link;
    */

    $ch curl_init($link);
    curl_setopt($chCURLOPT_HEADERfalse);
    curl_setopt($chCURLOPT_USERAGENT,'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.13) Gecko/20080311 Firefox/2.0.0.13');
    curl_setopt($chCURLOPT_NOBODYtrue);
    curl_setopt($chCURLOPT_CONNECTTIMEOUT ,5); // connect timeout
    curl_setopt($chCURLOPT_TIMEOUT10); // curl timeout
    curl_setopt($chCURLOPT_FOLLOWLOCATIONTRUE); 


    $html curl_exec($ch);
    $redirectURL curl_getinfo($ch,CURLINFO_EFFECTIVE_URL );
    curl_close($ch);

    echo  
    $redirectURL;
    https://www.mangovideo.club/videos/32440/my-first-anal/

    also 32440

    ergibt dann https://183.mangovideo.pw/contents/v...2440/32440.mp4

  14. Diesen Mitgliedern gefällt dieser Beitrag:


  15. #11
    Junior
    THEMENSTARTER


    Registriert
    Dec 2019
    Beiträge
    37
    Gefällt mir!
    1
    Du gefällst: 12
    Sehr geil. Das funktioniert. Fettes Danke!
    Dann muss ich jetzt nur noch gucken, dass ich das irgendwie in Python umgewandelt bekomme.

  16. #12
    Junior
    Registriert
    Nov 2019
    Beiträge
    72
    Gefällt mir!
    116
    Du gefällst: 17
    Zur Not kleinen Webserver mit Php aufsetzen den Spaß als api nutzen 😄

  17. #13
    Junior
    THEMENSTARTER


    Registriert
    Dec 2019
    Beiträge
    37
    Gefällt mir!
    1
    Du gefällst: 12
    Ja, so habe ich es gerade auch eingebunden.
    Ich schaue mal nächste Woche, ob ich den Code dann übersetzen kann.
    Das Addon basiert gerade eh noch auf Python 2, muss das dann noch für Kodi 19 in Python 3 umschreiben.

  18. #14
    Junior
    Registriert
    Nov 2019
    Beiträge
    72
    Gefällt mir!
    116
    Du gefällst: 17
    Wichtig ist ja dieser Part ab
    $orig = $t2[0];
    $c = 16;
    , quasi die dekodierung

  19. #15
    Junior
    THEMENSTARTER


    Registriert
    Dec 2019
    Beiträge
    37
    Gefällt mir!
    1
    Du gefällst: 12
    So, hier dann der Python Code, falls noch jemand etwas damit anfangen kann / möchte.

    PHP-Code:
    import requests

    res 
    requests.get('https://mangovideo.club/embed/36901')
    html res.text

    if(html.find("license_code:") != -1):
        
    t1 html.split("license_code: '")
        
    t2 t1[1].split("'")
        
    t2[0]
        
    d1 d.replace('0''1')
        
        
    d1[1:]
        
        
    16

        t1 
    html.split("function/0/")
        
    t2 t1[len(t1)-1].split("'")
        
    orig t2[0]
        
        
    int(len(f) / 2)
        
        
    int(f[01])
        
    int(f[j:])
        
    k

        
    if 0:
            
    = - g

        f 
    g
        g 
    l

        
    if 0:
            
    = -g

        f 
    += g
        f 
    int(2)

        
    "" str(f)
        
    int(2) + 2
        m 
    ""
        
    0
        
    while j+1:
            
    1
            
    while <= 4:
                
    int(d[h]) + int(f[g])
                if 
    >= i:
                    
    -= i
                m 
    str(m) + str(n)
                
    1
            g 
    1

        t1 
    orig.split("/")
        
    t1[5]

        
    j[0:32]
        
    m

        j 
    h
        k 
    len(h) - 1
        
    while >= 0:
            
    k
            m 
    k

            i 
    str(i)
            while 
    len(i):
                
    int(i[m])
                
    1

            
    while >= len(h):
                
    len(h)

            
    ""
            
    0
            
    while len(h):
                if 
    == k:
                    
    h[l]
                else:
                    if 
    == l:
                        
    h[k]
                    else:
                        
    h[o]

                
    1

            h 
    n

            k 
    1

        link 
    orig.replace(jh)

        
    headers = {
            
    "User-Agent""Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.13) Gecko/20080311 Firefox/2.0.0.13"
        
    }

        
    response requests.get(link,headers=headers,stream=True,timeout=20)
        
        if 
    response.history:
            
    final_result response.url
            
    print(final_result)
        else:
            print(
    "Request was not redirected")
    else:
        print(
    'none. Link Not found.'

  20. Diesen Mitgliedern gefällt dieser Beitrag:


Ähnliche Themen

  1. Brauche Hilfe zum Installieren und Einstellen von Wireguard unter LibreELEC
    Von Dunkel im Forum Technik / Hardware & Software
    Antworten: 7
    Letzter Beitrag: 08.04.2022, 15:26
  2. (Sonstige) - Brauche Hilfe in Powershell - Umgebungsvariablen
    Von Dunkel im Forum Entwicklung / Programmierung
    Antworten: 1
    Letzter Beitrag: 21.10.2021, 16:05
  3. Brauche Hilfe beim installieren von Retrobox auf Laptop
    Von Dunkel im Forum Technik / Hardware & Software
    Antworten: 1
    Letzter Beitrag: 08.07.2021, 21:53
  4. Brauche Hilfe mit File Sharing
    Von bartelby im Forum Szene Daily Talk & OffTopic
    Antworten: 3
    Letzter Beitrag: 28.03.2019, 17:11
  5. Antworten: 11
    Letzter Beitrag: 23.11.2018, 10:40

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  
SzeneBox.org... im Mittelpunkt der Szene!
© since 2015 szeneBOX.org - All Rights Reserved
Domains: www.szenebox.org