Ich möchte einen direkten Link zu Videos von Vimeo mit einem PHP-Skript. Ich habe es geschafft, sie manuell zu finden, aber mein PHP-Skript funktioniert nicht. Hier ist die Initiative: Zum Beispiel nahm ich dieses Video: Ссылка
Wenn Sie auf die Seite gehen, generiert Vimeo eine Signatur, die dem aktuellen Zeitstempel und diesem Video zugeordnet ist. Diese Information wird in einer JavaScript-Variablen um Zeile 520 herum gespeichert:
window.addEvent ('domready', function () {
Wenn Sie dann auf Wiedergabe klicken, liest der HTML5-Player diese Variable und sendet eine HTTP-Anforderung:
%Vor%Aber es funktioniert auch mit:
%Vor%Wenn diese URL nicht mit der IP-Adresse geöffnet wird, die Ссылка geöffnet hat, wird der HTTP-Code 200 mit einer Fehlermeldung zurückgegeben.
Wenn diese URL mit der korrekten IP-Adresse geöffnet wird, wird der Header "Location" umgeleitet, um auf die Videodatei zu verweisen:
http://av.vimeo.com/XXX/XX/XXXX.mp4?aksessionid=XXXX&token=XXXXX_XXXXXXXXX
Wenn ich diesen Link http://player.vimeo.com/play_redirect?...
manuell erstelle ("Rechtsklick" & gt; "Quellcode" & gt; "Zeile 520") funktioniert es.
Aber mit PHP und Regex gibt es HTTP code 200
mit einer Fehlermeldung zurück.
Warum?
Aus meinen Beobachtungen überprüft Vimeo nicht die Header der HTTP-Anfrage für http:// player.vimeo.com/play_redirect?...
GET
, HEAD
, mit Cookies, ohne Cookies, Referrer etc. ... ändert sich nicht.
Bei PHP verwende ich die Funktion file_get_contents()
und get_headers()
.
Der Algorithmus sieht so aus:
Hier ist meine einfache Klasse, die für diesen Moment arbeitet.
%Vor%Verwenden:
%Vor%Versuchen Sie, für jede Anforderung einen gültigen Benutzeragenten zu den Headern hinzuzufügen. Dazu müssen Sie stattdessen cURL oder HttpRequest file_get_contents () verwenden.
Nach solchen Manipulationen habe ich einen funktionierenden Link zum Herunterladen der Videodatei bekommen.
Hier mein Code:
%Vor%