Nun, da API v2 weg ist, was wäre ein Weg, um einen einfachen RSS-Feed eines Kanals ohne v3-API zu erhalten? Ich bin offen für Yahoo Pipes oder andere Problemumgehungen, die einfacher sind als das Erstellen einer Anwendung für die v3-API, wenn das Ziel ein Feed-Reader ist. Ich brauche nur einen RSS-Feed. Es war bis jetzt öffentlich verfügbar und kann jetzt jeden Moment eingestellt werden (denke ich). Warum also nicht mehr ohne API-Schlüssel darauf zugreifen.
Im Abschnitt RSS Readerhttps://support.google.com/youtube/answer/6098135?hl=de können Sie Ihre Abonnements in eine OPML-Datei exportieren. Wenn Sie sich dann den Inhalt der OPML ansehen, können Sie die Feeds extrahieren. Die Struktur jedes Feeds lautet:
https://www.youtube.com/feeds/videos.xml?channel_id=XXXX
Sie können also aus dieser Struktur neue Feeds generieren, wenn Sie die Kanal-ID kennen. Bei dieser Art von Feeds wird nicht die Fehlermeldung " https://youtube.com/devicesupport " angezeigt. Ich gehe davon aus, dass sie weiterarbeiten werden.
Sie können die Feeds wie folgt erhalten:
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
Das bisher unterstützte JSON-Format (mit dem zusätzlichen Parameter &alt=JSON
) wird jedoch nicht mehr unterstützt.
Außerdem können Sie API-Schlüssel für den öffentlichen Zugriff auf Ihre YouTube-Videos über Ihre Entwicklerkonsole anfordern und YouTube-Videos sowie Playlists im JSON-Format wie folgt erhalten:
- 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}
Weitere Informationen finden Sie in YouTube v3 docs .
klicken Sie in Ihrem Tube auf die Abonnements im linken Fensterbereich. Dadurch werden alle Ihre Abonnements in der Mitte der Seite geöffnet. Scrollen Sie nach unten und Sie finden eine Schaltfläche "In RSS-Reader exportieren", die eine XML-Datei aller Ihrer Abonnements erstellt. Ich habe dies getan und es meinem bevorzugten RSS-Reader hinzugefügt.
Wenn Sie eine Youtube-Kanalseite untersuchen, finden Sie im <head>
einen RSS-Metaknoten wie folgt:
<link rel="alternate"
type="application/rss+xml" title="RSS"
href="https://www.youtube.com/feeds/videos.xml?channel_id=UCn8zNIfYAQNdrFRrr8oibKw">
Dies sollte Ihnen die Daten liefern, die Sie benötigen.
Rufen Sie die Kanal-ID ab, indem Sie im Quellcode der YouTube-Kanalseite nach dem Attribut Datenkanal-Extern-ID suchen. (Danke an helq).
Mit diesem Code werden alle Videotitel und -IDs aus dem Feed abgerufen und in einem Array abgelegt:
$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);
Aus meinem Blogbeitrag: http://tcodesblog.blogspot.com/search/label/howtofindyouryoutubechannelfeed
Finde zuerst dein kanal ID: Sie können dies tun, indem Sie im Dashboard zu Ihrem YouTube-Kanal wechseln
Kopiere das kanal ID: Ihre kanal ID können Sie finden, wenn Sie Ihren YouTube-Kanal im Dashboard besuchen
Kopieren Sie Ihre kanal ID: Kopieren Sie Ihre kanal ID und ersetzen channelidgoeshere unten mit deinem kanal ID: https://www.youtube.com/feeds/videos.xml?channel_id=channelidgoeshere
Kopieren Sie Ihren gesamten YouTube-Kanal-Feed und erstellen Sie einen vereinfachten Feed: Erstellen Sie dazu einen kürzeren Feed-Link in FeedBurner unter http://www.feedburner.com/
(Benötigt ein Google-Konto. Frei zur Verwendung.), Das ebenfalls Bestandteil von Google ist. Einen neuen Feed erstellen (auswählen Ich bin ein Podcaster! Damit Ihre Videos im Feed angezeigt werden und Ihr Feed mit anderen Feed-Readern kompatibel ist, z. B. Digg Reader, Apple iPhone, Apple News-App, Apple iPhone-Podcasts-App, Feedly usw.) -oder- Bearbeiten Sie einen vorhandenen, indem Sie Ihre gesamten YouTube-Kanal-Feed und klicken Sie dann auf Feed-Details speichern wie normal
Ihr YouTube-Kanal-Feed funktioniert jetzt und Ihre Videos sind in einer Feed-Datei direkt in Ihrem FeedBurner-Feed zu sehen. Meiner ist bei YouTube als Feed bei https://www.youtube.com/feeds/videos.xml?channel_id=UCvFR6YxwnYfLt_QqRFk_r3g
& bei FeedBurner als http://feeds.feedburner.com/youtube/warrenwoodhouse
mit meinen Videos, die nur als Textformat erscheinen, zum Beispiel, da ich meine aktualisieren muss, um meine Videos anzuzeigen. Sie können verschiedene Einstellungen in FeedBurner ändern und andere Dinge tun, so dass es einen Versuch wert ist, da es kostenlos und einfach zu verwenden ist. Ich empfehle dringend die Verwendung von FeedBurner oder eines anderen Feederstellungsdienstes. FeedBurner ist jedoch die beste Wahl, da es auch einen Crossfeed-Abonnementdienstmechanismus (USM - Universal Subscription Mechanism) enthält, der bedeutet, dass Ihr Feed von jedem kompatiblen Gerät wie z Computer, Mobiltelefon (mit der richtigen App installiert), über einen älteren Webbrowser (z. B. Internet Explorer, der Web Slices und RSS/Atom/XML-Feeds unterstützt).
Ihr Feed kann auch in der Apple iPhone App Apple News App und der Apple iPhone Podcasts App auf Ihrem Apple iPhone, Apple iPod Touch und Apple iPad geöffnet werden, wenn Sie die Einstellungen korrekt auf USM (Universal Subscription Mechanism) eingestellt haben. Sobald dies aktiviert ist, kann Ihr Feed über verschiedene Dienste und Geräte angezeigt werden.
Ihr Feed bei FeedBurner ermöglicht Ihnen das Erstellen eines E-Mail-Abonnements, Headline Animator (der Ihnen zeigt, wie ein Link zum neuesten Beitrag ist) sowie die Anzahl der Abonnenten, Chiclets und andere coole Dinge.
Ich hoffe, dass sich diese Antwort als nützlich erweist. Wenn Sie weitere coole Codierungsmethoden von mir sehen möchten, schauen Sie sich bitte meine T-Codes-Website unter http://warrenwoodhouse.webs.com/codes
an, um mehr zu erfahren.
Es gibt auch eine RSS-Bridge, die RSS-Feeds aus vielen Diensten wie Twitter, Google+, Flickr, Youtube, Identi.ca usw. extrahieren kann.
quelle: https://github.com/sebsauvage/rss-bridge
demo-Server: https://bridge.suumitsu.eu/
Ich habe ein kleines PHP Skript erstellt, das eine Youtube-URL nach Videolinks durchsucht und dann als Atom-Feed ausgibt: https://Gist.github.com/Skalman/801436d9693ff03bc4ce
URLs wie https://www.youtube.com/user/scishow/videos funktionieren.
Vorsichtsmaßnahmen:
versuchen Sie es mit dieser URL: https://www.youtube.com/feeds/videos.xml?user=USERNAME
Funktioniert gut für mich.
Ich habe hier ein Beispiel für Yahoo Pipes erstellt.
http://pipes.yahoo.com/pipes/pipe.info?_id=6eeff0110a81f2ab94e8472620770b11
Sie können diese Pipe ausführen, indem Sie "Run Pipe" drücken, ohne dass der API-Schlüssel gefüllt ist. Beim Klonen müssen Sie jedoch Ihren eigenen API-Schlüssel und Ihre Kanal-ID angeben (die Sie über die Kanal-API erhalten können). Wollte das Abrufen der channelId mit dem YouTube-Nutzernamen automatisieren, aber nicht einfach per Pipe.
Ich habe ein Batch-Skript erstellt, das einen RSS-Feed Ihrer neuen Abonnementvideos erstellt. Sie benötigen keinen API-Schlüssel. Das Skript verwendet zwei externe Tools: YouTube-DL und Xidel.
Lesen Sie den folgenden Thread auf jeden Fall und gehen Sie zum Beitrag 98, um das Skript herunterzuladen: http://code.google.com/p/gdata-issues/issues/detail?id=3946#c98
Ich hoffe, jemand codiert dies mit PHP, Python, Javascript, Powershell oder Bash.
Ich denke, es gibt einige Änderungen in der Antwort von Youtube, also habe ich einige Änderungen vorgenommen, um die Kanal-ID aus dem RSS-Feed mit Curl zu erhalten.
$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);
Ich habe eine Chrome-Erweiterung namens Youtube RSS-ify gefunden, die ein RSS-Symbol auf Video-, Kanal- und Navigationsseiten einfügt. Es war genau das, wonach ich gesucht hatte.
Icons sehen so aus:
Ich habe den folgenden Code verwendet, um Youtube Feed mit dem benutzerdefinierten Feld "ACF plugin" wordpress zu integrieren & FancyBox
<?php
$channel_id = get_field('youtube_chanel_id'); //ACF text field
if ($channel_id){ // if channel_id not empty -- START
$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);
echo'<div class="col-md-12 youtube-videos-feed">';
foreach ($youtube['entry'] as $k => $v) {
$id = str_replace(array("yt:video:"), "", $v['id']); // Remove "yt:video:" from ID value
//$date = $v['updated']; // video updated date (disabled for now)
$title = $v['title']; // video title
echo '<a class="with-video" href="https://www.youtube.com/watch?v=',$id,'&autoplay=1&rel=0&controls=0&showinfo=0&modestbranding=0" data-fancybox="videos" data-caption="',$title,'" title="',$title,'" >
<div class="col-md-3 main-image post-image img-fancy">
<img src="https://img.youtube.com/vi/',$id,'/0.jpg" alt="',$title,'" >
</div>
</a>';
}
echo'</div>';
} // if channel_id not empty -- END
?>