Um mal meine Ergebnisse in einem unabhängigen Thread zu dokumentieren und damit auch Außenstehenden verfügbar zu machen:
Ich habe mein Bookmarklet (mittlerweile in der dritten Generation ;)) zum Download von Videos von YouTube aktualisiert, damit es mit den aktuellen Parameternamen eine URL generiert – zum Glück bietet diese der Quellcode der Seite fast unmittelbar an, man muss sie nur dekodieren und extrahieren.
Der Code sollte auf allen Browsern funktionieren, die mindestens Javascript 1.2 unterstützen – persönlich wurde er auf FFX 3.0.x, Opera 9 und Google Chrome getestet.
javascript:if(document.location.href.match(/http:\/\/[a-zA-Z\.]*youtube\.com\/watch/)){var s=decodeURIComponent(yt.config_.SWF_ARGS['fmt_url_map']).replace(/2C/g,',').replace(/%/g,'').split('|');var pl=s[1];var l=pl.slice(0,pl.lastIndexOf(','));if(prompt('Dein gewünschter Link:',l)==l){document.location.href=l}else{void(0)}}
Für die Programmierer als leserlicher, eingerückter Javascript-Code:
Spoiler anzeigen
if (document.location.href.match(/http:\/\/[a-zA-Z\.]*youtube\.com\/watch/)) {
var s = decodeURIComponent(yt.config_.SWF_ARGS['fmt_url_map']).replace(/2C/g, ',').replace(/%/g, '').split('|');
var pl = s[1];
var l = pl.slice(0, pl.lastIndexOf(','));
if (prompt('Dein gewünschter Link:',l) == l) {
document.location.href = l
}
else {
void(0)
}
}
Alles anzeigen
Allerdings funktioniert dieser Code noch nicht bei allen Videos, wobei das davon unabhängig ist, ob es ein Normal-, HQ- oder HD-Video ist. Der fmt_url_map-Parameter ist dabei eine für den Flash-Player URL-kodierte Fassung von
Die beste Video-Qualität hat dabei in der Regel die zuerst genannte URL, aber diese scheint – wohl zur Erschwerung für Abuser wie du und ich – nicht immer zu existieren. Allerdings ist in dem Falle immer mindestens eine zweite URL in dem String enthalten, weswegen es ratsam ist, von obigem Bookmark eine Kopie anzulegen und bei dieser s[1] durch s[3] für die zweite URL bzw. s[5] für die dritte URL (falls vorhanden) zu ersetzen.
Über Feedback wäre ich sehr erfreut.