______________________________________________________________________________

YouTube Downloader v0.22                                  (C) 2009, 2010 Pepak
http://www.pepak.net/download/youtube-downloader/         http://www.pepak.net
______________________________________________________________________________

Nástroj pro stahování videa z YouTube a dalších webových úložišť videa. Funguje 
z příkazové řádky, odkud přijme libovolný počet URL ke stažení, případně
soubor se seznamem URL. Soubory ukládá pod název z YouTube, preferuje
HD video, pokud je k dispozici.

Podporované weby a formáty URL:

 - Barrandov.tv:

     - http://www.barrandov.tv/54698-nikdy-nerikej-nikdy-upoutavka-epizoda-12

       Pozn.: Jde o streamovaný formát podle protokolu RTMP. Viz níže.
       Přehrát jde například programem The KMPlayer.

 - Blip.tv:

     - http://blip.tv/play/hIVV4tIUAg
     - http://blip.tv/file/1607673/
     - http://thespoonyone.blip.tv/file/1607673/

 - CeskaTelevize.cz

     - http://www.ceskatelevize.cz/ivysilani/309292320520025-den-d-ii-rada/
     - http://www.ceskatelevize.cz/program/port/541-elektronicke-knihy/

     Pozn.: Jde o streamovaný formát podle protokolu RTSP over HTTP. Viz
     níže v poznámkách ke knihovně MSDL_DLL.DLL.

 - iPrima.cz:

     - http://www.iprima.cz/videoarchiv/44524/all/all

 - Markiza.sk:

     - http://video.markiza.sk/archiv-tv-markiza/dnes/36829

     Pozn.: Pořady mohou být tvořeny několika různými video soubory.

 - N-joy.cz:

     - http://n-joy.cz/video/shank-5-minut-hrani/il18d8bbuynet5gk

 - Nova.cz:

     - http://archiv.nova.cz/multimedia/ulice-1683-1684-dil.html

       Pozn.: Jde o streamovaný formát podle protokolu RTMP. Viz níže.
       Přehrát jde například programem The KMPlayer.

 - Rozhlas.cz:

     - http://www.rozhlas.cz/vltava/porady/_zprava/676996

     Pozn.: Pořady mohou být tvořeny několika různými audio soubory.

 - Stream.cz:

     - http://www.stream.cz/video/437197-meziplyn-30

       Pozn.: V obsluze stream.cz je chyba, kvůli které někdy video stáhnout
       jde a jindy nejde. Příčina není známa, vypadá ale na nějaký časovací
       problém v knihovně Synapse, protože stačí vložit na vhodné místo 
       breakpoint nebo prodlevu a hned problém zmizí.

       Pozn.: Stream.cz slouží jako content-delivery-network pro řadu dalších
       služeb, například pro televizní stanici Óčko.

 - TVcom.cz:

     - http://bojove-sporty.tvcom.cz/video/545-budo-show-zlin-2006-dil-1.htm

     Pozn.: Jde o streamovaný formát podle protokolu RTSP over HTTP. Viz
     níže v poznámkách ke knihovně MSDL_DLL.DLL.

 - Youtube.com:

     - http://www.youtube.com/v/b5AWQ5aBjgE
     - http://www.youtube.com/watch/v/b5AWQ5aBjgE
     - http://www.youtube.com/watch?v=b5AWQ5aBjgE
     - http://www.youtube.com/view_play_list?p=90D6E7C4DE68E49E



Od verze 0.15 program zahrnuje podporu pro streamované video podle protokolu
RTMP. Protokol je implementován pomocí knihovny vzniklé drobnou úpravou 
projektu RTMPDUMP (http://rtmpdump.mplayerhq.hu). Tato implementace má řadu
nedostatků, se kterými je třeba počítat:

1) Neumí přesně určit celkovou velikost videa. Velikost je odhadována na
   základě dosud stažené velikosti, dosud staženého času a celkového času
   videa.

2) Z knihovny nejsou do Downloaderu předávány informace o chybách. Místo
   toho je v TEMP adresáři uživatele generován klasický log projektu RTMPDUMP,
   ve kterém lze příčiny případných chyb dohledat.

