Tahame videa z flashovych prehravacov

14.02.2007 13:05

Pred istym casom som narazil na stranku minuscule.tv a dost sa mi zapacilo video, ktore tam viselo. Chcel som si ho teda stiahnut k sebe pre pripad, ze by sa so strankou v buducnosti cokolvek stalo - odstranili by z nej video, pripadne by cela prestala existovat, clovek nikdy nevie.

Stranka je vsak flashova a po lusteni zdrojakov sa clovek dostane maximalne k nejakym flashovym embedom, v URL ktorych nie su ziadne uzitocne informacie. Rovnaka situacia je aj na vsetkych video hosting serveroch - YouTube, metacafe a ostatnych, ktore ma v tejto chvili nenapadli. Na nich je tiez len nejaky flashovy prehravac, ktory dostane nejaky identifikator videa a dalej uz taha na vlastnu past, takze prostym nakuknutim do zdrojakov nevykutrame nic.

Celkom prijemne je vsak zistenie, ze aj tieto flashove prehravace tahaju to, co maju prehravat, obycajnym http protokolom. Nasadime totiz na ne wireshark a ideme sledovat, co sa na drote deje. Na tento ucel som si vybral Free Song interpretovanu panom Richardom Stallmanom.

V prvom rade treba zmazat cache prehliadaca (to je snad jasne). Potom nastavime wireshark, aby chytal http packety. V Capture Options do kolonky Capture Filter vpiseme tcp port http, spustime chytanie a do svojho oblubeneho browsera (hodilo by sa, keby podporoval flash) pastneme linku na Free Song. Nechame par sekund tahat, potom mozeme capturing packetov zastavit a zavriet browser. Chvilku sa pokochame utesenym poctom packetov, ktore sme chytili, a potom mozeme zavriet statistiky a prejst do hlavneho okna wiresharku.

V nom si mozeme vsimnut kopu http queries, ktore boli od nas odosielane - tahali sa html dokumenty, obrazky, flashove embedy, ale ich velkost je mala v porovnani s velkostou videa, ktore sa stahovalo. Preto vacsina packetov patri prave tomuto videu. Zvolime si teda jeden z packetov od konca a v kontextovom menu vyberieme Follow TCP Stream.

Ak mame stastie (co pravdepodobne mame, subor je velky), v modrej casti konverzacie uvidime Content-Type: video/flv, co znaci, ze je to prave ten flv stream, ktory chceme. Vacsina flashovin pouziva flv format, film na minuscule.tv je vsak napriklad ulozeny v 36 megabajtovom swf-ku, takze tu je priestor na improvizaciu. :)

Nas zaujima predovsetkym ta cervena cast, tj. query, ktora sla od nas. Preco? Aj keby sa mohlo zdat, ze uz staci ulozit odpoved od servera (ktora je nekompletna jednak pretoze sme zastavili stahovanie pred stiahnutim celeho videa), skusil som to spravit takto (po downloade celeho videa), ale v subore s odpovedou nebolo cele video, ale iba cca jedna jeho tretina. Nespiritizujem velmi nad pricinou, mozno sa to taha po castiach a resumuje sa to... bohvie. Sejvneme teda cervenu cast konverzacie do suboru (povedzme query.txt) a mozeme wireshark pokojne zavriet.

Prejdeme do shellu a posleme celu query netcatom na prislusny server, http port. Skusal som aj wget na cisto URL z tejto query, ale to samozrejme neslo kvoli kope stavovych (a zrejme aj autentifikacnych) premennych v nej obsiahnutych. Preto to napchame do netcatu a nestarame sa.

ziman@asterix ~ $ grep '^Host: ' query.txt
Host: chi-v146.chi.youtube.com
ziman@asterix ~ $ cat query.txt | nc chi-v146.chi.youtube.com 80 > free_song.flv.http

Tuto si trosku pockame, pripadne mozeme na dotycny subor pustit watch ls -lh, aby sme videli, ako nam utesene rastie pred ocami.

