Po dlouhé době (nebudu tu popisovat jak se mám špatně k smrti kvůli toho kde žiju :'( ) jsem zase něco malého naprogramoval. Tedy ani ne tak já, toto jsou splácaniny programu 3 lidí:
- Ten co udělal to GUI které vidíte, já jsem ho jen upravil
- Další program uměl stahovat jen po jednom ale stahovat uměl, což ne ten první program
- Můj vlastní kód
A co vlastně ten program umí: Umí stahovat celkem 5 způsoby a sice:
- Hledání pomocí YouTube API na daný výraz ve počtu videích až 999; poté stažení vybraných
- Hledání pomocí YouTube API na daný výraz ve počtu videích až 999; poté stažení všech
- Vyparsování zdrojového kódu hledání v počtu neomezené; poté stažení vybraných
- Vyparsování zdrojového kódu hledání v počtu neomezené; poté stažení všech
- Nahrání videí do schránky a přímé stažení videí z podporovaných serverů (akt. pouze YouTube)
Tyto módy stahování ještě patrně přidám:
- Možnost zapnout hlídání schránky, takže se do schránky načtou adresy/a YT videí a ty se vloží do programu; asi se bude stahovat až uživatel potvrdí že vkládání dokončil, možná je ale i druhá možnost
- Vkládání do
TextBoxuprogramu ručně - Hloubkové automatické hledání – čili vloží se adresa prvního hledání: a nastaví se jak dále se má vyparsovat, tedy se jen změní to číslo na konci. Problém je ten že se mi nepovedlo implementovat žádný browser ani jádro (Trident, Gecko, WebKit) a bez přihlášení, popř. jiné personifikace to neukáže tak dobré výsledky; pokud se mi toto podaří vyřešit, určitě to implementuji
- Postupné přidávání nových vyparsování výsledků – toto je náhrada za bod 4) dokud se mi to nepodaří vyřešit..
Program ve výchozím stavu stahuje ve formátu MP4. Pokud je k dispozici formát MP4 HD 720, stáhne v něm, pokud ne, zkouší to s formátem MP4 480, pokud ani toto není k dispozici, stáhne v FLV 240 – to by měli mít dostupné všechny videa.
V plánu je ještě rozpoznávání zda ten soubor/video již stahnuto nebylo. K tomu si budu muset napsat vlastní knihovnu médií. Trvalo mi to docela dlouho (skoro 5 dní) to napsat. Prvně jsem zkoušel ty WebBrowsery, které jsem nevyřešil, poté mi nefungovala třída XmlDocument. Chtěl jsem do ní ve smyčce načítat XML a vždycky opravit tu chybu kterou mi to vyhodilo. Totiž HTML kód YT není úplně validní. 🐛
Ale pak mi to začalo vyhazovat úplně nesmyslné chyby, tak jsem se na to vykašlal a za dnešek jsem dopsal XmlParser, který mi to opravil ty chyby a řekl mi o všech tazích které v tom byly. Také bych chtěl naučit program stahovat playlisty oblíbené a ostatní playlisty (na ostatní playlisty je možná nějaké API, na oblíbené nevím). Chtěl jsem tu toho napsat víc ale opravdu mi už neslouží paměť.. :'(


