Comment obtenir un flux RSS de chaîne Youtube après 2015 avril 20 (sans API V3)?

Maintenant que API v2 est parti, quel serait un moyen d'obtenir un flux RSS simple D'un canal, sans API v3? Je suis ouvert aux Pipes Yahoo ou à toute solution de contournement plus simple que de créer une application pour L'API v3 si la cible est un lecteur de flux. J'ai seulement besoin d'un flux RSS. Il était disponible publiquement jusqu'à présent et il peut cesser d'une minute à l'autre (je pense). Alors pourquoi ne pas laisser l'accès sans clé API plus.

59
demandé sur John Conde 2015-04-20 18:45:19

15 réponses

À lecteur RSS section https://support.google.com/youtube/answer/6098135?hl=en Il y a une option pour exporter dans un fichier OPML vos Abonnements. Ensuite, en regardant le contenu de L'OPML, vous pouvez extraire les flux, et la structure de chaque flux est:

https://www.youtube.com/feeds/videos.xml?channel_id=XXXX

Vous pouvez donc générer de nouveaux flux à partir de cette structure si vous connaissez l'id de canal. Ce genre de flux ne reçoivent pas le " https://youtube.com/devicesupport " erreur, donc je m'attends à ce qu'ils vont continuer à travailler.

94
répondu AitorF 2015-04-21 08:53:23

Vous pouvez obtenir les flux comme ceci:

https://www.youtube.com/feeds/videos.xml?channel_id=CHANNELID
https://www.youtube.com/feeds/videos.xml?user=USERNAME
https://www.youtube.com/feeds/videos.xml?playlist_id=YOUR_YOUTUBE_PLAYLIST_NUMBER

Mais le format JSON qui était auparavant pris en charge (avec le paramètre supplémentaire &alt=JSON) n'est plus pris en charge.

En outre, vous pouvez demander une clé API pour l'accès public à vos vidéos YouTube à partir de votre developer console et obtenir des vidéos YouTube, des listes de lecture au format JSON comme ceci:

- Get Channels: 
  https://www.googleapis.com/youtube/v3/channels?part=snippet%2CcontentDetails&forUsername={YOUR_USER_NAME}&key={YOUR_API_KEY}
- Get Playlists: 
  https://www.googleapis.com/youtube/v3/playlists?part=snippet%2CcontentDetails&channelId={YOUR_CHANNEL_ID}&key={YOUR_API_KEY}
- Get Playlist Videos: 
  https://www.googleapis.com/youtube/v3/playlistItems?part=snippet%2CcontentDetails%2Cstatus&playlistId={YOUR_PLAYLIST_ID}&key={YOUR_API_KEY}

Plus d'informations à partir de YouTube v3 docs.

55
répondu Primoz Rome 2016-09-18 22:19:26

Dans you tube, cliquez sur les abonnements dans le volet de gauche. Cela ouvrira tous vos abonnements au centre de la page. Faites défiler vers le bas et vous trouverez un bouton Exporter vers le lecteur RSS qui produit un fichier xml de tous vos Abonnements . Je l'ai fait et l'ai ajouté à mon lecteur rss préféré feedly.

10
répondu Halo Jones 2015-05-10 08:48:14

Si vous inspectez une page de chaîne Youtube, à l'intérieur du <head> vous trouverez un nœud META rss comme ceci:

<link rel="alternate" 
      type="application/rss+xml" title="RSS"     
      href="https://www.youtube.com/feeds/videos.xml?channel_id=UCn8zNIfYAQNdrFRrr8oibKw">

Cela devrait vous fournir les données dont vous avez besoin.

6
répondu Matt Way 2015-08-05 23:31:18

Obtenez l'id de canal en recherchant l'attribut data-channel-external-id dans le code source de la page de la chaîne YouTube. (merci à helq).

CE code va récupérer tous les titres et identifiants vidéo du flux et le vider dans un tableau:

$channel_id = 'XXX'; // put the channel id here
$youtube = file_get_contents('https://www.youtube.com/feeds/videos.xml?channel_id='.$channel_id);
$xml = simplexml_load_string($youtube, "SimpleXMLElement", LIBXML_NOCDATA);
$json = json_encode($xml);
$youtube = json_decode($json, true);
$yt_vids = array();
$count = 0;
foreach ($youtube['entry'] as $k => $v) {
    $yt_vids[$count]['id'] = str_replace('http://www.youtube.com/watch?v=', '', $v['link']['@attributes']['href']);
    $yt_vids[$count]['title'] = $v['title'];
    $count++;
}
print_r($yt_vids);
4
répondu daygloink 2015-09-29 04:22:50

