Как сохранить копию мгновенного каталога Netflix в формате gzip?

Я использовал учебник на сайте Netflix, чтобы правильно загрузить gzip-запрос API для определенного фильма. Когда я изменил код для загрузки всего каталога Netflix в формате gzip, сценарий больше не работает.

Когда я запускаю скрипт, запрос API заканчивается "?output=json;" Это не возвращает никаких результатов. Когда я вручную удаляю завершающую точку с запятой, каталог загружается в окне моего браузера. Из-за его размера это не совсем вариант.

Учебное пособие по Netflix: http://developer.netflix.com/page/resources/sample_php

Мои модификации:

<?php
include ('OAuthSimple.php');
$apiKey = 'MY KEY';
$sharedSecret = 'MY SECRET';

/*    THIS CODE BLOCK WORKS
$arguments = Array(  
    term=>'fargo',  
    expand=>'formats,synopsis',  
    max_results=> '1',  
    output=>'json'  
);  */


 $arguments = Array(
     output=>'json'
 );
//$path = "http://api-public.netflix.com/catalog/titles"; // ORIGINAL CODE FOR MOVIE SEARCH
$path = "http://api-public.netflix.com/catalog/titles/streaming"; // Full Catalog Search

$oauth = new OAuthSimple();
$signed = $oauth->sign(Array(path=>$path,
                parameters=>$arguments,
                signatures=> Array('consumer_key'=>$apiKey,
                                    'shared_secret'=>$sharedSecret
                                    )));

// Now go fetch the data.
$curl = curl_init();
curl_setopt($curl,CURLOPT_URL,$signed['signed_url']);
curl_setopt($curl,CURLOPT_HTTPHEADER,array('Accept-Encoding: gzip'));
curl_setopt($curl,CURLOPT_RETURNTRANSFER,1);
curl_setopt($curl,CURLOPT_SETTIMEOUT,2);
$buffer = curl_exec($curl);
if (curl_errno($curl))
{
    die ("An error occurred:".curl_error());
}
curl_close($curl);
//$result = json_decode($buffer);

$fp = fopen('data.gzip', 'w');
fwrite($fp, $buffer);
fclose($fp);
?>
<p>
<b>Your signed URL:</b></br>
<?php print $signed['signed_url'] ?>;
</p>
<p>
And the output is:</br>
<pre> 
<?php 
print print_r($buffer); ?>
</pre>
</p>

person steve larsen    schedule 06.04.2013    source источник


Ответы (1)


Ответ содержит перенаправление (код состояния 307) на:

http://cdn-api.netflix.com/api/v3/current/Catalog2/en_US.xml?token={}.

Вам нужно отправить второй запрос на этот URL-адрес (с токеном, предоставленным в ответе), чтобы получить данные.

person Luke Corrigall    schedule 04.11.2013