[PHP] Google video downloaden

Pagina: 1
Acties:
  • 284 views sinds 30-01-2008
  • Reageer

Acties:
  • 0 Henk 'm!

  • Acolyte
  • Registratie: Oktober 2002
  • Laatst online: 28-08-2024
Op een website heb ik de code gevonden voor zowel Google Video als Youtube om video's te kunnen downloaden voor offline gebruik. Voor Youtube is het prima gelukt, dat werkt perfect. Alleen voor Google niet, hoewel ik de URL heb geformuleerd en hij direct in de browser prima werkt, krijg ik als ik hem probeer op te halen met PHP een 403 Forbidden error:

PHP:
1
2
    $url = "http://vp.video.google.com/videodownload?version=0&secureurl=".$google_url;
    $vid = file_get_contents($url);


Levert op:
code:
1
2
Warning: file_get_contents(http://vp.video.google.com/videodownload?version=0&secureurl=[hier die code]) [function.file-get-contents]: failed to open stream:
HTTP request failed! HTTP/1.0 403 Forbidden in /Applications/MAMP/htdocs/yackhals/plugins.inc.php on line 82


Maar kopieer ik de link direct in de browser en ram op enter, dan krijg ik keurig een downloadvenstertje.

Zou dit te maken kunnen hebben met een serverdetectie aan Googles kant dat je als PHP script dat niet mag opvragen? En zo ja, hoe fop ik de server dan? Ik zou niet weten waar hij op kan checken, behalve de headers die PHP standaard meestuurt, namelijk:

code:
1
2
3
4
5
Array
(
    [0] => X-Powered-By: PHP/5.1.6
    [1] => Content-type: text/html
)


Dat zou natuurlijk de boosdoener kunnen zijn, maar iemand enig idee hoe ik headers kan unsetten? Simpelweg unset($headers[0]) werkt niet lijkt mij. header("X-Powered-By: "); replaced de header, maar verwijderd hem niet.

Any ideas?

Acties:
  • 0 Henk 'm!

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 09-09 16:17

Janoz

Moderator Devschuur®

!litemod

Dat zijn de headers die php naar de client stuurt. Die hebben niks te maken met de headers die worden meegestuurd met de file_get_contents. Wil je een betere controle over de meegestuurde headers dan kun je beter zelf je request opbouwen met bijvoorbeeld curl.

Bedenk trouwens dat het downloaden van de video er wel voor kan zorgen dat je boven je geheugen limiet komt aangezien je nu alles in het geheugen laad.

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


Acties:
  • 0 Henk 'm!

  • CodeCaster
  • Registratie: Juni 2003
  • Niet online

CodeCaster

Can I get uhm...

Alle headers zelf even opvragen. Doe dus een request middels een browser naar een testpagina, en kijk wat er allemaal door de browser verstuurd wordt. Vraag hierna dezelfde testpagina op met file_get_contents('http://phpserver/testpagina.php').

Ik denk zelf aan headers als User-Agent e.d. En dat kun je dus met curl doen zoals meneer Janoz hierboven vermeldt :)

[ Voor 11% gewijzigd door CodeCaster op 16-05-2007 14:28 ]

https://oneerlijkewoz.nl
Op papier is hij aan het tekenen, maar in de praktijk...


Acties:
  • 0 Henk 'm!

  • GlowMouse
  • Registratie: November 2002
  • Niet online
Acolyte schreef op woensdag 16 mei 2007 @ 14:23:
Dat zou natuurlijk de boosdoener kunnen zijn, maar iemand enig idee hoe ik headers kan unsetten? Simpelweg unset($headers[0]) werkt niet lijkt mij. header("X-Powered-By: "); replaced de header, maar verwijderd hem niet.

Any ideas?
Waar $headers op slaat, blijkt niet uit de context. De header-functie gaat over de communicatie tussen jou en de webserver, niet tussen php en de google-server. Beide mogelijkheden beïnvloeden de communicatie met Google niet, dus is het niet vreemd dat ze niet werken.
Kijk eens naar referer en user-agent headers.