J'ai créé un petit script PHP qui gratte une URL Youtube pour les liens vidéo, puis les affiche en tant que flux atom: https://gist.github.com/Skalman/801436d9693ff03bc4ce

URL telles que https://www.youtube.com/user/scishow/videos travail.

Mises en garde:

  • L'outil ne gratte pas les dates
  • les listes de lecture n'incluent pas plus de 100 Vidéos
  • les listes de lecture incluent le lien "tout Lire"
  • Author est correctement défini uniquement pour les canaux (par exemple, pas de listes de lecture)
  • peut-être que Youtube vous bloquera si vous l'utilisez trop (mais j'espère que les limites sont assez élevées)
  • Probablement plusieurs autres...
2
répondu Dan 2015-04-21 00:08:50

Il existe également RSS-Pont sorcière peut extraire les flux RSS de beaucoup de services comme Twitter, Google+, Flickr, Youtube, Identi.ca, etc.

Source: https://github.com/sebsauvage/rss-bridge

Serveur de démonstration: https://bridge.suumitsu.eu/

2
répondu Albirew 2015-05-20 17:30:08

Essayez d'utiliser cette URL: https://www.youtube.com/feeds/videos.xml?user=USERNAME

Fonctionne très bien pour moi.

2
répondu Rolland 2015-07-10 13:52:45

De Mon Billet De Blog: http://tcodesblog.blogspot.com/search/label/howtofindyouryoutubechannelfeed


COMMENT TROUVER VOTRE FLUX DE CHAÎNE YOUTUBE

