Maxy.fr

Faire une recherche Youtube en php sans compte api

EDIT : C'était prévisible, cette technique n'est plus possible depuis le 04/03/2014 ("The YouTube Data API (v2) has been officially deprecated as of March 4, 2014").

Il est souvent obligatoire de s'inscrire en tant que développeur et d'enregistrer une application pour pouvoir utiliser les api de certains sites internet. C'est compréhensible lorsqu'il s'agit de projets importants, mais plutôt embêtant lorsque l'on veut utiliser une fonction ne demandant aucune connexion client... Par exemple pour effectuer une simple recherche sur Youtube.

J'ai donc réalisé une fonction PHP permettant de faire une recherche simple sans compte api et sans utiliser aucune librairie contraignante.

Voici donc la fonction en question :

<?php
function rechercheYoutube($recherche, $maxResultats = 10, $ordre = 'relevance', $depuis = 'all_time')
{
    $recherche = htmlspecialchars(str_replace(' ', '+', $recherche));
    $url = "http://gdata.youtube.com/feeds/api/videos?q=".$recherche."&max-results=".$maxResultats."&time=".$depuis."&orderby=".$ordre."&alt=jsonc&v=2";
    
    $resultats = json_decode(file_get_contents($url));

    foreach ($resultats->data->items as $resultat)
    {
	    $id = $resultat->id;
	    $titre = $resultat->title;
	    $description = $resultat->description;
	    $image = $resultat->thumbnail->hqDefault;
	    $duree = $resultat->duration;
	    $nbVues = $resultat->viewCount;
	    $auteur = $resultat->uploader;
	    $categorie = $resultat->category;

	    //...
    }
}

rechercheYoutube("Votre recherche");
?>

Le code est très simple, il permet de récupérer au format JSon les différents résultats retourné par Youtube. Une boucle parcours l'ensemble des résultats et ceux-ci sont enregistrés dans plusieurs variables.

Les options de recherche possible :

Vous remarquerez que plusieurs arguments facultatifs ou non sont demandés par la fonction.

  • $recherche : La recherche que vous souhaitez effectué.
  • $maxResultats : Le nombre maximum de résultats qui sera retourné par Youtube.
  • $ordre : L'ordre d'affichage des résultats. Voici les possibilités :
    • relevance : Pertinance
    • published : Date de publication
    • viewCount : Nombre de vues
    • rating : Note
  • $depuis : Limité les résultats dans le temps. Voici les possibilités :
    • all_time : Tout le temps
    • today : Aujourd'hui
    • this_week : Cette semaine
    • this_month : Ce mois

Ce qu'il est possible de récupérer :

Les extraits de code sont à placer dans la boucle de la fonction.

  • L'id de la vidéo : $resultat->id
  • La date d'envoi : $resultat->uploaded
  • La date de mise à jour : $resultat->updated
  • Le compte youtube : $resultat->uploader
  • La catégorie : $resultat->category
  • Le titre : $resultat->title
  • La description : $resultat->description
  • La miniature : $resultat->thumbnail
    • Qualité standard : $resultat->thumbnail->sqDefault
    • Haute qualité : $resultat->thumbnail->hqDefault
  • Le lecteur : $resultat->player
    • Par défaut : $resultat->player->default
    • Mobile : $resultat->player->mobile
  • La durée (en secondes) : $resultat->duration
  • Le ratio hauteur/largeur : $resultat->aspectRatio
  • La date d'enregistrement : $resultat->recorded
  • La note (/5) : $resultat->rating
  • Le nombre de j'aime : $resultat->likeCount
  • Le nombre de votes : $resultat->ratingCount
  • Le nombre de vues : $resultat->viewCount
  • Le nombre de favoris : $resultat->favoriteCount
  • Le nombre de commentaires : $resultat->commentCount
  • La liste des restrictions : $resultat->restrictions
  • Les contrôles d'accès : $resultat->accessControl

La documentation officielle est ici.

Catégories : PHP

Par Guillaume le 12/02/2014 à 02:29

Partager l'article :

Articles similaires

Trier un tableau multidimensionnel en PHP

Il arrive parfois que l'on doivent trier un tableau contenant d'autres tableau suivant des valeurs pas directement accessibles. En soit on se retrouve bloqué car les fonctions de tries classique (asort(), ksort() ...) ne permettent pas de trier comme on le souhaite notre tableau. Sachez...

Enregistrer un tableau PHP dans un fichier

Il est parfois utile d'enregistrer dans un fichier des données en provenance d'un code PHP. Sachez qu'il est plutôt simple d'enregistrer un tableau de données dans un fichier en utilisant la fonction serialize().   Voici le code permettant d'enregistrer les données...

Utiliser la programmation pour résoudre un problème mathématiques

Vous avez sûrement entendu parlé de cet exercice de mathématiques qui fait tant parler de lui depuis quelques jours sur internet. Cet exercice a priori simple qu'un professeur Vietnamien a donné à faire à ses élèves d'une classe...