![]() |
downloade Funktioniert nicht
hallo
ich versuche mit hilfe von der indy komponente idhttp ein youtube video zu downloaden.
Delphi-Quellcode:
das hir war mein code.
procedure TForm1.Button2Click(Sender: TObject);
var stream: TFileStream; text: string; begin if savedialog1.Execute = true then begin stream := TFilestream.create(savedialog1.FileName ,fmCreate or fmShareDenyWrite); text := idhttp1.Get(Edit1.Text); text := 'http://www.youtube.com/get_video?video_id=' + copy(text, pos('"video_id": "', text) + 13, 11) + '&t==' + copy(text, pos('"t": "', text) + 6, 44); idhttp1.Get(text, stream); stream.Free; end; end; die url funkitioniert in firefox und im TWebbrowser von delphi. im workbegin von idhttp habe ich das progressbar.max gesetzt und im work setze ich die position der progressbar. erstaunlich find ich das das progressbar mehrmals (als 2) hin und her sprinkt. er lauft den weg nicht richtig ab. dann erstellt das programm die datei aber sie ist 0 byte groß. und das programm bleibt hänngen. ich verzweifle wo liegt der fehler. ich bitte um antworten |
Re: downloade Funktioniert nicht
Der Fehler liegt darin, daß wer eine Datei versucht runterzuladen, wobei Youtube gleichzeitig versucht dieses zu verhindern. :roll:
Schau doch einfach mal bei den paar anderen Youtube-Downloadern hier im Forum nach, wie die es machen. |
Re: downloade Funktioniert nicht
Zitat:
|
Re: downloade Funktioniert nicht
frage
warum funktioniert es wenn ich statt dem downloade den webbrowser die url übergebe |
Re: downloade Funktioniert nicht
Zitat:
|
Re: downloade Funktioniert nicht
der useragent war schon auf den firefox gesetzt also hat sich nichts am problem geändert.
|
Re: downloade Funktioniert nicht
Ist HandleRedirects auf True gesetzt?
|
Re: downloade Funktioniert nicht
Dann schau doch mal in die anderen Youtubedownloader rein,
denn viele hier und auch ich wissen nicht, was man da alles machen muß, damit man an die Dateien rankommt, aber die, welche es geschafft haben, wissen es vermutlich und bei einigen sind die Quellcodes auch mit dabei. |
Re: downloade Funktioniert nicht
ja das HandleRedirects steht auf true
und ich weiß auch was ich alles in die url übergeben muss(wie oben schon geschrieben (mit TWebbrowser funkt es) dennerts?) deshalb frag ich mich ja auch was daran faltsch ist kann es villeicht an der kooperation zwischen dem stream und idhttp???????????????? |
Re: downloade Funktioniert nicht
|
Re: downloade Funktioniert nicht
ne sowas wollte ich eigentlich nicht
gibt es nicht noch andere möglichkeiten dateien zu downloaden |
Re: downloade Funktioniert nicht
Gibt viele möglichkeiten zum Beispiel über Kommandozeile mit WGet. Das könntest du dann über Parameter aus deinem Programm aufrufen. Aber was hast du gegen die Online-Service? Es gibt auch einen Vorteil wenn du darüber fährst. Wenn Youtube mal etwas am Code verändert dann läuft dein Programm immernoch da er über den externen Dienst läd welcher ja recht schnell angepasst werden sollte. Du kannst auch mehrere Dienste der Reihe nach abfragen und somit Verfügbarkeit garantieren. Ausserdem bieten die Dienste auch das Umwandeln in andere Formate an was du somit auch in deinem Programm zur Verfügung hättest.
Gruß Stormy |
Re: downloade Funktioniert nicht
So sieht übrigens ein Link aus den so ein Online-Dienst extrahiert:
![]() |
Re: downloade Funktioniert nicht
|
Re: downloade Funktioniert nicht
Versuche es doch mal ob es mit dem Link von mir klappt über die Indys zu downloaden.
Gruß Stormy |
Re: downloade Funktioniert nicht
wie erstellst du den denn aus einer youtube viedeoviewside diese url???
ich weiß auch das das mit meinem link geht nur irgend was reibt sich im programm. |
Re: downloade Funktioniert nicht
Der Link wird von den YouTube downloadern so erstellt. Geht es denn mit dem Link bzw hast du es mal versucht?
Gruß Stormy |
Re: downloade Funktioniert nicht
Die Redirects kann man doch auch einstellen, oder? Nimm mal einen Wert wie 15.
|
Re: downloade Funktioniert nicht
ja der link wirt von den joutube downoadern GENERIERT aber wie ist die frage??
wenn ich nicht weiß wei ich den generiere kann ich es auch nicht ausprobieren. |
Re: downloade Funktioniert nicht
Du sollst ja erstmal mit dem Link von mir versuchen ob es überhaupt damit geht.
Also einfach mal den Link mit den Indys laden und testen. Wenns nicht geht dann ist ja auch egal wie der generiert wird. Gruß Stormy |
Re: downloade Funktioniert nicht
Die Id ist aber nicht konstant. Das heißt, dass wenn die Id bei dir funktioniert muss sie nicht bei jedem funktionieren, oder?
|
Re: downloade Funktioniert nicht
Welche ID? Wenn du die ID im Link meinst die hat nix zu sagen sprich der Link geht bei jedem.
|
Re: downloade Funktioniert nicht
der link funkitioniert bei jedem der im benutzt solange er noch aktuall ist. wenn der eine die url einfach in die adressbar einfügen kann kann das jeder so.
dieser link funkitionirt auch mit idhttp zu downloaden. was ich persönlich interresant finde ist dass meine url auf einen ähnlichen link wie der von Stormy aus (habe nur den den anfang gesehen als ich auf den downloade fenster vom ie gegugt habe). das heißt mein link verweißt irgend wie auf deinen. deshalp hat der link varscheinlich von meiner url nicht funkitioniert. aber wie??? |
Re: downloade Funktioniert nicht
Moin,
die downloader extrahieren das denke ich mal auch alle nur aus dem Quelltext der Seite (in Firefox STRG+U). Wenn du z.B. den Link von diesem Video ![]() dann öffne die Seite und lass dir davon den Quelltext anzeigen. Dann such im Quelltext die Zeile "var fullscreenUrl =" (ohne die ""). Hinter dem = siehst du dann einen langen String bzw Link. Suche nun darin den Parameter "video_id=" und kopiere dir den Text von einschließlich "video_id=" bis einschließlich "&title". Der String sähe dann so aus: video_id=d7QH62aFBno&l=199&sk=HPk043x9jmgxZekufsEf TqUTAK8iJdujC&ad_logging_flag=1&t=vjVQa1PpcFPFEdm3 LnDOSawgcx4y2X4pj7iGmSl3pq0%3D&vq=None&title Jetzt fügst du nur noch ![]() Der fertige Link sähe dann also so aus: ![]() Du musst also mit deinem Programm einfach nur den diese Zeile im Quelltext der Youtube-Seite auf dem sich das Video befindet parsen und dann nur noch zusammensetzen - Fertig. Gruß Stormy |
Re: downloade Funktioniert nicht
wenn ich den link einfüge bleibt er wieder hängen
wenn ivh den link mit dem title=**** krige ich einen 400 fehler ich glaube die 400 bedeutet das ein leerzeichen in der url ist. kann mir bitte jemad zu einen der beiden problemen eine lösung liefern DANKE |
Re: downloade Funktioniert nicht
Zitat:
Zitat:
|
Re: downloade Funktioniert nicht
Hi,
also bei mir klappt das! Habe es zwar nicht mit den Indys sondern mit URLDownloadToFile getestet aber damit gehts.
Delphi-Quellcode:
Btw. welche Version von den Indys hast du? Wenn du es unbedingt mit den Indys machen willst
uses UrlMon;
var DownloadURL, Destination: String; begin DownloadURL := '...'; //Die extrahierte Youtube URL vom Video Destination := 'C:\test.flv'; //Speicherort URLDownloadToFile(nil,PChar(DownloadURL),PChar(Destination),0,nil); end; dann probier mal eine andere Version ansonsten sollte aber mein Vorschlag reichen. Gruß Stormy |
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:22 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz