| Autor |
Beitrag |
jackie05
      
Beiträge: 357
|
Verfasst: Fr 05.09.08 00:49
Hallo,
wie kann ich in Delphi einen Youtube link in Download link umwandeln?
Ich wäre euch sehr dankbar, wenn Ihr mir tips geben könnt oder vieleicht ein beispiel Code posten könnt.
MfG
Moderiert von Christian S.: Topic aus Delphi Language (Object-Pascal) / CLX verschoben am Fr 05.09.2008 um 01:01
Zuletzt bearbeitet von jackie05 am Mo 29.09.08 22:35, insgesamt 1-mal bearbeitet
|
|
Dunkel
      
Beiträge: 682
Mac OS X Snow Leopard
Xcode 3.1
|
Verfasst: Fr 05.09.08 01:06
Hallo!
Öhm, Du möchtest Youtube-Videos runterladen, oder?
_________________ Ich streite einsam mich mit dieser Oberflächenwelt
Gutes sei ein löblich Brot von dem ich zehre - bis zum Tod [Das Ich - Im Ich]
|
|
jackie05 
      
Beiträge: 357
|
Verfasst: Fr 05.09.08 01:47
Ich möchte es nicht runterladen sondern den link in Download link umwandeln mit Delphi.
Es gibt ja einige seiten wie KeepVid... aber ich möchte es in Delphi gerne machen.
Danke schonmal.
MfG
|
|
jackie05 
      
Beiträge: 357
|
Verfasst: Fr 05.09.08 03:11
Ich hab den Download link jetzt entschlüsselt und zusammen gesetzt.
Funktioniert einwandfrei.
Trotzdem Danke.
MfG
|
|
Fabian W.
      
Beiträge: 1766
Win 7
D7 PE
|
Verfasst: Fr 05.09.08 09:23
Falls du einige Referenzen suchst - ich habe in einem Artikel einige Möglichkeiten gesammelt Videos (auch von anderen Seiten) auf verschiedene Art und Weise herunterzuladen: Videos herunterladen.
mfg
|
|
jackie05 
      
Beiträge: 357
|
Verfasst: Fr 05.09.08 21:16
Danke Dir.
Ich hab ja hinbekommen mit dem Download link umzuwandeln, aber ich kann es nicht per Delphi downloaden, mit der Indy Komponente.
Es liegt daran, das es keine direkte pfad angabe zur Video Datei ist:
www.youtube.com/get_...1&load_modules=1
Der Download wird über diese Seite geprüft und dann geöffnet.
Es müsste z.B. in dieser art www.youtube.com/video/Datei.flv heißen.
Wie könnte ich den richtigen Link generieren lassen?
Vielen Dank schonmal.
|
|
Tilman
      
Beiträge: 1405
Erhaltene Danke: 51
Win 7, Android
Turbo Delphi, Eclipse
|
Verfasst: Fr 05.09.08 21:28
Ich lade Videos immer mit Flashget runter... gut das nützt dir jetzt nix weil du es mit Delphi machen willst  Du könntest den Link an deinen Standard-Browser schicken, der bietet es dir dann als Download an... oder du generierst eine HTML-Seite mit
XML-Daten 1: 2:
| <h3>Video ganz fies loaden</h3> <a href='youtube/bla/link/blubber'>Laden</a> | und öffnest diese dann im Standardbrowser oder im TWebBrowser...
aber eigentlich müsste es mit Indy trotzdem gehen ^^
_________________ Bringe einen Menschen zum grübeln, dann kannst du heimlich seinen Reis essen.
(Koreanisches Sprichwort)
|
|
SAiBOT
      
Beiträge: 323
Erhaltene Danke: 6
XP SP2; 7
D7; D2009
|
Verfasst: Fr 05.09.08 21:40
Tilman hat folgendes geschrieben: |
aber eigentlich müsste es mit Indy trotzdem gehen ^^ |
So einfach ist es leider nicht.
So gehts:
-IndyHttp->Get (zB "http://www.youtube.com/watch?v=uayowbYqvZA")
-Im Quellcode nach der VideoID und dem "t"-Wert suchen.
daraus ergibt sich dann "http://www.youtube.com/get_video?video_id=uayowbYqvZA&t=OEgsToPDskKCWYdPeRPRda6smL3iWVGb"
-IndyHttp->Get
-Nun folgt eine Exception "See other"
-Der endgültige Dowloadlink befindet sich nun in IndyHttp->Response->Location.
Dieser Link könnte vll auch für dich interessant sein.
MfG
_________________ Debuggers don't remove bugs, they only show them in slow-motion.
|
|
Tilman
      
