YouTube Downloader - programování

Started by pepak, May 07, 2011, 05:41:37 PM

Previous topic - Next topic

pepak

Protože komentáře pod články nejsou vhodným prostředím pro souvislou diskusi, rozhodl jsem se přesunout programovací dotazy sem.

pepak

Quote from: petrsuprovej programek...konecne solidni yt downloader. tech yt downloaderu je spousta ale tenhle je nejlepsi. podporuje hodne serveru, je rychli a stabilni. dekuji pepaku! jenomze chtel jsem se podivat na zdrojak tak jsem ho otevrel v delphi 2009 a pri kompilaci mi vyhodilo chybu pri

constructor TNestedDownloader.Create(const AMovieID: string);
 begin
 inherited;
 fNestedDownloader := nil;
 DirectUrlRegExp := RegExCreate(REGEXP_EXTRACT_DIRECTURL);
 end;

//bug message: E2251 Ambiguous overloaded call to 'RegExCreate'

prosim, nevis mi poradit jak to fixnout? predem dekuji
Koukni do souboru uPCRE.pas a vyházej ty RegExCreate, které nejsou v {$ifdef unicode}. Až budu dělat další verzi, tak to opravím čistě.

pepak

Quote from: petrtak jsem to teda zkusil...
 vyhazet ty funkce (RegExCreate, které nejsou v {$ifdef unicode}), jenomze pak ten program mrzne, nejde to. kdyz muzes, uzpusob to prosim aby to jelo s delphi 2009. predem moc dekuji.
V souboru Source\Lib\Pepak\uPCRE.pas smaž na řádku 66 část = [] a už ti to půjde přeložit. Mrznutí jsem nepozoroval, ale nedivil bych se, kdybys měl blbě nastavené prostředí (cesty k adresářům a podobně) – viz sekce Kompilace v dokumentaci. Obecně doporučuji kompilovat z příkazové řádky skriptem build.bat, protože tam už jsou všechny závislosti vyřešeny.

pepak

Quote from: petrsmazal jsem tu cast ,,= []" na radku 66 v uPCRE.pas a ted to jede kompilovat bez problemu. dekuji moc ze ses na to podival. chtel jsem upravit GUI, tak jsem otevrel .dproj a pak GUI\VCL\guiMainVCL.pas, upravil jsem ten formular, ale kdyz ten program zkompiluji, formular je beze zmeny, jak to mam prosim udelat? promin za takovou otazku ale v delphi nejsem profesional ako ty, venuji se mu zatim jenom par mesicu
Standardně je YTD nastaven na použití GUI přímo pomocí Windows API – je to podstatně kratší než ve VCL (kterou standardně používají Delphi) a jde s tím dělat pár vylomenin, které se ve VCL nedělají tak dobře. Takže buď musíš GUI upravovat taky ve WinAPI (Source\GUI\WinAPI), nebo musíš zapnout používání VCL (Source\YTD.inc, znič řádek {$DEFINE GUI_WINAPI} a přebuilduj celý projekt dávkou Source\build.bat).

pepak

Quote from: petrsmazal jsem ten radek {$DEFINE GUI_WINAPI} v Source\YTD.inc a jde to. uz se da editovat GUI. pepaku, jses proste kapacita. jenom ted pri spusteni je console stale vonku, spolu s GUI, neskova se. a taky nejde editovat ikona v Project\Options\Application, je to disabled. jak to mohu spravit? dekuji moc
Konzole zůstává vidět, pokud je nadefinovaný symbol DEBUG (viz YTD.dpr, řádek 361 až 367). Mám dojem, že ho vyšší Delphi, než používám já, mají ve standardním stavu zapnutý. Kde se to vypíná nevím.

Editovat ikonu možná nejde kvůli tomu, že v projektu dost masivně využívám podmíněný překlad a Delphi se s tím nevyrovnávají úplně dobře (to ostatně zjistíš, až si zkusíš přidat nějaký formulář). Nejjednodušší asi bude použít nástroj typu ResEdit a oeditovat to přímo v YTD.res. (Ne že bych chápal, k čemu potřebuješ měnit ikonku, pokud tedy můj program nechceš prodávat pod svým jménem.)

pepak

Quote from: petrprodavat rozhodne ne, ja jsem zastance freeware. je to tvuj program, tys mu venoval hodne casu, ja se nepysnim cizim perim. GUI jsem si chtel upravit sam pro sebe jelikoz je to uzitecnej program ktery budu urcite hodne casto vyuzivat
Quote from: petrzkusil jsem tedy smazat {$IFNDEF DEBUG} na radku 324 (spolu s {$ENDIF} na radku 329) v YTD.dproj a vejda, console jse schovala a program jede jak ma.

pepak