Dans les vieux jours, il était facile (2009), mais maintenant il est beaucoup plus difficile à trouver (2012-présent). Voici un moyen rapide de trouver votre nouveau flux de votre chaîne YouTube. N'oubliez pas de suivre la liste correctement!
  1. D'Abord trouver votre channel id: Vous pouvez le faire en allant à votre chaîne YouTube dans le tableau de bord

  2. Copiez l'id de canal : Votre l'id de canal peut être trouvé lorsque vous visitez votre chaîne YouTube depuis le tableau de Bord

  3. Copie de votre channel id: Copiez votre channel id et remplacez channelidgoeshere ci-dessous avec votre id de canal: https://www.youtube.com/feeds/videos.xml?channel_id=channelidgoeshere

  4. Copiez l'intégralité de votre flux de chaîne YouTube et créez un flux simplifié: vous pouvez le faire en créant un lien de flux plus court dans FeedBurner à http://www.feedburner.com/ (nécessite un compte Google. Libre d'utiliser.), qui est aussi de la partie Google. Créer un nouveau flux (sélectionnez je suis un Podcaster!{[12] } pour voir vos vidéos apparaître dans le flux et pour rendre votre flux compatible avec d'autres lecteurs de flux tels que: Digg Reader, Apple iPhone Apple News App, Apple iPhone Podcasts App, Feedly, etc.)- Ou-modifiez un flux existant en copiant l'intégralité de votre flux de chaîne YouTube, puis cliquez sur enregistrer les détails du flux {[12] } comme d'habitude

  5. Votre flux de chaîne YouTube fonctionne maintenant et vos vidéos peuvent être vues dans un fichier de flux directement sur votre FeedBurner alimentation. Le mien est sur YouTube comme un flux à https://www.youtube.com/feeds/videos.xml?channel_id=UCvFR6YxwnYfLt_QqRFk_r3g et à FeedBurner comme http://feeds.feedburner.com/youtube/warrenwoodhouse avec mes vidéos qui apparaissent uniquement sous forme de texte, à titre d'exemple, car je dois mettre à jour le mien pour montrer mes vidéos. Vous pouvez modifier différents paramètres dans FeedBurner et faire d'autres choses pour que cela vaille la peine d'essayer car il est gratuit et facile à utiliser. Je recommande fortement D'utiliser FeedBurner ou un autre service de création de flux, cependant, FeedBurner est votre meilleur pari car il inclut également le mécanisme de service d'abonnement cross-feed (USM - Mécanisme D'Abonnement universel), ce qui signifie que votre flux peut être lu à partir de n'importe quel appareil compatible tel qu'un ordinateur, un téléphone mobile (avec l'application correcte installée), via un navigateur Web plus ancien (tel Qu'Internet Explorer qui prend en charge les tranches Web et les flux RSS/Atom/XML).

Votre flux peut également être ouvert dans Apple iPhone Apple News App & Apple iPhone Podcasts App sur votre Apple iPhone, Apple iPod Touch et Apple iPad si vous avez correctement défini les paramètres sur USM (Universal Abonnement Mécanisme). Une fois que cela est en vigueur, votre flux peut être consulté via différents services et appareils.

Votre flux sur FeedBurner vous permet de créer un Abonnement par e-mail, Headline Animator (qui vous montre comment un lien vers le dernier message) ainsi que le nombre d'abonnés, Chiclets et autres trucs cool.

J'espère que cette réponse s'avère utile et si vous voulez voir des pratiques de codage impressionnantes plus cool par moi, n'hésitez pas à consulter mon site Web T-Codes à http://warrenwoodhouse.webs.com/codes pour beaucoup plus de choses.

2
répondu warrenwoodhouse 2016-07-14 11:23:58

J'ai créé un exemple Yahoo Pipes ici.
http://pipes.yahoo.com/pipes/pipe.info?_id=6eeff0110a81f2ab94e8472620770b11

Vous pouvez exécuter ce tuyau en appuyant sur "Exécuter le tuyau" sans clé API remplie. Mais vous devez fournir votre propre clé API et votre identifiant de canal (qui peuvent être obtenus via l'API channels) lors du clonage. Je voulais automatiser la récupération de channelId par nom D'utilisateur YouTube mais pas facile à canaliser.

1
répondu agektmr 2015-05-09 08:12:00

J'ai créé un script batch qui crée un flux RSS de vos nouvelles vidéos d'abonnement. Vous n'avez pas besoin D'une clé API. Le script utilise 2 outils externes: YouTube-dl et Xidel.

Quoi Qu'il en soit, lisez le fil suivant, et allez à post 98 pour télécharger le script: http://code.google.com/p/gdata-issues/issues/detail?id=3946#c98

J'espère que quelqu'un code ceci en php, python, javascript, powershell ou bash.

1
répondu MatrixView 2015-05-11 12:07:07

Je pense qu'il y a quelques changements dans la réponse youtube, donc je fais quelques changements pour obtenir l'id de canal à partir du flux rss en utilisant Curl.

$channel_id = 'XXXXXXXX'; // put the channel id here

//using curl
$url = 'https://www.youtube.com/feeds/videos.xml?channel_id='.$channel_id.'&orderby=published';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
//curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'GET');
$response  = curl_exec($ch);
curl_close($ch);

$response=simplexml_load_string($response);
$json = json_encode($response);
$youtube= json_decode($json, true);

$count = 0;
if(isset($youtube['entry']['0']) && $youtube['entry']['0']!=array())
{
    foreach ($youtube['entry'] as $k => $v) {
        $yt_vids[$count]['id'] = str_replace('http://www.youtube.com/watch?v=', '', $v['link']['@attributes']['href']);
        $yt_vids[$count]['title'] = $v['title'];
        $count++;
    }
}
else
{
    $yt_vids[$count]['id']=str_replace('http://www.youtube.com/watch?v=', '', $youtube['entry']['link']['@attributes']['href']);
    $yt_vids[$count]['title']=$youtube['title'];
}
echo "<pre>";
print_r($yt_vids);
1
répondu Arshad Shaikh 2016-09-23 10:19:55
0
répondu Adam Spriggs 2016-05-10 11:34:12

Je suggère d'utiliser un excellent analyseur rss. Beaucoup d'entre eux sont disponibles, mais vous pouvez essayer de http://simplepie.org/, l'un des meilleurs que j'ai utilisé pour mes projets personnels.

C'est assez bien documenté avec quelques exemples.

Exemple d'Utilisation

Note: utilisé YouTube canal collège humour, vous pouvez l'obtenir à partir de la page de la chaîne elle-même

<?php
include_once('../autoloader.php');
// Parse it
$feed = new SimplePie();
$feed->set_feed_url('https://www.youtube.com/feeds/videos.xml?channel_id=UCPDXXXJj9nax0fr0Wfc048g');
$feed->enable_cache(false);
$feed->init();

$items = $feed->get_items();

foreach ($items as $item)
{
    echo $item->get_title() . "\n";
}

var_dump($feed->get_item_quantity());
-1
répondu Rinto George 2016-05-12 06:18:37

Moyen le plus simple d'obtenir l'id de canal:

Ouvrez Subscription Manager (panneau de gauche, sous subscriptions) et cliquez sur l'utilisateur souhaité.

L'url sera sous la forme: https://www.youtube.com/channel/XXXXXXXXXXXXXXXXX

Donc, l'url du flux devrait être:

https://www.youtube.com/feeds/videos.xml?channel_id=XXXXXXXXXXXXXXXXX

Remarque: Mieux utiliser l'id de canal plutôt que des noms d'utilisateur, car les noms d'utilisateur peuvent changer.

-1
répondu Protonotarios 2016-05-21 14:55:53