2012-09-24 1 views
10

Il semble qu'il n'y ait pas d'API YouTube officielle pour trouver la liste des réseaux YouTube ou les canaux faisant partie d'un réseau donné. Des idées pour trouver cette information?Comment savoir par programme quels canaux font partie d'un réseau YouTube donné?

S'il n'y a pas de méthode directe, quel algorithme socialblade.com utilise-t-il pour obtenir des listes approximatives?

+0

avez-vous eu de la chance? –

+0

Vous ne vouliez pas obtenir le canal auquel appartient la vidéo? Quelque chose comme ça? http://stackoverflow.com/questions/12856445/get-xml-attribute-with-simplexml/12856747 – loQ

Répondre

3

Il ne semble pas que vous pouvez obtenir ces informations en utilisant l'API v3 à ce moment, mais je crois que ce que socialblade appelle réseaux est le propriétaire du contenu ou « Nom du partenaire ».

Dans une réponse API, une entrée d'alimentation contient une vidéo partenaire si l'entrée contient une balise <media:credit> pour laquelle la valeur de l'yt: attribut type est partenaire. <media:credit role='uploader' scheme='urn:youtube' yt:display='partner_name' yt:type='partner'> partner_name </media:credit>

Décrite ici: https://developers.google.com/youtube/2.0/reference#Video_Feeds

Il est probablement juste une question de l'attribution des canaux qui ne contient des vidéos par un partenaire distinct de « réseau » de ce partenaire. Edit: Puisque cela semble ne pas être précis, je signale qu'il semble que l'API analytique possède cette information, mais à partir de la description, cela ressemble à ça. ne permet que les rapports sur les canaux de votre propre "réseau". Cela étant dit, SocialBlade doit être obtenir leurs informations sur d'autres réseaux de quelque part:

Les propriétaires de contenu qui participent au Programme Partenaire YouTube peuvent également utiliser l'API pour récupérer des rapports que les données de statistiques globales pour tous les canaux YouTube qui sont liés à leur compte de propriétaire de contenu.

+0

merci, et félicitations avec bounty. – oma

+0

hmm .. je ne pense pas que cela fonctionne comme ça. Si vous prenez le canal "itsjerryandharry" du réseau "SocialBlade", et obtenez ses vidéos: "curl" https://gdata.youtube.com/feeds/api/videos?v=2&author=itsjerryandharry&prettyprint=true&uploader=partner "' chaque vidéo va inclure quelque chose comme ça itsjerryandharry '.Il n'y a aucune mention de SocialBlade ou quoi que ce soit. –

+0

Eh bien, il est clair que SocialBlade est un partenaire YouTube. L'autre option est qu'ils utilisent les [rapports du propriétaire du contenu] (https://developers.google.com/youtube/analytics/v1/available_reports#Reports) qui ne sont pas accessibles au grand public. Il semble probable qu'ils nerf l'API publique si jamais elle contenait cette information. Il serait bon d'obtenir une confirmation de "sources crédibles ou officielles" à ce sujet. –

10

Je ne sais pas si c'est ainsi que les sites tels que socialblade ou channelmeter obtiennent les canaux en réseau. Mais c'est comme ça que je l'ai fait.

dire que je visite ce lien vidéo: http://www.youtube.com/watch?v=_8AZT40gH5E

Dans les informations méta tags d'un canal en réseau, il est un attribut <meta name=attribution content=JamieOliver/> (A titre d'exemple) qui précise en fait le réseau que le canal appartient. Alors, que je l'ai fait était une vidéo de la chaîne avec lesquels je travaille, et d'utiliser une petite fonction comme ceci:

$tags = get_meta_tags("http://www.youtube.com/watch?v=_8AZT40gH5E"); 
echo $network = $tags['attribution']; 

Et vous avez le réseau le canal est associé.

+0

Cela fonctionne très bien. Je vous remercie. – jel

+0

Pas de problème, heureux d'avoir aidé! – Zy0n

Questions connexes