Quote from: petrted kdyz jsem ho upravil na D2009 (odstranenim ,,= []" na radku 66 v uPCRE.pas a take odstranenim {$DEFINE GUI_WINAPI} na radku 48 v YTD.inc) kdyz prerusim stahovani tlacidlem stop, dostanu hlasku z IDE:

Project YTD.exe raised exception class EThread with message
 'Thread Error: The handle is invalid (6)'.

cim to je, jak to muzu prosim fixnout?
Funkčnost v Delphi 2009 je tvůj boj, zejména za situace, kdy měníš i další části kódu. Já jsem se jim věnoval jen natolik, aby šly zkompilovat a aby se při zběžném pohledu ve standardním nastavení tvářily, jako že fungují. Pokud v nějaké upravené variantě (kterou pro mě použití VCL pro grafické prostředí je) nefungují, budeš si to muset odladit sám. Předběžně a podle popisovaného chování bych se vůbec nedivil, kdyby to byl problém s kompatibilitou threadů mezi D5 a D2009 a možná by ti pomohla změna v {$DEFINE DELPHITHREADS} v YTD.inc. (Tento soubor bys mimochodem měl i s komentáři důkladně nastudovat, pokud se chceš v YTD vrtat.)

petr

Quote from: pepak
Quote from: petrted kdyz jsem ho upravil na D2009 (odstranenim ,,= []" na radku 66 v uPCRE.pas a take odstranenim {$DEFINE GUI_WINAPI} na radku 48 v YTD.inc) kdyz prerusim stahovani tlacidlem stop, dostanu hlasku z IDE:

Project YTD.exe raised exception class EThread with message
 'Thread Error: The handle is invalid (6)'.

cim to je, jak to muzu prosim fixnout?
Funkčnost v Delphi 2009 je tvůj boj, zejména za situace, kdy měníš i další části kódu. Já jsem se jim věnoval jen natolik, aby šly zkompilovat a aby se při zběžném pohledu ve standardním nastavení tvářily, jako že fungují. Pokud v nějaké upravené variantě (kterou pro mě použití VCL pro grafické prostředí je) nefungují, budeš si to muset odladit sám. Předběžně a podle popisovaného chování bych se vůbec nedivil, kdyby to byl problém s kompatibilitou threadů mezi D5 a D2009 a možná by ti pomohla změna v {$DEFINE DELPHITHREADS} v YTD.inc. (Tento soubor bys mimochodem měl i s komentáři důkladně nastudovat, pokud se chceš v YTD vrtat.)


teda, skutecne je to boj, Thread Error: The handle is invalid (6) jsem uz vyresil, ale stale jeste bloudim kodem. ale de to, D2009 si s nim rozumi stale vice. z jednoducheho programku ses udelal pomerne robustni aplikaci  :) takze je tam hodne co resit. kdyz budes delat aktualizaci nejakeho downloaderu pro urcitou stranku, ku prikladu: markiza.sk, bude stacit vymenit: downMarkiza.pas a znovu zkompilovat?

ted trochu odbocim, ale neda mi aby jsem se te nezeptal a nepoprosil o radu...kdyz stahuji epizody superstar z markiza.sk pro moji sestru, de to rychle, video je kvalitni, jenomze mnoho epizod je rozdeleno na 27 casti ve formatu mp4, ku prikladu tato http://video.markiza.sk/archiv-tv-markiza/superstar/62745 to by az tak nevadilo, ale kdyz jsem zkousel tyto casti spojit bez rekomprese s aplikaci avidemux nebo yamb, tak zvuk se rozchazi, nepomohl ani timeshift, nevim co s tim, urcite nejsem sam kto si s tim nevi dat rady, protoze mnoha inych videii z teto stranky spojit bez problemu jdou s uz spomenutymi aplikacemi.  prosim, nevis co s tim? byl bych ti hodne vdecny, a taky hodne lidi

pepak

Quote from: petrkdyz budes delat aktualizaci nejakeho downloaderu pro urcitou stranku, ku prikladu: markiza.sk, bude stacit vymenit: downMarkiza.pas a znovu zkompilovat?
Jasně.

Quotekdyz jsem zkousel tyto casti spojit bez rekomprese s aplikaci avidemux nebo yamb, tak zvuk se rozchazi, nepomohl ani timeshift, nevim co s tim, urcite nejsem sam kto si s tim nevi dat rady, protoze mnoha inych videii z teto stranky spojit bez problemu jdou s uz spomenutymi aplikacemi.  prosim, nevis co s tim? byl bych ti hodne vdecny, a taky hodne lidi
Ne. Nepřevádím videa, nemám s tím žádné zkušenosti.

nick

Videa (např 3) v Avidemuxu je třeba napřed převést do formátu AVI a pak lze bez problému spojovovat a pracovat s nimi. Na netu se o tom kdesi píše. Googl.

kafcha

ahoj, je nejak mozne stahnou videa primo ve formatu mp4? pripadne rucne pres rtmpdump, nebo je jedina moznost flv
dik

pepak

Záleží na tom, co server pošle. YTD nedělá žádné konverze ani úpravy.

kafcha

jasny, jsem prave spis myslel, jestli muzu na server poslat pozadavek co chci dostat. je pravda ze vlasne moc netusim jak se flv od mp4 lisi a jestli vlastne mp4 vubec muze byt vystup ze streamu, tak jsem si rikal ze nez to slozite hledat, tak se te zeptam ;]

pepak

Jak na kterém serveru. Obecně YTD žádá o nejkvalitnější verzi, jakou jsem byl schopen najít. Nevylučuji, že v některých serverech je k dispozici i kvalitnější verze, v tom případě ale potřebuji uživatelský postup, jak spustit její přehrávání.

Archimonde

Ahoj, jsem dlouhodobým spokojeným uživatelem YTD, ale teď asi zase iPrima něco změnila, že ani s nejnovější verzí nejde stáhnout např. nová série Jste to co jíte... v adresním řádku se objeví jen toto: http://www.iprima.cz/videoarchiv/231094/2287/all
ale dostat z toho odkaz na to konkrétní video je problém, našel jsem "embedhere46383b0e8bf0f555836c1c0df91b61b6", ale i když jsem zkoušel dostat to za "iprima.cz/videoarchiv" tím, že jsem zkoušel různé varianty, ale bohužel nic...
YTD hlásí chybu: Chyba RTMPDUMPu: Closing connection: NetStream.Play.StreamNotFound(EDownloadThreadError). Šlo by to nějak stáhnout?
Díky moc

Quick Reply

Note: this post will not display until it has been approved by a moderator.

Name:
Email:
Verification:
Please leave this box empty:
Type the letters shown in the picture
Listen to the letters / Request another image

Type the letters shown in the picture:
Shortcuts: ALT+S post or ALT+P preview