Autor Beitrag
jackie05
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 357



BeitragVerfasst: 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 user profile iconChristian 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
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 682

Mac OS X Snow Leopard
Xcode 3.1
BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 357



BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 357



BeitragVerfasst: Fr 05.09.08 03:11 
Ich hab den Download link jetzt entschlüsselt und zusammen gesetzt.

Funktioniert einwandfrei.

Trotzdem Danke.

MfG
Fabian W.
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 1766

Win 7
D7 PE
BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 357



BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 1405
Erhaltene Danke: 51

Win 7, Android
Turbo Delphi, Eclipse
BeitragVerfasst: 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

ausblenden 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 323
Erhaltene Danke: 6

XP SP2; 7
D7; D2009
BeitragVerfasst: Fr 05.09.08 21:40 
user profile iconTilman 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
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 1405
Erhaltene Danke: 51

Win 7, Android
Turbo Delphi, Eclipse
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 323
Erhaltene Danke: 6

XP SP2; 7
D7; D2009
BeitragVerfasst: Fr 05.09.08 21:48 
user profile iconTilman 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 :wink:

_________________
Debuggers don't remove bugs, they only show them in slow-motion.
Tilman
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 1405
Erhaltene Danke: 51

Win 7, Android
Turbo Delphi, Eclipse
BeitragVerfasst: Fr 05.09.08 21:56 
user profile iconjackie05 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.

ausblenden 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 323
Erhaltene Danke: 6

XP SP2; 7
D7; D2009
BeitragVerfasst: Fr 05.09.08 22:02 
user profile iconTilman 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 357



BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 1405
Erhaltene Danke: 51

Win 7, Android
Turbo Delphi, Eclipse
BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 357



BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 31


Delphi 5 Enterprise
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 323
Erhaltene Danke: 6

XP SP2; 7
D7; D2009
BeitragVerfasst: So 12.10.08 13:17 
user profile iconjackie05 hat folgendes geschrieben Zum zitierten Posting springen:
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!

user profile icondTrace hat folgendes geschrieben Zum zitierten Posting springen:
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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 357



BeitragVerfasst: 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:
ausblenden 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);
  //Titel herausfiltern
  Download.Titel := Copy(Quelltext,Pos('<title>',Quelltext)+7,Pos('</title>', Quelltext)-Pos('<title>', Quelltext)-7);
  //VideoID herausfiltern
  VideoID := Copy(Quelltext,Pos('video_id', Quelltext)+12,Pos('video_id', Quelltext)+0-Pos('video_id', Quelltext)+11);
  //T herausfiltern
  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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19346
Erhaltene Danke: 1754

W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 357



BeitragVerfasst: 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