Список видео YouTube в формате JSON - PullRequest
0 голосов
/ 30 апреля 2018

Я создал функцию в PHP для извлечения списка видео YouTube моего канала в формате JSON, но я получаю пустой массив.

public function channels_list()
{

    $method = $_SERVER['REQUEST_METHOD'];
    if($method != 'GET')
    {
        json_output(400,array('status' => 400,'message' => 'Bad request.'));
    }
    else
    {
        $data = array();

        $json_link="https://www.googleapis.com/youtube/v3/search?key='MY API KEY'&channelId='MY CHANNEL ID'&part=snippet,id&order=date&maxResults=10";

        $json = file_get_contents($this->json_link);
        $obj = json_decode($json, true, 512, JSON_BIGINT_AS_STRING);                        

        foreach($obj['items'] as $post){

            $jsondata['id'] = isset($post['id']['videoId']) ? $post['id']['videoId'] : "";
            $jsondata['published_at'] = isset($post['snippet']['publishedAt']) ? $post['snippet']['publishedAt'] : "";
            $jsondata['title'] = isset($post['snippet']['title']) ? $post['snippet']['title'] : "";
            $jsondata['description'] = isset($post['snippet']['description']) ? $post['snippet']['description'] : "";
            $jsondata['thumbnail'] = "https://i.ytimg.com/vi/{$id}/maxresdefault.jpg";
            array_push($data, $jsondata);

        }
        json_output("200", array("list"=>$data),1);     
    } 
}

1 Ответ

0 голосов
/ 30 апреля 2018

Попробуйте приведенный ниже код, я использую его, и он отлично работает для меня.

function get_youtube($url){

$youtube = "http://www.youtube.com/oembed?url=". $url ."&format=json";

$curl = curl_init($youtube);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
$return = curl_exec($curl);
curl_close($curl);
return json_decode($return, true);
}
$url = // youtube video url 

// Display Data 
print_r(get_youtube($url));

Обновлен:

для этого вам не нужно входить в OAuth2. Вы можете просто сделать это, установив вместо этого свой ключ API.

Это playlistItems-> запрос списка.

Вот демонстрация в API Explorer: https://developers.google.com/apis-explorer/#p/youtube/v3/youtube.playlistItems.list?part=snippet&playlistId=PLjFEz-E0UPUxw3lFpnfV1dDA7OE7YIFRj&_h=2&

Вместо установки clientId и клиента Secret

установите его ключ API для вашего ключа API из облачной консоли в доступе к публичному API.

$client->setAPIKey($API_KEY);

Пример: * ** 1022 тысячу двадцать одна * $API_key = 'Your_API_Key'; $channelID = 'YouTube_Channel_ID'; $maxResults = 10; $videoList = json_decode(file_get_contents('https://www.googleapis.com/youtube/v3/search?order=date&part=snippet&channelId='.$channelID.'&maxResults='.$maxResults.'&key='.$API_key.''));

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...