3) Aby šlo stahovat z RTMP streamů, jsou vyžadovány následující DLL knihovny:
   - RTMPDUMP_DLL.DLL - je součástí YTD.
   - CRYPTOEAY32-0.9.8.DLL - součást OpenSSL verze 0.9.8. V OpenSSL může být
       pojmenována i CRYPTOEAY32.DLL.
   - SSLEAY32-0.9.8.DLL - součást OpenSSL. Alternativní jméno SSLEAY32.DLL.

4) Nelze stoprocentně detekovat, zda bylo video staženo kompletní.



Od verze 0.17 je podporována rodina protokolů kolem MMS a RTSP (mimo jiné
Microsoftí streamy, Real streamy a řada dalších). Protokol je implementován
pomocí knihovny vzniklé drobnou úpravou projektu MSDL (http://msdl.sf.net/).
Počítejte s tím, že cílem bylo mít úpravu hotovou rychle a s minimem změn
v původním projektu (podobně jako u podpory RTMP výše), takže jsem spoustu
možných variant prostě ignoroval; až je budu potřebovat, rozšířím příslušně
úpravy MSDL.

Pozn.: Celková velikost stahovaného streamu je jen odhad, který nemusí být
úplně přesný. Klidně se může stát, že přenos skončí v 93 % a přesto se
ohlásí jako úspěšný - a přehráním skutečně zjistíte, že stream je stažen
kompletně.



Od verze 0.19 jsou podporovány zdroje, ve kterých je jeden pořad tvořen
několika samostatnými mediálními soubory (např. Markiza.sk). YouTube
Downloader momentálně neumožňuje vybrat, které ze souborů se stáhnou a
které ne - stahují se vždy všechny.



SYNTAXE
-------

  ytd.exe <param> [<param>] [<param>] ...

  kde <param> je buď URL, nebo jedna z následujících možností:

    -i <soubor> ... Stáhne všechna URL z textového souboru <soubor>, kde
                    každý řádek reprezentuje jednu URL.
    -o <cesta> .... Soubory se budou stahovat do adresáře <cesta>. Výchozí
                    hodnotou je aktuální pracovní adresář.
    -n ............ Nikdy nepřepisovat existující soubory.
    -a ............ Vždy přepsat existující soubory.
    -r ............ Pokud soubor se stejným názvem existuje, automaticky
                    vygenerovat nový název, který už bude jedinečný.
    -k ............ Pokud soubor existuje, zeptat se uživatele (výchozí).

  Např.: ytd.exe "http://www.youtube.com/watch?v=6wXkI4t7nuc"
         ytd.exe -i c:\temp\seznam.txt
         ytd.exe -a "http://www.youtube.com/watch?v=6wXkI4t7nuc"

  Pokud nejsou uvedeny parametry, spustí se grafická verze programu.



CHANGELOG
---------

  v0.22

    * V grafickém prostředí se zobrazuje nápověda pro jednotlivá tlačítka.

    * Změněna výchozí reakce na existující soubor. Starší verze tento soubor
      bez ptaní přepsaly. Verze 0.22 se uživatele zeptá na požadovanou akci,
      je možné též použít parametry -n (nepřepisovat), -a (přepisovat),
      -r (automaticky přejmenovávat) a -k (ptát se uživatele).

      Grafická verze se ptá pokaždé, když narazí na existující soubor, kromě
      případu, kdy je zaškrtnuta volba "Auto-overwrite" - pak se automaticky
      přepisuje jako v předchozích verzích.

    * Grafická verze se minimalizuje do traye.

    * Pro stahování z YouTube jsou podporovány playlisty (ve formátu
      http://www.youtube.com/view_play_list?p=90D6E7C4DE68E49E) - stáhne
      se vždy celý playlist.



  v0.21

    * Podpora pro Markízu a spol. znefunkčnila YouTube a ostatní providery
      fungující na bázi protokolu HTTP.



  v0.20

    * Česká televize: Podpora pro pořady programu PORT.



  v0.19

    * Některé vytvořené regulární výrazy se z paměti neuvolňovaly, dokud
      aplikace neskončila.

    * YouTube: Video "http://www.youtube.com/watch?v=7INIRLe7x0Y" se ukládalo
      s příponou ".mp4", ale správně je ".flv". Je možné, že jsou i další
      podobné případy, příponu přiřazuji pomocí výčtu a zdaleka nemám 
      kompletní seznam. Když narazíte na video uložené pod špatnou příponou,
      dejte mi prosím vědět.

    * Podpora pro http://www.tvcom.cz.

    * Podpora pro http://www.markiza.sk. Pokud je pořad tvořen několika
      samostatnými soubory, budou staženy všechny.

    * Podpora pro http://www.rozhlas.cz. Pokud je pořad tvořen několika
      samostatnými soubory, budou staženy všechny.



  v0.18

    * Podpora pro změněný design YouTube.



  v0.17

    * Podpora pro protokoly MMS, MMSH, RTSP a jejich varianty tunelované
      přes FTP a HTTP. Podpora je řešena pomocí knihovny MSDL_DLL.DLL,
      která vznikla drobnou úpravou programu MSDL (http://msdl.sf.net/).

    * Podpora pro iVysílání České televize.

    * RTMPDUMP aktualizován na nejčerstvější verzi.



  v0.16

    * Zkráceny výpisy v command-line verzi programu, aby se při stahování
      souborů větších než 100 MB nemnožily řádky s průběhem.

    * Podpora pro videa televize Nova (nova.cz).



  v0.15:
  
    * Restrukturalizován zdrojový kód, aby umožňoval lépe přidávat další
      zdroje médií.

    * Podpora pro stahování streamů přenášených protokolem RTMP. Download
      je řešen pomocí knihovny RTMPDUMP_DLL.DLL, která vznikla drobnou
      úpravou programu RTMPDUMP (http://rtmpdump.mplayerhq.hu). Knihovna
      potřebuje OpenSSL verze 0.9.8, konkrétně knihovny SSLEAY32-0.9.8.DLL
      a CRYPTOEAY32-0.9.8.DLL.

    * Podpora pro Barrandov.tv.



  v0.14:

    * Podpora pro Stream.cz z minulé verze rozhodila ostatní zdroje
      videa, které kvůli tomu nefungovaly. To je nyní opraveno.

    * Upraveno grafické rozhraní (ikonky, tlačítka atd.).

    * Přidána možnost zkompilovat jen CLI nebo jen GUI verzi programu:
      Při spouštění BUILD.BAT můžete použít parametr "CLI" (jen command
      line verze) resp. "GUI" (jen grafická verze) (v obou případech bez
      uvozovek). "CLI" výrazně zmenší výsledný EXE soubor, "GUI" odstraní
      okno konzole. Ve výchozím stavu se kompiluje verze s CLI i GUI
      současně.

    * Knihovna Synapse aktualizována na release 39. Problém se Stream.cz
      (viz upozornění výše) ale stále trvá.

    * Podpora pro download z iPrima.cz (používá Stream.cz).



  v0.13:

    * Přidána podpora pro Stream.cz. Je v tom ale zatím neodhalená chyba,
      viz výše v sekci "podporované weby a formáty."

    * Kromě názvu videa a souboru se nyní zobrazuje i adresa, ze které
      lze video stáhnout "ručně" (např. WGETem).



  v0.12:

    * Nefungovalo stahování filmů, které na YouTube neměly některou
      HD verzi.

    * Kompletně přepracovaná GUI verze. Nyní zobrazuje seznam URL ke
      stažení, umí stahovat víc odkazů najednou atd. 



  v0.11:

    * Experimentální podpora pro vyšší formáty HD videa (720HQ, 1080p).
      Prosím, pokud narazíte na video, kde to nefunguje, pošlete mi
      odkaz.



  v0.10:

    * Kompletně restrukturalizováno, aby se daly snadno přidávat další
      zdroje videa.

    * Změněn tvar všech výstupů, aby byl přehlednější.

    * Podpora pro n-joy.cz.

    * Podpora pro blip.tv.

    * Podpora pro seznam URL v souboru (pomocí parametru -i).

    * Pozor, program nyní potřebuje knihovnu pcre.dll (přiložena).

    * Přidány informace o aplikaci pro GetFileVersionEx. Přidána ikonka.

    * Přidáno jednoduché grafické rozhraní, které se zobrazí, pokud program
      spustíte bez parametrů.



  v0.06:

    * Podpora pro URL ve tvaru http://www.youtube.com/v/(id)



  v0.05:

    * Přeuspořádány zdrojové kódy a buildovací dávka.

    * Podpora pro URL ve tvaru http://www.youtube.com/watch/v/(id)
