YouTube-Download-Script funktioniert nicht

jack.jack

Klarapfel
Registriert
20.03.09
Beiträge
280
Ich habe ein Problem. Und zwar habe ich auf einer Website das folgende Skript gefunden. Doch wenn ich es ausführe, kommt eine Fehlermeldung. Weiss jemand, wo der Fehler liegt?

set pageURL to display dialog "Enter the URL of the YouTube video's page:" default answer ""

set AppleScript's text item delimiters to "?v="
set v_id to item 2 of text items of text returned of pageURL
set pageURL to "http://www.youtube.com/v/" & v_id

set locationURL to do shell script "curl -I " & pageURL & " | grep ^Location | grep -o 'video_id=.*'"
set AppleScript's text item delimiters to "&t="
set t_id to item 2 of text items of locationURL

set downloadURL to "http://youtube.com/get_video?video_id=" & v_id & "&t=" & t_id

open location downloadURL


Der Fehler liegt vermutlich etwa in der Mitte des Skripts bei "set locationURL to do..."
 

DatNiggo

Normande
Registriert
24.05.07
Beiträge
575
Ähm, nur mal so nebenbei: Toller Threadtitel...

Will aber kein Spielverderber sein :) Auch wenn ich dir nicht helfen kann.
 

Bananenbieger

Golden Noble
Registriert
14.08.05
Beiträge
25.515
Mach es Dir einfach und lege eine Bookmark mit folgender URL an:
Code:
javascript:if(document.location.href.match(/http:\/\/[a-zA-Z\.]*youtube\.com\/watch/)){document.location.href='http://www.youtube.com/get_video?fmt='+(isHDAvailable?'22':'18')+'&video_id='+swfArgs['video_id']+'&t='+swfArgs['t']}

Wenn Du dann auf einer YouTube-Seite bist und das Bookmark anwählst, wird das Video heruntergeladen.
 

jack.jack

Klarapfel
Registriert
20.03.09
Beiträge
280
Mach es Dir einfach und lege eine Bookmark mit folgender URL an:
Code:
javascript:if(document.location.href.match(/http:\/\/[a-zA-Z\.]*youtube\.com\/watch/)){document.location.href='http://www.youtube.com/get_video?fmt='+(isHDAvailable?'22':'18')+'&video_id='+swfArgs['video_id']+'&t='+swfArgs['t']}

Wenn Du dann auf einer YouTube-Seite bist und das Bookmark anwählst, wird das Video heruntergeladen.

Ich möchte eigentlich die YouTube-Filmadresse direkt beim Skript eingeben, nicht zurest in Safari und dann den Lesezeichen-button drücken.
 

Bananenbieger

Golden Noble
Registriert
14.08.05
Beiträge
25.515
Safari -> Cmd-Alt-A und dann die größte Datei des Vimeo-Fensters doppelklicken.

Ein JavaScript ist mir für Vimeo leider nicht bekannt.
 

jack.jack

Klarapfel
Registriert
20.03.09
Beiträge
280
Welche Fehlermeldung kommt denn?

Es kommt:

„item 2 of {"video_id=a4cmrMJul1g&length_seconds=253&allow_embed=1&swf=http%3A%2F%2Fs.ytimg.com%2Fyt%2Fswf%2Fcps-vfl101326.swf&sk=sz4y53bIooqfd8X3KjeEiGhg_jTBa_WMC&allow_ratings=1&rel=1&cr=US&eurl="}“ kann nicht gelesen werden.
 

Bananenbieger

Golden Noble
Registriert
14.08.05
Beiträge
25.515
Du hast den String falsch zerpflückt.

Wie soll AppleScript den aufsplitten, wenn Du als Delimiter ?v= festgelegt hast, es aber gar nicht im String vorkommt?
 

92Phips

London Pepping
Registriert
13.01.09
Beiträge
2.058
Sry für die Offtopic, aber der Thread Titel ist einfach der Brüller! :D
 

Bananenbieger

Golden Noble
Registriert
14.08.05
Beiträge
25.515
Hatte übersehen, dass später noch &t= als Delimiter festgelegt wird.

Aber ersetze mal
set AppleScript's text item delimiters to "&t="
durch
set AppleScript's text item delimiters to "&swf="
 

jack.jack

Klarapfel
Registriert
20.03.09
Beiträge
280
Noch ein Problem!
Jetzt hab ich versucht mit XCode ein AppleScript Programm mit Grafischer Oberfläche zu erstellen.
Es kommt jedoch wieder eine Meldung: can' t get class ttxt of "http://www.youtube.com"

on clicked theObject
if name of theObject is "quit" then
quit
else if name of theObject is "downloadstart" then
set pageURL to content of text field "pageURL" of window "downloader"
set AppleScript's text item delimiters to "?v="
set v_id to item 2 of text items of text returned of pageURL
set pageURL to "http://www.youtube.com/v/" & v_id

set locationURL to do shell script "curl -I " & pageURL & " | grep ^Location | grep -o 'video_id=.*'"
set AppleScript's text item delimiters to "&swf="
set t_id to item 2 of text items of locationURL

set downloadURL to "http://youtube.com/get_video?video_id=" & v_id & "&t=" & t_id

open location downloadURL
end if
end clicked
 

Bananenbieger

Golden Noble
Registriert
14.08.05
Beiträge
25.515
Da muss ich leider passen. AppleScript in XCode habe ich bislang nicht verwendet.