<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Dr. Danguer y Mr. Daniel &#187; YouTube</title>
	<atom:link href="http://vida.danguer.com/tag/youtube/feed/" rel="self" type="application/rss+xml" />
	<link>http://vida.danguer.com</link>
	<description>Un blog más de un freelancer</description>
	<lastBuildDate>Sun, 31 Jan 2010 00:14:20 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.6</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Obtener video FLV de YouTube</title>
		<link>http://vida.danguer.com/2009/01/09/obtener-video-flv-de-youtube/</link>
		<comments>http://vida.danguer.com/2009/01/09/obtener-video-flv-de-youtube/#comments</comments>
		<pubDate>Fri, 09 Jan 2009 21:02:59 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[FLV]]></category>
		<category><![CDATA[YouTube]]></category>

		<guid isPermaLink="false">http://vida.danguer.com/?p=89</guid>
		<description><![CDATA[<p>Esta es la nueva manera de obtener el video de YouTube, los parámetros para <code>get_video.php</code> quedan iguales (<code>video_id</code> y <code>t</code>), pero <code>t</code> cambia y ahora no se obtiene al cargar el video, se tiene que llamar a otra URL para obtener esa información.</p>
<p>El método es muy fácil, los pasos son:</p>
<ol>
<li>Llamar a: <br />
<code>http://www.youtube.com/get_video_info.php?video_id=VIDEOID</code><br />
Donde <code>VIDEOID</code> es el id del video que vamos a obtener el archivo <code>FLV</code> (las ligas de YouTube para ver el video son como: <code>http://www.youtube.com/v/VIDEOID</code>)<br />
Tomaremos por ejemplo este:<br />
<code>http://www.youtube.com/get_video_info.php?video_id=HDi9OeJqwG4</code> </li>
<li>El resultado será en texto y tendrá muchas variables como:
<pre name="code" class="php">status=ok&#38;title=Rob+Dougan+-+Furious+Angels&#38;muted=0&#38;avg_rating=4.8496592845&#38;creator=eitch&#38;length_seconds=237&#38;vq=None&#38;fmt_map=&#38;token=OEgsToPDskKxBcum6P4BEStM-z3qkYZW&#38;thumbnail_url=http%3A%2F%2Fi1.ytimg.com%2Fvi%2FHDi9OeJqwG4%2Fdefault.jpg&#38;allow_ratings=True&#38;plid=AARgErHUJPLX2RPWAAAAoABoIAE&#38;track_embed=1</pre>
</li>
<li>De aqui solamente necesitamos obtener el parámetro <code>token</code> y pasarlo al ya conocido <code>get_video.php</code>:<br />
<code>http://www.youtube.com/get_video.php?video_id=HDi9OeJqwG4&#38;t=OEgsToPDskKxBcum6P4BEStM-z3qkYZW</code></li>
</ol>
<p>Con esto ya obtendremos el FLV deseado, en PHP la rutina sería la siguiente:</p>
<pre name="code" class="php">&#60;?php
//video id por defecto
$video_id = 'HDi9OeJqwG4';

if (isset($_REQUEST['video_id']))
        $video_id = trim($_REQUEST['video_id']);

//obtener informacion
$url_info = 'http://www.youtube.com/get_video_info.php?video_id='.$video_id;
$info = file_get_contents($url_info);

$vars = array();
parse_str($info, $vars);

$url_flv = 'http://www.youtube.com/get_video.php?video_id='.$video_id.'&#38;t='.$var
s['token'];

print 'Archivo FLV: '.$url_flv;
?&#62;</pre>
<p>Con esto obtenemos la URL del archivo <code>FLV</code>.</p>
<p>Es importante notar que en Flex/Flash no se podrá cargar diréctamente <code>get_video_info.php</code> por la política del <code>crossdomain</code> de YouTube así que hay que utilizar un proxy.</p>
<p>El demo lo pueden probar desde:<br />
<a href="http://demo.livesourcing.com/blog_vida/articulos/DanguerArticle_Youtube/">http://demo.livesourcing.com/blog_vida/articulos/DanguerArticle_Youtube/?video_id=VIDEOID</a><br />
Donde VIDEOID es el id del video de YouTube de su preferencia =)</p>
<p>El código fuente lo pueden descargar de:<br />
<a href="http://demo.livesourcing.com/blog_vida/articulos/DanguerArticle_Youtube.tar.gz">http://demo.livesourcing.com/blog_vida/articulos/DanguerArticle_Youtube.tar.gz</a><br />
 </p>
<p> </p>
<p> </p>
<p> </p>
]]></description>
			<content:encoded><![CDATA[<p>Esta es la nueva manera de obtener el video de YouTube, los parámetros para <code>get_video.php</code> quedan iguales (<code>video_id</code> y <code>t</code>), pero <code>t</code> cambia y ahora no se obtiene al cargar el video, se tiene que llamar a otra URL para obtener esa información.</p>
<p>El método es muy fácil, los pasos son:</p>
<ol>
<li>Llamar a: <br />
<code>http://www.youtube.com/get_video_info.php?video_id=VIDEOID</code><br />
Donde <code>VIDEOID</code> es el id del video que vamos a obtener el archivo <code>FLV</code> (las ligas de YouTube para ver el video son como: <code>http://www.youtube.com/v/VIDEOID</code>)<br />
Tomaremos por ejemplo este:<br />
<code>http://www.youtube.com/get_video_info.php?video_id=HDi9OeJqwG4</code> </li>
<li>El resultado será en texto y tendrá muchas variables como:
<pre name="code" class="php">status=ok&amp;title=Rob+Dougan+-+Furious+Angels&amp;muted=0&amp;avg_rating=4.8496592845&amp;creator=eitch&amp;length_seconds=237&amp;vq=None&amp;fmt_map=&amp;token=OEgsToPDskKxBcum6P4BEStM-z3qkYZW&amp;thumbnail_url=http%3A%2F%2Fi1.ytimg.com%2Fvi%2FHDi9OeJqwG4%2Fdefault.jpg&amp;allow_ratings=True&amp;plid=AARgErHUJPLX2RPWAAAAoABoIAE&amp;track_embed=1</pre>
</li>
<li>De aqui solamente necesitamos obtener el parámetro <code>token</code> y pasarlo al ya conocido <code>get_video.php</code>:<br />
<code>http://www.youtube.com/get_video.php?video_id=HDi9OeJqwG4&amp;t=OEgsToPDskKxBcum6P4BEStM-z3qkYZW</code></li>
</ol>
<p>Con esto ya obtendremos el FLV deseado, en PHP la rutina sería la siguiente:</p>
<pre name="code" class="php">&lt;?php
//video id por defecto
$video_id = 'HDi9OeJqwG4';

if (isset($_REQUEST['video_id']))
        $video_id = trim($_REQUEST['video_id']);

//obtener informacion
$url_info = 'http://www.youtube.com/get_video_info.php?video_id='.$video_id;
$info = file_get_contents($url_info);

$vars = array();
parse_str($info, $vars);

$url_flv = 'http://www.youtube.com/get_video.php?video_id='.$video_id.'&amp;t='.$var
s['token'];

print 'Archivo FLV: '.$url_flv;
?&gt;</pre>
<p>Con esto obtenemos la URL del archivo <code>FLV</code>.</p>
<p>Es importante notar que en Flex/Flash no se podrá cargar diréctamente <code>get_video_info.php</code> por la política del <code>crossdomain</code> de YouTube así que hay que utilizar un proxy.</p>
<p>El demo lo pueden probar desde:<br />
<a href="http://demo.livesourcing.com/blog_vida/articulos/DanguerArticle_Youtube/">http://demo.livesourcing.com/blog_vida/articulos/DanguerArticle_Youtube/?video_id=VIDEOID</a><br />
Donde VIDEOID es el id del video de YouTube de su preferencia =)</p>
<p>El código fuente lo pueden descargar de:<br />
<a href="http://demo.livesourcing.com/blog_vida/articulos/DanguerArticle_Youtube.tar.gz">http://demo.livesourcing.com/blog_vida/articulos/DanguerArticle_Youtube.tar.gz</a><br />
 </p>
<p> </p>
<p> </p>
<p> </p>
]]></content:encoded>
			<wfw:commentRss>http://vida.danguer.com/2009/01/09/obtener-video-flv-de-youtube/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
	</channel>
</rss>
