✅ Notícias, temas e plug-ins da WEB e do WordPress. Aqui compartilhamos dicas e as melhores soluções para sites.

Obtenha a lista de vídeos do YouTube por palavras-chave usando a API de pesquisa do YouTube

46

O YouTube é o segundo maior mecanismo de busca do mundo. Devido à sua popularidade, muitos sites integram funcionalidades relacionadas ao YouTube em seus sites. Isso inclui a incorporação de vídeos do YouTube, botão de inscrição do YouTube, galeria de vídeos do YouTube, pesquisa de vídeo, etc. Neste artigo, veremos como integrar a API de pesquisa do YouTube ao site.

Este artigo explica como se pode implementar a tarefa de pesquisar vídeos do YouTube em um site. Usaremos a API de pesquisa do YouTube para obter vídeos com base em palavras-chave, filtrar por opções disponíveis (data, classificação, etc.) e exibir a lista de vídeos. Vou imprimir o título do vídeo e a id do vídeo. O usuário pode imprimir outras informações também conforme sua necessidade.

Começando

Para começar, primeiro você precisa criar uma chave de API em sua conta do Console do Google. Essa chave é necessária ao interagir com as APIs do YouTube. Sem essa chave, o YouTube considera todas as chamadas de API recebidas como não autorizadas.

Abaixo estão as etapas para obter a chave API.

  • Acesse o Google Developer Console https://console.developers.google.com.
  • Crie um novo projeto. Opcionalmente, você também pode selecionar um projeto existente.
  • Dê um nome ao seu projeto. O console do Google criará um ID de projeto exclusivo para você.
  • Seu projeto recém-criado aparecerá no topo da barra lateral esquerda.
  • Clique em Biblioteca no menu esquerdo. Você verá uma lista de APIs do Google. Ative a API de dados do YouTube.
  • A seguir, no menu esquerdo, clique em Credenciais. Selecione a chave API em Criar credenciais.
  • Copie esta chave de API.

Obtenha a lista de vídeos do YouTube por palavras-chave usando a API de pesquisa do YouTube

Criar uma interface de usuário

Para este tutorial, vou criar um formulário onde o usuário pode inserir a palavra-chave, escolher vários vídeos para retornar e o tipo de filtro. A API do YouTube tem um limite de 50 registros por vez, portanto, manteremos um limite de 50 nos campos de número. Adicionaremos paginação para obter o conjunto de registros anterior e seguinte. Em cada resposta, o YouTube fornece valores para nextPageToken e prevPageToken, se disponíveis. Usando esses valores como um parâmetro como ‘pageToken = PageToken_VALUE’ em solicitações HTTP GET, podemos buscar o próximo conjunto de registros ou o anterior.

Existem várias opções disponíveis para os tipos de filtro: ‘data’, ‘classificação’, ‘relevância’, ‘título’, ‘viewCount’ O usuário pode selecionar qualquer um e o resultado final dependerá do filtro selecionado.

<form method="get">
    <p><input type="text" name="q" placeholder="Enter keyword" value="<?php if(array_key_exists('q', $_GET)) echo $_GET['q']; ?>" required></p>
    <p><input type="number" name="max_result" placeholder="Max Results" min="1" max="50" value="<?php if(array_key_exists('max_result', $_GET)) echo $_GET['max_result']; ?>" required></p>
    <p>
        <?php $arr_orders = ['date', 'rating', 'relevance', 'title', 'viewCount']; ?>
        <select name="order" required>
            <option value="">--SELECT ORDER--</option>
            <?php foreach ($arr_orders as $order) { ?>
                <option value="<?php echo $order; ?>" <?php if(array_key_exists('order', $_GET) && ($order==$_GET['order'])) echo 'selected'; ?>><?php echo ucfirst($order); ?></option>
            <?php } ?>
        </select>
    </p>
    <p><input type="submit" value="Submit"></p>
</form>

Aqui criamos um formulário que possui 3 campos para inserir uma palavra-chave, definir o número de registros a serem retornados e o tipo de filtro.

Integre a API de pesquisa do YouTube

Neste estágio, estamos prontos com nossa chave de API e formulário HTML. Em seguida, precisamos obter os valores do formulário e passá-los ao endpoint da API do YouTube junto com a chave da API. Depois disso, processaremos a resposta final.

<?php
$api_key = 'YOUR_API_KEY';
  
$arr_list = array();
if (array_key_exists('q', $_GET) && array_key_exists('max_result', $_GET) && array_key_exists('order', $_GET)) {
    $formatted_keyword = implode("+", explode(" ", $_GET['q']));
    $url = "https://www.googleapis.com/youtube/v3/search?q=$formatted_keyword&order=". $_GET['order'] ."&part=snippet&type=video&maxResults=". $_GET['max_result'] ."&key=". $api_key;
  
    if (array_key_exists('pageToken', $_GET)) {
        $url .= "&pageToken=". $_GET['pageToken'];
    }
 
    $arr_list = getYTList($url);
}
  