Po stiahnuti si zistime, kolko riadkov zabera http hlavicka odpovede a zmazeme ju (rurou cez sed do ineho suboru alebo povedzme cez sed -i).

ziman@asterix ~ $ head -n 10 free_song.flv.http | nl
    1 HTTP/1.1 200 OK
    2 Connection: close
    3 Content-Type: video/flv
    4 ETag: "478306893"
    5 Accept-Ranges: bytes
    6 Last-Modified: Mon, 11 Dec 2006 16:29:32 GMT
    7 Content-Length: 5068342
    8 Date: Tue, 13 Feb 2007 10:12:37 GMT
    9 Server: lighttpd/1.4.11
    10
ziman@asterix ~ $ cat free_song.flv.http | sed '1,10d' > free_song.flv
ziman@asterix ~ $ ls -l free_song.flv
-rw-r--r-- 1 ziman users 5068342 2007-02-13 11:44 free_song.flv

Ostava nam uz iba pokochat sa dokonalou zhodou cisel v poli Content-Length http responsu a skutocnou velkostou suboru a postvat na nas cerstvucko stiahnuty flv subor mplayer, pripadne mencoder; podla gusta a osobnych preferencii.

--

Par poznamok pre chronickych rypacov. Ano, viem, ze existuje milion pluginov do firefoxu, ktore dokazu tahat videa z youtube, metacafe, bla bla bla..., na jedno kliknutie, bla bla, bez namahy, bla bla. Na to, aby som to riesil takouto cestou, som mal par dovodov:

  • Vymyslal som sposob, ako stiahnut video z uz spomenuteho minuscule.tv, ktory nie je sajta na videa typu youtube, navyse nepouziva flv, takze pre to ani nie su pluginy do FF.
  • Nepouzivam FF, ale Operu, pre ktoru takto pluginy nejestvuju (pokial viem). FF nainstalovany mam, ale zase pren nemam prehlad o pluginoch. Musel by som googlit, hladat, zhanat... Aj ked by to asi zabralo menej casu, predsa len zazivnejsie sa mi vidi zistit, ako to funguje vnutri.

