Ergebnis 1 bis 15 von 15

Thema: Brauche Hilfe - Video URL von XXX Seite auslesen

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

    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. #2
    Senior
    Registriert
    Jan 2018
    Beiträge
    254
    Gefällt mir!
    120
    Du gefällst: 111
    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"

  3. #3
    Junior
    THEMENSTARTER


    Registriert
    Dec 2019
    Beiträge
    33
    Gefällt mir!
    1
    Du gefällst: 9
    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.

  4. #4
    Senior
    Registriert
    Jan 2018
    Beiträge
    254
    Gefällt mir!
    120
    Du gefällst: 111
    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

  5. #5
    Junior
    THEMENSTARTER


    Registriert
    Dec 2019
    Beiträge
    33
    Gefällt mir!
    1
    Du gefällst: 9
    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.

  6. #6
    Senior
    Registriert
    Apr 2017
    Beiträge
    213
    Gefällt mir!
    102
    Du gefällst: 104
    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

  7. Diesen Mitgliedern gefällt dieser Beitrag:


  8. #7
    Junior
    THEMENSTARTER


    Registriert
    Dec 2019
    Beiträge
    33
    Gefällt mir!
    1
    Du gefällst: 9
    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.

  9. #8
    Junior
    Registriert
    Nov 2019
    Beiträge
    61
    Gefällt mir!
    86
    Du gefällst: 14
    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

  10. Diesen Mitgliedern gefällt dieser Beitrag:


  11. #9
    Junior
    THEMENSTARTER


    Registriert
    Dec 2019
    Beiträge
    33
    Gefällt mir!
    1
    Du gefällst: 9
    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.

  12. #10
    Junior
    Registriert
    Nov 2019
    Beiträge
    61
    Gefällt mir!
    86
    Du gefällst: 14
    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

  13. Diesen Mitgliedern gefällt dieser Beitrag:


  14. #11
    Junior
    THEMENSTARTER


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

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

  16. #13
    Junior
    THEMENSTARTER


    Registriert
    Dec 2019
    Beiträge
    33
    Gefällt mir!
    1
    Du gefällst: 9
    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.

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

  18. #15
    Junior
    THEMENSTARTER


    Registriert
    Dec 2019
    Beiträge
    33
    Gefällt mir!
    1
    Du gefällst: 9
    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.'

  19. Diesen Mitgliedern gefällt dieser Beitrag:


Ähnliche Themen

  1. Brauche Hilfe mit File Sharing
    Von bartelby im Forum Warez Daily Talk & OffTopic
    Antworten: 3
    Letzter Beitrag: 28.03.2019, 17:11
  2. Antworten: 11
    Letzter Beitrag: 23.11.2018, 10:40
  3. (MYSQL) - Brauche Hilfe für 1ne XML Datei importieren in MySQL Datenbank mit PHPMyAdmin möglich?
    Von Scotty im Forum Entwicklung / Programmierung
    Antworten: 7
    Letzter Beitrag: 26.03.2018, 11:08
  4. PHP Suchquery von fremder Seite auf eigener Seite einbinden?
    Von Guest im Forum Webmaster Daily Talk & OffTopic
    Antworten: 2
    Letzter Beitrag: 17.07.2017, 11:47
  5. Brauche NFO
    Von vaptwin im Forum Services
    Antworten: 7
    Letzter Beitrag: 24.05.2017, 23:27

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