Bonjour,
j'ai crée une datasource pour cakephp qui permet de récupérer des listes de Vidéos, Playlists et Channels de Youtube.
https://github.com/ch0c44/youtubeDatasource
Pour l'installation vous ajouter le dossier Model dans app/ de votre projet Cakephp et dans Config/database.php vous rajoutez cette ligne
public $youtube = array(
'datasource' => 'YoutubeSource',
'keyApi' => '/* YOUR API KEY */',
'database' => null
);
Ensuite vous créer un Model, par exemple Youtube.php qui ressemblera à sa
<?php
class Youtube extends AppModel
{
public $useDbConfig = 'youtube';
}
et ensuite vous pouvez l'utiliser comme bon vous semble dans vos controller
Example:
Je veux chercher toutes les vidéos de grafikart dont le channelId=UCKv-KgFIYK4lLsfquLwh0zg, j'exécute dans mon controller
$video = $this->Youtube->searchList(array('channelId' => 'UCKv-KgFIYK4lLsfquLwh0zg'));
la variable $video me retourne un tableau du genre
array(
'kind' => 'youtube#searchListResponse',
'etag' => '"jqkgdlxEh5z8o67pDlOVdfA3-9M/0ac_P_mT59q-dnv14u5z74VzaJo"',
'nextPageToken' => 'CAUQAA',
'pageInfo' => array(
'totalResults' => (int) 268,
'resultsPerPage' => (int) 5
),
'tokenPagination' => array(
'nextPageToken' => 'CAUQAA'
),
'items' => array(
(int) 0 => array(
'kind' => 'youtube#searchResult',
'etag' => '"jqkgdlxEh5z8o67pDlOVdfA3-9M/gAKzD4-Rjo8cR-EyDmeVMO7hne0"',
'id' => array(
'kind' => 'youtube#video',
'videoId' => '3Iaqaiwx0kU'
),
'snippet' => array(
'publishedAt' => '2012-10-31T11:26:30.000Z',
'channelId' => 'UCKv-KgFIYK4lLsfquLwh0zg',
'title' => 'Présentation Windows 8',
'description' => 'Une petite présentation et un premier avis sur Windows 8. http://grafikart.fr.',
'thumbnails' => array(
'default' => array(
'url' => 'https://i.ytimg.com/vi/3Iaqaiwx0kU/default.jpg'
),
'medium' => array(
'url' => 'https://i.ytimg.com/vi/3Iaqaiwx0kU/mqdefault.jpg'
),
'high' => array(
'url' => 'https://i.ytimg.com/vi/3Iaqaiwx0kU/hqdefault.jpg'
)
),
'channelTitle' => 'grafikrt'
)
),
(int) 1 => array(
'kind' => 'youtube#searchResult',
'etag' => '"jqkgdlxEh5z8o67pDlOVdfA3-9M/XAgU7Va8_n9fSudSKQYi_YxnyjY"',
'id' => array(
'kind' => 'youtube#video',
'videoId' => 'yg3YedO3GT8'
),
'snippet' => array(
'publishedAt' => '2012-04-03T21:28:33.000Z',
'channelId' => 'UCKv-KgFIYK4lLsfquLwh0zg',
'title' => 'Tutoriel PHP : Développer un site : Jour 1, La base de données',
'description' => 'A propos de ce tutoriel : http://www.grafikart.fr/tutoriels/php/developper-site-jour1-base-donnees-183 Plus de tutoriels : http://www.grafikart.fr.',
'thumbnails' => array(
'default' => array(
'url' => 'https://i.ytimg.com/vi/yg3YedO3GT8/default.jpg'
),
'medium' => array(
'url' => 'https://i.ytimg.com/vi/yg3YedO3GT8/mqdefault.jpg'
),
'high' => array(
'url' => 'https://i.ytimg.com/vi/yg3YedO3GT8/hqdefault.jpg'
)
),
'channelTitle' => 'grafikrt'
)
),
...
Il n'a que les listes de vidéos pour l'instant, vous pouvez forker le dépot si vous voulez pour ajouter d'autre module
Voila la doc de l'api pour vous aidez https://developers.google.com/youtube/v3/docs/