A nie, nemam potrebu drsne sa tvarit a nemyslim si, ze toto je strasna h4x0rina, ako ktosi kdesi spomenul. Riesil som tento problem a zdalo sa mi to zaujimave, tak o tom pisem.

    • Dobry clanok, pekne 15.02.2007 | 09:34
      Bertram   Návštevník

      Dobry clanok, pekne objasnuje ako to funguje vnutri, ja by som ale dodal ze existuju aj trocha viac userfriendly riesenia. (Myslim ze som niekde videl plugin do FF)

      • fakt 17.02.2007 | 13:07
        Avatar blackhole_redhawk   Používateľ

        ide to aj jednoduchsie ale ziman premyslal a urobil to cisto :)

        Plug iny su a su aj softiky ale ako vies ci ten soft ci plugin o tebe nieco neposle?
        ----------------------------------------
        Hlúposť užívateľa je úmerná jeho právam.

        ---------------------------------------- Hlúposť užívateľa je úmerná jeho právam. Podstatou pirátstva nie je túžba ľudí kradnúť, ale neschopnosť firiem predať im veci, ktoré chcú.
    • hh 15.02.2007 | 17:27
      Avatar dc   Používateľ
      aneb kdyz jde neco udelat slozite, proc to delat jednoduse ze? :) http://www.softpedia.com/get/Internet/Download-Managers/Youtube-Grabber.shtml
      --- [root@holy-terminal]# /etc/rc.d/world restart Dilino phenel, so džanel, goďaver džanel, so phenel.
    • dc etc: myslim ze na konci 15.02.2007 | 18:40
      Avatar betmen   Používateľ

      dc etc:
      myslim ze na konci ziman jasne napisal ze vie o existencii pluginov, ktore to dokazu. a su tam aj dovody preco na to siel takymto sposobom :)

      ______________
      nález plný strát

      ______________ kam by som chodil...na dvor
      • pluginy pre ff 15.02.2007 | 20:17
        ziman   Návštevník

        Len je skoda, ze chronicki rypaci necitaju poznamky pre chronickych rypacov :)
        --
        On neni mrtev, on jenom spi!

      • re: 15.02.2007 | 22:22
        disorder   Návštevník

        predpokladam, ze ja som ten etc, ze :)

        ja som nepisal link na pluginy ale stranky, ktore to zacnu rovno stahovat ako file :P

        ---
        Windows NT was supposed to hit Unix hard. It did - like a bug hitting a windshield.

    • moje subjektivne hodnotenie 15.02.2007 | 20:47
      chess   Návštevník
      pekne, jednoducho a zrozumitelne napisany clanocek. dobra praca. ;-) respect.
    • Dobra praca, vyskusam ;) 16.02.2007 | 10:17
      gza   Návštevník

      Dobra praca, vyskusam ;) btw, tiez pouzivam Operu takze FF a pluginy sa mi nechcu riesit.

      -------
      I'm lowkey like seashells.

    • btw je sposob s konqueorom 16.02.2007 | 21:06
      deux   Návštevník

      btw je sposob s konqueorom (ziadne "pluginov" uplne zakladny)
      ------
      memories of my previous visit here lurked in the shadows

      • konqueror 16.02.2007 | 23:28
        ziman   Návštevník

        Tak nam o nom napis, ked uz nie clanok, tak aspon ideu strucne do commentu. Lebo si dokopy nic nepovedal :) Urcite to tu zaujima mnoho ludi...

        --
        On neni mrtev, on jenom spi!

        • (jednoducho 19.02.2007 | 22:50
          deux   Návštevník

          (jednoducho povedane)konqueor vypisuje (statusbar) co prave flash riduje (ak sa kq spravne nastavi), staci potom uz opisat (statusbar sa refreshuje) trebars zo screenshotu :D alebo ak si to clovek logne
          ------
          memories of my previous visit here lurked in the shadows

    • Taky drobny detail k tomu 17.02.2007 | 08:26
      wire   Návštevník

      Taky drobny detail k tomu wgetu, nadava sice ak mu to len tak zadas ale ak mu povies presne co je opsna a co je adresa tak je pomerne spokojny.

      Moj pokus:
      Zachytene snifferom->
      GET /videodownload?version=0&secureurl=uAAAA....(blablabla) HTTP/1.1
      Host: vp11.video.l.google.com
      ....(nepodstatny balast)
      ....

      Takze staci
      #> wget -O video.flv "http://vp11.video.l.google.com/videodownload?version=0&secureurl=uAAAA....(blablabla)"
      Kuzlo je v uvodzovkach a v opsne -O kde je treba zadat output file lebo to inak bude ciet nazvat tak sialene ze vyhodi error ;) a potom uz len caka :)

      Resolving vp11.video.l.google.com... 72.14.221.176
      Connecting to vp11.video.l.google.com|72.14.221.176|:80... connected.
      HTTP request sent, awaiting response... 200 OK
      Length: 92,495,237 (88M) [video/x-flv]
      20% [======> ] 18,838,188 48.79K/s ETA 23:38

      • ozaj to funguje :) 17.02.2007 | 11:16
        ziman   Návštevník

        Mas pravdu, dokonca sa mi podarilo takto stiahnut video 'flagged as inappropriate', bez akejkolvek autentifikacie (pricom klasickym sposobom, rovnako ako s pouzitim youtube-dl.py skriptu musis zadat meno/heslo a potvrdit svoj vek), co ma celkom prekvapilo. Takto slo stiahnut vsetko, o co som sa teraz pokusil, tak neviem, ci som v case pisania clanku nieco pokaslal (shellovske prikazy quotujem dosledne, v tom to nebude), alebo ozaj niektore sajty vyzaduju autentifikaciu cookie/post premennymi. Kazdopadne je celkom uzitocne, ze to funguje aj takto. :)

        Kedze v unixoidnych filesystemoch mozu nazvy suborov obsahovat cokolvek okrem binarnej nuly a lomky, tak nazov suboru, pokial nie je pridlhy, afaik nerobi problem (ja som s tym este problem nemal); ak tam to -O neuvedies, tak sa subor pomenuje poslednou castou URLky, z ktorej tahas, co sa da potom v pohode premenovat :) Dolezite je asi len, ako vravis, nezabudnut vyquotovat tu url, pretoze obsahuje ampersandy :)
        --
        On neni mrtev, on jenom spi!

    • hezky 17.02.2007 | 13:06
      Avatar blackhole_redhawk   Používateľ

      pekna cista praca :)

      *****
      ----------------------------------------
      Hlúposť užívateľa je úmerná jeho právam.

      ---------------------------------------- Hlúposť užívateľa je úmerná jeho právam. Podstatou pirátstva nie je túžba ľudí kradnúť, ale neschopnosť firiem predať im veci, ktoré chcú.
    • nic v zlom 20.02.2007 | 19:05
      Avatar blackhole_kepro   Používateľ

      https://addons.mozilla.org/firefox/2390/ :)

      sry nedocital som do konca... ze pre operu...

    • pluginy & spol 20.02.2007 | 20:51
      ziman   Návštevník

      Ok, tak este raz (a naposledy). Nie ze by na tom zalezalo, ale napisem to. Viem, ze ak chcem tahat z youtube, tak si na to stiahnem plugin do firefoxu a mam to na dve kliknutia.

      Ale clanok nie je o tomto.

      Clanok je o sposobe, ako video stiahnut, ak z nejakych dovodov nepouzijem/nechcem/nemozem/nedaju sa pouzit uz existujuce popularne riesenia. Napriklad:
      1) nepouzivam FF
      2) som paranoik a nedoverujem FF pluginom
      3) stranka nie je standardny video hosting, takze na to nie je plugin (toto bol pre mna dovod cislo jedna; navyse to nezavisi od usera, user s tymto nic nespravi); v poslednej dobe som sa stretol s niekolkymi takymito pripadmi
      4) chcem vediet, ako to funguje
      atd atd atd atd...

      Ja naozaj nechapem. Vyslovene som o tomto napisal na konci clanku "par poznamok pre chronickych rypacov", a napriek tomu velka cast komentarov preukazuje, ze komentatori si ich bud neprecitali, alebo nepochopili.

      Ako mozem kritizovat nieco, co som neprecital? Wtf?

      --
      On neni mrtev, on jenom spi!

    • Ad: Tahame videa z flashovych prehravacov 12.03.2007 | 13:52
      noface   Návštevník

      Ja som nieco podobne nasiel pre subory .mov.

    • Re: Tahame videa z flashovych prehravacov 21.03.2007 | 06:39
      lio04   Návštevník

      stačí aj táto site: http://www.videodl.org/ :) a potom už len prepísať príponu súboru na *.flv
      platí pre youtube & google

    • Re: Tahame videa z flashovych prehravacov 31.05.2007 | 15:19
      MortarMan   Návštevník

      [I am using ubuntu 7.04+(beryl)]
      LOL ?
      Ja flash video stiahnem cez VideoDownloader FF addon a zmenim kontajner (napr .wmv) cez Simplified Universal Player Encoder & Renderer alebo v linuxe cez MEncoder

      ....som chronicky rypac , rip
      +pluginy do firefoxu su na getfirefox stranke , tam najdes vsechno , napriklad mne ukazuje pocasie na 15 dni

      • Re: Tahame videa z flashovych prehravacov 31.05.2007 | 22:35
        Avatar y   Používateľ

        LOL? - to by si mal ty vediet...

        v clanku je priamo napisane, ze ziman nepouziva firefox a pustat ho kvoli downloadu videa je fakt blbost ;-) a vediet, ako to FUNGUJE zvnutra je PODSTATNEJSIE aj preto, lebo ked pride nieco, na co hned pluginy (inac rozsirenia, plugin je napr. flash player alebo quicktime) hned nebudu, tak ziman si to bude vediet stiahnut a vas necha aj z vasimi firefoxami...no, necha vas cakat za rozsireniami :D
        ==
        are you canadian?!

        == Don't buy drugs...Become a pop star and get them for free!
        • Re: Tahame videa z flashovych prehravacov 17.06.2007 | 20:09
          MortarMan   Návštevník

          v clanku je priamo napisane, ze ziman nepouziva firefox a pustat ho kvoli downloadu videa je fakt blbost ;-)

          1,na download videa mi stači jedno kliknutie , kym hore maš navod trojstranovy 0.o
          2,ked pride nieco , na co hned pluginy nebudu , je mozne , ze to nebude vediet ani mr. Z :)
          3,ked take nieco budem chciet , tak take veci rieši google
          4,keby to chcelo aj nejaky addon do FF , tak by sa dal poslat imejlik do FF HQ (sice neviem či by sa na mna nevysrali)

          +VideoDownloader pre FF stahuje veela formatov z veela stranok
          A to nehovorim lebo som cool , sice je to mozne ^.^ ale ze to niekto moze tiez skusit , lebo je to fajne a odporucam (getfirefox.com)

          • Re: Tahame videa z flashovych prehravacov 17.06.2007 | 22:23
            Avatar marvin   Používateľ

            "Aj ked by to asi zabralo menej casu, predsa len zazivnejsie sa mi vidi zistit, ako to funguje vnutri."
            =>Keby mu islo len o stiahnutie tych videi co najrychlejsie/najlahsie tak to spravi nejakym pluginom.
            You both are missing the point.Accept it;)
            ------
            42.nothing more needed

            ------ Kto je Španielsko?Prečo je Hitler?Kedy je vľavo?
      • Re: Tahame videa z flashovych prehravacov 01.06.2007 | 23:15
        gza   Návštevník

        si necital cely clanok alebo si fakt rypac + pocasie na 15dni? to ti je tak na dve veci. meteorologovia sami hovoria ze predpoved na viac ako 2 dni nema velmi zmysel.... tak neviem, si rad informovany bludmi? :)

        -------
        Get vaccinated, my logo is branded in your skin.

        • Re: Tahame videa z flashovych prehravacov 17.06.2007 | 19:52
          MortarMan   Návštevník

          Noo... To počasie ukazuje dosť presne... By si sa divil , že počasie nedavaju len na TV W@rkýža

    • Re: Tahame videa z flashovych prehravacov 09.06.2007 | 21:37
      pomali   Návštevník

      Aj ked je tento clanocek starsi a cital som ho uz davnejsie, vcera napadlo mi ze si ho vyskusam. Poriahol som Wireshark-a a oprasil wget na mojom portable USB ... Installol Wireshark (+winPcap) a pekne idem analyzovat ... nasiel som co som hladal tak zatvorim ho a prejdem do cmd.exe (uz je snad jasne ze idem na win) a pisem >wget -O assasin.flv "...youtube.com/get_video?...."
      a po prvych par bajtoch potiahnutych z youtube (cez wget) naskoci krasny novodoby winXP Blu scren of Smrt ... ze nieco sa v pamati zle zapisalo a tak idem(ja System) idem zhodit system.
      tak som restartom masinku a pustil este raz pekne od zaciatku ale tento raz som dostal BSoD uz pri Wiresharkovi.
      Dnes na treti krat mi to islo bez problemov:D ... nic som nemenil (iba som preinstaloval Wiresharka lebo mohol byt corrupted)

      ze ci nahodou nemate napady v com by to mohlo byt (btw+PS: odpovede typu 'ved predsa m$' nepotrebujem:P)