[ Voor 48% gewijzigd door GlowMouse op 16-05-2007 14:27 ]


Acties:
  • 0 Henk 'm!

  • MueR
  • Registratie: Januari 2004
  • Laatst online: 20:45

MueR

Admin Tweakers Discord

is niet lief

Vindt Google dit goed? Ik denk namelijk dat Google op iets meer controleert dan een geldige URL, om te voorkomen dat mensen de videos op hun site rippen.

Anyone who gets in between me and my morning coffee should be insecure.


Acties:
  • 0 Henk 'm!

  • Acolyte
  • Registratie: Oktober 2002
  • Laatst online: 28-08-2024
MueR schreef op woensdag 16 mei 2007 @ 14:28:
Vindt Google dit goed? Ik denk namelijk dat Google op iets meer controleert dan een geldige URL, om te voorkomen dat mensen de videos op hun site rippen.
Zie bieden het zelf aan met een link naast hun video's. Kan me alleen wel voorstellen dat ze niet willen dat het geautomatiseerd kan, met een script die het ophaalt. Maar in feite doe ik niets anders dan de link op de google website overnemenn en doe er mijn eigen dingetjes mee.

Acties:
  • 0 Henk 'm!

  • bits
  • Registratie: Maart 2006
  • Laatst online: 15-12-2023
Kijk eens naar deze add-on voor Firefox:
https://addons.mozilla.org/en-US/firefox/addon/2390

Misschien dat je hier iets mee kan?

Acties:
  • 0 Henk 'm!

  • Acolyte
  • Registratie: Oktober 2002
  • Laatst online: 28-08-2024
JNolten schreef op woensdag 16 mei 2007 @ 14:51:
Kijk eens naar deze add-on voor Firefox:
https://addons.mozilla.org/en-US/firefox/addon/2390

Misschien dat je hier iets mee kan?
Een link voor in bookmarks om de google video te downloaden heb ik al en VideoOok extentie is reeds geïnstalleerd. Maar ik wil 'm door php in een database laten opslaan (een soort delicious aanmaken voor mezelf maar dan van alle leuke filmpjes die ik tegen ben gekomen).

Acties:
  • 0 Henk 'm!

  • Acolyte
  • Registratie: Oktober 2002
  • Laatst online: 28-08-2024
Oke, opgelost, het was inderdaad een User Agent probleem. Maar dat was wel even puzzelen dat je die kunt instellen met ini_set:

PHP:
1
ini_set("user_agent", "Mozilla/5.0 (Macintosh; U; Intel Mac OS X; nl; rv:1.8.1.3) Gecko/20070309 Firefox/2.0.0.3");


Bijvoorbeeld :)

Nu een ander probleem. Ik wil een download progress bar laten zien omdat sommige filmpjes erg lang duren om opgehaald te worden. Ze worden immers niet altijd met de maximale snelheid binnengehaald. Er zijn talloze php progress bar scripts, maar deze zijn volgens mij bedoeld voor upload formulieren, niet voor iets ophalen via fopen(). Iemand een idee?

Acties:
  • 0 Henk 'm!

  • Engineer
  • Registratie: Juni 2001
  • Laatst online: 03-07 23:56

Engineer

Software

.

[ Voor 99% gewijzigd door Engineer op 14-10-2018 10:53 ]


Acties:
  • 0 Henk 'm!

  • Superfly
  • Registratie: Januari 2000
  • Laatst online: 28-05 18:36
JNolten schreef op woensdag 16 mei 2007 @ 14:51:
Kijk eens naar deze add-on voor Firefox:
https://addons.mozilla.org/en-US/firefox/addon/2390

Misschien dat je hier iets mee kan?
Deze werkt sinds korte tijd niet meer op Google Video. Een workaround heb ik zo snel nog niet kunnen vinden.

Assistant Professor New Media & Digital Culture

Pagina: 1