Gå til innhold

Kode som automatisk lager oppdatert lenke til Youtube film


Anbefalte innlegg

Skrevet

Hei!

 

Jeg driver og leker meg med Longtail flv video spilleren på min lokale server og har fått den til å spille av Youtube filmer.

 

Her er linken som går til FLV fila til filmen jeg tester med:

 

s1.addVariable("file",encodeURIComponent("http://www.youtube.com/get_video.php?video_id=gd-IMiZ19-U&t=OEgsToPDskJXxEQz7TJqzVd9HvxD4s4K&ap=%2526fmt%3D18"));

 

Her er problemet.

 

Måten jeg fant linken på, var med en såkalt Youtube FLV retriever sak som er online. Jeg trenger en kode som automatisk lager denne koden slikt at jeg ikke manuelt må oppdatere denne linken. Tror den endres daglig.

 

Siden disse FLV retriever sakene klarer å finne linken, så trenger jeg egentlig samme kode som de bruker, men jeg har ikke klart å finne noe.

 

Først trodde jeg at jeg kun trengte ID til filmen, men viser seg at du også trenger &t= ID, som er den som oppdateres daglig utifra hva jeg har klart å se. Og jeg vet ikke hvordan jeg skal hente ut den.

 

Så er det noen som kan hjelpe meg med dette?

 

Setter stor pris på all hjelp!

Videoannonse
Annonse
Skrevet

Jeg klarte det selvfølgelig rett etter jeg postet dette, og legger ved løsningen her.

 

<?php
$engineName = "youtube";
$id = "yrDe4iu8el8";

switch ($engineName) {
case "youtube":
$txt = file_get_contents("http://youtube.com/watch?v=" . $id);
$t = substr($txt, strpos($txt, '"t":') + 6, 32);
$url = "http://www.youtube.com/get_video?video_id=" . $id . "&t=" . $t;
break;
}
echo $url;

?>

Skrevet

Den sekundære IDen du snakker finner du bl.a. i koden bak linken du poster på Youtube FLV retrievers.

 

var swfArgs = {"usef": 0, "vq": null, "sourceid": "y", "video_id": "iEvozNlL8V0", "l": 204, "sk": "FRMBeZcesLiUGF3VDxmvqQ5XstVnGhFTU", "fmt_map": "", "t": "OEgsToPDskKKoe78K-OFOAnXM1t9OodS", "hl": "en", "plid": "AAReFhexj72rWKu8AAAAqAT4IAk", "sdetail": "f%3Arec-HM-fresh%20div%2Cp%3A/", "tk": "_6aCdHl3Y7DPmQVvnS5yC9Xnhf3DrXOFsIGdJ3GOYhwPhPHPm3dQMg=="};

Skrevet

   <?php


$engineName = $_GET['engine'];
$id = $_GET['id'];

switch ($engineName) {
case "youtube":
$txt = file_get_contents("http://youtube.com/watch?v=" . $id);
$t = substr($txt, strpos($txt, '"t":') + 6, 32);
$url = "http://www.youtube.com/get_video?video_id=" . $id . "&t=" . $t;
$bilde = "http://img.youtube.com/vi/".$id."/0.jpg";
break;

case "break":
$url = "http://media1.break.com/dnet/media/2008/12/iraqi-journalist-throws-shoes-at-bush_1.flv";
$bilde = "http://media1.break.com/dnet/media/2008/12/iraqi-journalist-throws-shoes-at-bush.jpg";
break;

}

?>

 

Koden funker fint, MEN

 

 

Warning: file_get_contents() [function.file-get-contents]: URL file-access is disabled in the server configuration in

 

Tydeligvis ikke tillatt på min offentlige server. Så er det en annen måte jeg kan hente ut det jeg gjør ovenfor?

Skrevet

Du kan jo forsøke å bruke CURL.

 

<?php

$id = 'vr3x_RRJdd4';
$ch = curl_init ( 'http://www.youtube.com/watch?v=' . $id );

curl_setopt ( $ch, CURLOPT_RETURNTRANSFER, 1 );

var_dump ( curl_exec ( $ch ) );
var_dump ( curl_error ( $ch ) );

?>

Skrevet (endret)

Ja..? Da har du jo klart å hente innholdet på youtube-siden! Bruk deretter substr() til å hente ut T-verdien. :xmas:

Endret av Jonas
Skrevet (endret)

"t": "OEgsToPDskIvh2zmWALYQi2gfn1C9x46", "plid":

 

Der er den koden jeg må hente ut, som stadig endrer seg.

 

Jeg er ganske ny med sånt, er litt usikker på hvordan jeg henter ut kun det, hehe :)

 

$tverdi = substr('"t": "OEgsToPDskIvh2zmWALYQi2gfn1C9x46", "plid":', 7, -10);

$url = "http://www.youtube.com/get_video?video_id=" . $id . "&t=" . $tverdi;

 

Prøvde det men får bare en kode som ikke funker (for å skjønne hvordan det funker). Aner ikke hvordan jeg får koden til å hente ut bare t-verdien fra kildekoden.

Endret av uranus
Skrevet

Du kan implementere det i koden din slik. (Utestet, med forbehold om feil)

 

<?php

$engineName = $_GET['engine'];
$id = $_GET['id'];

switch ($engineName) {
	case "youtube":
		$ch = curl_init ( 'http://www.youtube.com/watch?v=' . $id );
		curl_setopt ( $ch, CURLOPT_RETURNTRANSFER, 1 );
		$txt = curl_exec ( $ch );
		$t = substr($txt, strpos($txt, '"t":') + 6, 32);
		$url = "http://www.youtube.com/get_video?video_id=" . $id . "&t=" . $t;
		$bilde = "http://img.youtube.com/vi/" . $id . "/0.jpg";
		break;

	case "break":
		$url = "http://media1.break.com/dnet/media/2008/12/iraqi-journalist-throws-shoes-at-bush_1.flv";
		$bilde = "http://media1.break.com/dnet/media/2008/12/iraqi-journalist-throws-shoes-at-bush.jpg";
		break;

}

?>

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...