Beiträge: 1405
Erhaltene Danke: 51
Win 7, Android
Turbo Delphi, Eclipse
|
Verfasst: Fr 05.09.08 21:42
Ja das man den Link umwandeln muss weiß ich, aber der TE hat ja geschrieben dass er das bereits geschafft hat. Dazu benutze ich übrigens immer das FF-Addon "Live HTTP-Headers" (BTW... ist nicht sehr komfortabel, kennt da wer was besseres?).
_________________ Bringe einen Menschen zum grübeln, dann kannst du heimlich seinen Reis essen.
(Koreanisches Sprichwort)
|
|
SAiBOT
      
Beiträge: 323
Erhaltene Danke: 6
XP SP2; 7
D7; D2009
|
Verfasst: Fr 05.09.08 21:48
Tilman hat folgendes geschrieben: | | Ja das man den Link umwandeln muss weiß ich, aber der TE hat ja geschrieben dass er das bereits geschafft hat. Dazu benutze ich übrigens immer das FF-Addon "Live HTTP-Headers" (BTW... ist nicht sehr komfortabel, kennt da wer was besseres?). |
Wenn du dir seinen und meinen letzten Post genauer ansiehst, wirst du erkennen, dass er es NICHT geschafft hat an die endgültige URL zu kommen 
_________________ Debuggers don't remove bugs, they only show them in slow-motion.
|
|
Tilman
      
Beiträge: 1405
Erhaltene Danke: 51
Win 7, Android
Turbo Delphi, Eclipse
|
Verfasst: Fr 05.09.08 21:56
jackie05 hat folgendes geschrieben: |
Ich hab ja hinbekommen mit dem Download link umzuwandeln, aber ich kann es nicht per Delphi downloaden, mit der Indy Komponente.
Es liegt daran, das es keine direkte pfad angabe zur Video Datei ist:
www.youtube.com/get_...1&load_modules=1
Der Download wird über diese Seite geprüft und dann geöffnet.
|
Wir halten also fest: das umwandeln des LInks hast du geschafft. Jetzt habe ich folgendes gemacht:
- Eine TMozillaBrowser-Komponente auf die Form gezogen (müsste aber auch mit TWebBrowser gehen, nur die hab ich nicht installiert). Habe diese moz genannt und sie so eingestellt dass sie unsichtbar ist.
Delphi-Quelltext 1: 2: 3: 4:
| procedure TForm1.Button1Click(Sender: TObject); begin moz.Navigate('http://v15.cache.googlevideo.com/get_video?video_id=fEhoBOyfK2w&origin=chi-v240.chi.youtube.com&signature=365FE8B1EE14E74B23F8A51BEE7DCF93D3C43DA9.B777655E18435AE356398367D734A8F7EB4C0BAB&ip=85.179.96.56&ipbits=8&expire=1220665895&key=yt1&sver=2'); end; |
funzt super. Natürlich werde ich gefragt ob ich downloaden will oder nicht.
Wie es mit den Indys steht, ob es da nicht doch irgendwie geht, weiß ich nicht.
Alernativ hast du immer noch die möglichkeit eine HTML-Seite dynamisch zu generieren wie oben genannt und diese in eine Webbrowswer-Kompo einzubinden, so dass der User selbst loaden kann.
_________________ Bringe einen Menschen zum grübeln, dann kannst du heimlich seinen Reis essen.
(Koreanisches Sprichwort)
|
|
SAiBOT
      
Beiträge: 323
Erhaltene Danke: 6
XP SP2; 7
D7; D2009
|
Verfasst: Fr 05.09.08 22:02
Tilman hat folgendes geschrieben: |
Wie es mit den Indys steht, ob es da nicht doch irgendwie geht, weiß ich nicht. |
Wie gesagt... mit dem entgültigen Link funktioniert es mit Indy ohne Probleme.
_________________ Debuggers don't remove bugs, they only show them in slow-motion.
|
|
jackie05 
      
Beiträge: 357
|
Verfasst: Fr 05.09.08 22:08
@SAiBOT Vielen Dank für deine Hilfe.
Der entgültige Code steckt in IdHTTP1.Response.Location, hat wunderbar funktioniert, vielen Dank.
MfG
|
|
Tilman
      
Beiträge: 1405
Erhaltene Danke: 51
Win 7, Android
Turbo Delphi, Eclipse
|
Verfasst: Fr 05.09.08 22:13
Ah okay, sry ^^ hatte irgendwie überlesen dass du die Lösung gepostet hattest, hatte dich irgendwie missverstanden, SAiBOT.
_________________ Bringe einen Menschen zum grübeln, dann kannst du heimlich seinen Reis essen.
(Koreanisches Sprichwort)
|
|
jackie05 
      