function getYTList($api_url = '') {
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $api_url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    $response = curl_exec($ch);
    $arr_result = json_decode($response);
    if (isset($arr_result->items)) {
        return $arr_result;
    } elseif (isset($arr_result->error)) {
        //print error $arr_result->error
    }
}
?>

O código acima verifica os parâmetros de consulta de uma palavra-chave, max_result e o valor do pedido para classificação. Ele pega esses valores e os passa para o terminal da API. Em troca, ele acrescenta uma resposta à variável $arr_list. Faremos um loop por essa variável e imprimiremos as informações sobre os vídeos.

<?php
if (!empty($arr_list)) {
    echo '<ul>';
    foreach ($arr_list->items as $item) {
        echo "<li>". $item->snippet->title ." (Video ID: ". $item->id->videoId .")</li>";
    }
    echo '</ul>';
  
    $url = "?q=". $_GET['q'] ."&max_result=". $_GET['max_result'] ."&order=". $_GET['order'];
    if (isset($arr_list->prevPageToken)) {
        echo '<a href="'.$url.'&pageToken='.$arr_list->prevPageToken.'">Previous</a>';
    }
  
    if (isset($arr_list->nextPageToken)) {
        echo '<a href="'.$url.'&pageToken='.$arr_list->nextPageToken.'">Next</a>';
    }
}
?>

Você pode colocar esse código após o HTML do formulário. Ele lhe dará uma lista de títulos de vídeo, ids de vídeo e links de paginação.

Nosso código final é o seguinte:

<?php
$api_key = 'YOUR_API_KEY';
  
$arr_list = array();
if (array_key_exists('q', $_GET) && array_key_exists('max_result', $_GET) && array_key_exists('order', $_GET)) {
    $formatted_keyword = implode("+", explode(" ", $_GET['q']));
    $url = "https://www.googleapis.com/youtube/v3/search?q=$formatted_keyword&order=". $_GET['order'] ."&part=snippet&type=video&maxResults=". $_GET['max_result'] ."&key=". $api_key;
  
    if (array_key_exists('pageToken', $_GET)) {
        $url .= "&pageToken=". $_GET['pageToken'];
    }
 
    $arr_list = getYTList($url);
}
  
function getYTList($api_url = '') {
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $api_url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    $response = curl_exec($ch);
    $arr_result = json_decode($response);
    if (isset($arr_result->items)) {
        return $arr_result;
    } elseif (isset($arr_result->error)) {
        //print error $arr_result->error
    }
}
?>
 
<form method="get">
    <p><input type="text" name="q" placeholder="Enter keyword" value="<?php if(array_key_exists('q', $_GET)) echo $_GET['q']; ?>" required></p>
    <p><input type="number" name="max_result" placeholder="Max Results" min="1" max="50" value="<?php if(array_key_exists('max_result', $_GET)) echo $_GET['max_result']; ?>" required></p>
    <p>
        <?php $arr_orders = ['date', 'rating', 'relevance', 'title', 'viewCount']; ?>
        <select name="order" required>
            <option value="">--SELECT ORDER--</option>
            <?php foreach ($arr_orders as $order) { ?>
                <option value="<?php echo $order; ?>" <?php if(array_key_exists('order', $_GET) && ($order==$_GET['order'])) echo 'selected'; ?>><?php echo ucfirst($order); ?></option>
            <?php } ?>
        </select>
    </p>
    <p><input type="submit" value="Submit"></p>
</form>
 
<?php
if (!empty($arr_list)) {
    echo '<ul>';
    foreach ($arr_list->items as $item) {
        echo "<li>". $item->snippet->title ." (Video ID: ". $item->id->videoId .")</li>";
    }
    echo '</ul>';
  
    $url = "?q=". $_GET['q'] ."&max_result=". $_GET['max_result'] ."&order=". $_GET['order'];
    if (isset($arr_list->prevPageToken)) {
        echo '<a href="'.$url.'&pageToken='.$arr_list->prevPageToken.'">Previous</a>';
    }
  
    if (isset($arr_list->nextPageToken)) {
        echo '<a href="'.$url.'&pageToken='.$arr_list->nextPageToken.'">Next</a>';
    }
}
?>

Espero que você compreenda a integração da API de pesquisa do YouTube ao seu site. Por favor, compartilhe seus pensamentos e sugestões na seção de comentários abaixo.

Artigos relacionados

Fonte de gravação: artisansweb.net

Este site usa cookies para melhorar sua experiência. Presumiremos que você está ok com isso, mas você pode cancelar, se desejar. Aceitar Consulte Mais informação