Aber warum ist der Array leer? Also ich habe die Funktion auch nur aus dem Internet und kann jetzt nicht direkt jedes einzelne Wort nachvollziehen, aber es muss ja an der Funktion liegen.
Eigentlich hatte ich das selbe mal mit
Win32 gemacht und da habe ich es folgendermaßen gemacht mit
Indy (idHTTP).
Aber das kann ich halt in ASP.NET nicht verwenden, deshalb muss es irgendwie auch ohne
indy gehen.
Delphi-Quellcode:
procedure TForm2.Button1Click(Sender: TObject);
var FileStream : TFileStream;
HTMLCode:
String;
VideoID: TArrayOfString;
TWert: TArrayOfString;
VideoName: TArrayOfString;
Path:
String;
begin
Path := ExtractFilePath(ParamStr(0));
IdHTTP1.Request.UserAgent := '
Mozilla/5.0 (compatible; MSIE 6.0; Windows NT 5.1)';
HTMLCode := idHTTP1.Get(Edit1.Text);
FindInString(HTMLCode, '
<title>YouTube - ', '
</title>', True, VideoName);
FileStream := TFileStream.Create(GetSpecialFolder(
Handle, 37) + '
\' + '
MediaPlayer' + '
\' + '
Temp' + '
\' + VideoName[0] + '
.flv', fmCreate
or fmShareExclusive);
FindInString(HTMLCode, '
"t": "', '
"', True, TWert);
FindInString(HTMLCode, '
"video_id": "', '
"', True, VideoID);
ProgressDownloading := True;
idHTTP1.Get('
http://youtube.com/get_video?video_id=' + VideoID[0] + '
&t=' + TWert[0], FileStream);
idHTTP1.Free;
FileStream.Free;
ProgressDownloading := False;
end;