Beiträge: 357
|
Verfasst: Mo 29.09.08 22:26
Hallo nochmal,
seit paar tagen bekomme ich eine ganz andere Download URL zurückgeliefert, diese in IdHTTP1.Response.Location steckt, nun funktioniert das downloaden auch nicht mehr in Delphi.
Wenn ich den Link dann in Internet Explorer einfüge und anschließend auf Enter drücke, kann ich es downloaden, aber wieso kann ich es per Delphi nicht mehr downloaden?
Ich bedanke mich schonmal für die Hilfe.
MfG
|
|
dTrace
      
Beiträge: 31
Delphi 5 Enterprise
|
Verfasst: Do 09.10.08 17:27
Titel: quellcode
Hi, kannst du vielleicht mal den kompletten quellcode hier posten um mit indy eine youtube datei herunterzuladen.
Ich habe es versucht und bekomme ich die exception "forbidden"
danke....dtrace
_________________ Wenn du aufsteigen willst, dann solltest du es mit dem Wind tun.
|
|
SAiBOT
      
Beiträge: 323
Erhaltene Danke: 6
XP SP2; 7
D7; D2009
|
Verfasst: So 12.10.08 13:17
jackie05 hat folgendes geschrieben : | Hallo nochmal,
seit paar tagen bekomme ich eine ganz andere Download URL zurückgeliefert, diese in IdHTTP1.Response.Location steckt, nun funktioniert das downloaden auch nicht mehr in Delphi.
Wenn ich den Link dann in Internet Explorer einfüge und anschließend auf Enter drücke, kann ich es downloaden, aber wieso kann ich es per Delphi nicht mehr downloaden?
Ich bedanke mich schonmal für die Hilfe.
MfG |
Es funktioniert immernoch GENAU so wie ich oben beschrieben habe!
dTrace hat folgendes geschrieben : | Hi, kannst du vielleicht mal den kompletten quellcode hier posten um mit indy eine youtube datei herunterzuladen.
Ich habe es versucht und bekomme ich die exception "forbidden"
danke....dtrace |
Das liegt wohl daran das YouTube den Standart UserAgent von Indy>Http gesperrt hat.
Dieser muss geändert werden!
_________________ Debuggers don't remove bugs, they only show them in slow-motion.
|
|
jackie05 
      
Beiträge: 357
|
Verfasst: Fr 20.02.09 01:06
Hallo nochmal,
seit einigen Tagen funktioniert das mit dem Downloaden nicht mehr, ich bekomme beim Downloaden der Datei folgende fehlermeldung:
HTTP/1.1 403 Forbidden
Hier ist mal der Code:
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30:
| procedure GetYoutubeDownloadURL(URL: string); var HTTP: TIdHTTP; Quelltext: string; VideoID: string; T: string; Pos1: integer; begin HTTP := TIdHTTP.Create(nil); HTTP.Request.UserAgent := 'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)'; Quelltext := HTTP.Get(URL); Download.Titel := Copy(Quelltext,Pos('<title>',Quelltext)+7,Pos('</title>', Quelltext)-Pos('<title>', Quelltext)-7); VideoID := Copy(Quelltext,Pos('video_id', Quelltext)+12,Pos('video_id', Quelltext)+0-Pos('video_id', Quelltext)+11); Pos1 := Pos('"t": "', Quelltext)+6; T := Copy(Quelltext, Pos1,PosEx('"',Quelltext,Pos1+1)-Pos1);
try HTTP.Get('http://de.youtube.com/get_video?video_id='+VideoID+'&t='+T); except
end;
Download.URL := HTTP.Response.Location;
HTTP.Free; end; |
Das ist jetzt nur der Code, um den Downloadlink zu generieren.
woran liegt denn der fehler?
Danke schonmal.
MfG
|
|
jaenicke
      
Beiträge: 19346
Erhaltene Danke: 1754
W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Fr 20.02.09 01:24
Da hast du wohl das selbe Problem wie dieses Tool:
www.techcrunch.com/2...video-download-tool/
Denen wurde mit dem Auszug aus den Nutzungsbedingungen geantwortet. 
|
|
jackie05 
      
Beiträge: 357
|
Verfasst: Fr 20.02.09 02:21
Das hat mir nicht weitergeholfen.
es liegt an diesem Code, wie ich gemerkt habe:
HTTP.Request.UserAgent := 'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)';
muss ich da vieleicht noch etwas hinzufügen oder so?
Danke schonmal.
MfG
|
|