Wir benötigen eine Videoliste nach dem Kanalnamen von YouTube (unter Verwendung der API).
Wir können eine Kanalliste (nur Kanalname) erhalten, indem wir die folgende API verwenden:
https://gdata.youtube.com/feeds/api/channels?v=2&q=tendulkar
Unten finden Sie einen direkten Link zu den Kanälen
https://www.youtube.com/channel/UCqAEtEr0A0Eo2IVcuWBfB9g
Oder
WWW.YouTube.com/channel/HC-8jgBP-4rlI
Jetzt brauchen wir Videos von Kanal >> UCqAEtEr0A0Eo2IVcuWBfB9g oder HC-8jgBP-4rlI.
Wir haben es versucht
https://gdata.youtube.com/feeds/api/videos?v=2&uploader=partner&User=UC7Xayrf2k0NZiz3S04WuDNQ https://gdata.youtube.com/feeds/api/videos?v=2&uploader=partner&q=UC7Xayrf2
Aber es hilft nicht.
Wir brauchen alle Videos, die auf dem Kanal gepostet werden. Auf einen Kanal hochgeladene Videos können von mehreren Benutzern stammen, daher glaube ich nicht, dass die Bereitstellung eines Benutzerparameters hilfreich wäre ...
quelle
Antworten:
Sie müssen sich die YouTube-Daten-API ansehen . Dort finden Sie eine Dokumentation darüber, wie auf die API zugegriffen werden kann. Sie können auch Client-Bibliotheken finden .
Sie können die Anfragen auch selbst stellen. Hier ist eine Beispiel-URL, die die neuesten Videos von einem Kanal abruft:
Danach erhalten Sie eine
JSON
mit Video-IDs und Details, und Sie können Ihre Video-URL wie folgt erstellen:quelle
maxResults=20
(bis zu 50) Videos zurück, nicht jedoch den gesamten Kanalkatalog. Wenn Sie weitere Ergebnisse erzielen möchten, verwenden Sie das pageToken wie hier beschrieben .Zunächst müssen Sie die ID der Wiedergabeliste abrufen, die die Uploads vom Benutzer / Kanal darstellt:
https://developers.google.com/youtube/v3/docs/channels/list#try-it
Sie können den Benutzernamen mit dem
forUsername={username}
Parameter angeben oder angebenmine=true
, um Ihren eigenen zu erhalten (Sie müssen sich zuerst authentifizieren). Einschließenpart=contentDetails
, um die Wiedergabelisten anzuzeigen.GET https://www.googleapis.com/youtube/v3/channels?part=contentDetails&forUsername=jambrose42&key={YOUR_API_KEY}
Das Ergebnis
"relatedPlaylists"
enthält"likes"
und"uploads"
Wiedergabelisten. Besorgen Sie sich die"upload"
ID der Wiedergabeliste. Beachten"id"
Sie auch, dass dies Ihre Kanal-ID ist, damit Sie später darauf zurückgreifen können.Als nächstes erhalten Sie eine Liste der Videos in dieser Wiedergabeliste:
https://developers.google.com/youtube/v3/docs/playlistItems/list#try-it
Einfach in die PlaylistId einfügen!
GET https://www.googleapis.com/youtube/v3/playlistItems?part=snippet%2CcontentDetails&maxResults=50&playlistId=UUpRmvjdu3ixew5ahydZ67uA&key={YOUR_API_KEY}
quelle
Hier ist ein Video von Google-Entwicklern, das zeigt, wie alle Videos in einem Kanal
v3
der YouTube-API aufgelistet werden.Es gibt zwei Schritte:
Fragen Sie Kanäle ab, um die ID "Uploads" zu erhalten. z.B
https://www.googleapis.com/youtube/v3/channels?id={channel Id}&key={API key}&part=contentDetails
Verwenden Sie diese "Uploads" -ID, um PlaylistItems abzufragen und die Liste der Videos abzurufen. z.B
https://www.googleapis.com/youtube/v3/playlistItems?playlistId={"uploads" Id}&key={API key}&part=snippet&maxResults=50
quelle
So erhalten Sie eine Kanalliste:
Kanalliste mit forUserName abrufen :
https://www.googleapis.com/youtube/v3/channels?part=snippet,contentDetails,statistics&forUsername=Apple&key=
Kanalliste nach Kanal-ID abrufen :
https://www.googleapis.com/youtube/v3/channels/?part=snippet,contentDetails,statistics&id=UCE_M8A5yxnLfW0KghEeajjw&key=
Kanalabschnitte abrufen:
https://www.googleapis.com/youtube/v3/channelSections?part=snippet,contentDetails&channelId=UCE_M8A5yxnLfW0KghEeajjw&key=
So erhalten Sie Wiedergabelisten:
Holen Sie sich Wiedergabelisten nach Kanal-ID :
https://www.googleapis.com/youtube/v3/playlists?part=snippet,contentDetails&channelId=UCq-Fj5jknLsUf-MWSy4_brA&maxResults=50&key=
Holen Sie sich Wiedergabelisten nach Kanal-ID mit pageToken :
https://www.googleapis.com/youtube/v3/playlists?part=snippet,contentDetails&channelId=UCq-Fj5jknLsUf-MWSy4_brA&maxResults=50&key= & pageToken = CDIQAA
So erhalten Sie PlaylistItems:
Holen Sie sich die PlaylistItems-Liste von PlayListId :
https://www.googleapis.com/youtube/v3/playlistItems?part=snippet,contentDetails&maxResults=25&playlistId=PLHFlHpPjgk70Yv3kxQvkDEO5n5tMQia5I&key=
So erhalten Sie Videos:
Video- Liste nach Video-ID abrufen :
https://www.googleapis.com/youtube/v3/videos?part=snippet,contentDetails,statistics&id=YxLCwfA1cLw&key=
Holen Sie sich die Liste der Videos nach mehreren Videos ID :
https://www.googleapis.com/youtube/v3/videos?part=snippet,contentDetails,statistics&id=YxLCwfA1cLw,Qgy6LaO3SB0,7yPJXGO2Dcw&key=
Erhalten Kommentarliste
Kommentarliste per Video-ID abrufen :
https://www.googleapis.com/youtube/v3/commentThreads?part=snippet,replies&videoId=el **** kQak & key = A ********** k
Kommentarliste nach Kanal-ID abrufen :
https://www.googleapis.com/youtube/v3/commentThreads?part=snippet,replies&channelId=U ***** Q & key = AI ******** k
Kommentarliste von allThreadsRelatedToChannelId abrufen :
https://www.googleapis.com/youtube/v3/commentThreads?part=snippet,replies&allThreadsRelatedToChannelId=UC ***** ntcQ & key = AI ***** k
Hier sind alle APIs Get Ansatz.
Basierend auf der Kanal-ID erhalten wir nicht alle Videos direkt, das ist hier der wichtige Punkt.
Zur Integration https://developers.google.com/youtube/v3/quickstart/ios?ver=swift
quelle
Unten finden Sie eine Python-Alternative, für die keine speziellen Pakete erforderlich sind. Durch Angabe der Kanal-ID wird eine Liste der Videolinks für diesen Kanal zurückgegeben. Bitte beachten Sie, dass Sie einen API-Schlüssel benötigen , damit dies funktioniert.
quelle
video_list = get_all_video_in_channel("ABC123EFG456")
Dann könnten Sie es ausdrucken, um das Array mitprint(video_list)
quelle
Versuchen Sie es wie folgt. Es kann Ihnen helfen.
https://gdata.youtube.com/feeds/api/videos?author=cnn&v=2&orderby=updated&alt=jsonc&q=news
Hier können Sie als Autor Ihren Kanalnamen und "q" als Suchschlüssel angeben.
quelle
Nur in drei Schritten:
Abonnements: Liste -> https://www.googleapis.com/youtube/v3/subscriptions?part=snippet&maxResults=50&mine=true&access_token= {oauth_token}
Kanäle: Liste -> https://www.googleapis.com/youtube/v3/channels?part=contentDetails&id= {channel_id} & key = {YOUR_API_KEY}
PlaylistItems: list -> https://www.googleapis.com/youtube/v3/playlistItems?part=snippet&playlistId= {playlist_id} & key = {YOUR_API_KEY}
quelle
Dank der hier und anderswo geteilten Referenzen habe ich ein Online-Skript / Tool erstellt, mit dem alle Videos eines Kanals abgerufen werden können.
Es kombiniert API - Aufrufe
youtube.channels.list
,playlistItems
,videos
. Es verwendet rekursive Funktionen, damit die asynchronen Rückrufe die nächste Iteration ausführen, sobald eine gültige Antwort erhalten wird.Dies dient auch dazu, die tatsächliche Anzahl der gleichzeitig gestellten Anfragen zu begrenzen und dich so vor Verstößen gegen die YouTube-API-Regeln zu schützen. Teilen Sie verkürzte Snippets und dann einen Link zum vollständigen Code. Ich habe die maximale Anzahl von 50 Ergebnissen pro Anruf erreicht, indem ich den nextPageToken-Wert verwendet habe, der in der Antwort zum Abrufen der nächsten 50 Ergebnisse usw. enthalten ist.
Dies führte zu einer grundlegenden Auflistung der Videos, einschließlich ID, Titel, Veröffentlichungsdatum und ähnlichem. Um jedoch detailliertere Informationen zu den einzelnen Videos zu erhalten, z. B. Anzahl und Likes der Ansicht, müssen API-Aufrufe durchgeführt werden
videos
.Den vollständigen Code finden Sie hier und die Live-Version hier . (Bearbeiten: fester Github-Link)
Bearbeiten: Abhängigkeiten: JQuery, Papa.parse
quelle
Da jeder, der diese Frage beantwortet, aufgrund des Limits von 500 Videos Probleme hat , gibt es hier eine alternative Lösung mit youtube_dl in Python 3 . Außerdem wird kein API-Schlüssel benötigt .
sudo pip3 install youtube-dl
Beispiel (Warnung - dauert mehrere zehn Minuten):
quelle
@for /f "usebackq tokens=2 delims=: " %a in (`dl-list.py^|findstr information`) do @echo https://www.youtube.com/watch?v=%a
. Es wird die gesamte URL der Videos gedruckt.PLAYLIST_ID
kann eine Wiedergabeliste oder eine Kanal-ID sein.dl-list.py
.Unter Verwendung der veralteten API-Version 2 lautet die URL für Uploads (des Kanals UCqAEtEr0A0Eo2IVcuWBfB9g):
https://gdata.youtube.com/feeds/users/UCqAEtEr0A0Eo2IVcuWBfB9g/uploads
Es gibt eine API-Version 3.
quelle
Vor kurzem musste ich alle Videos von einem Kanal abrufen und laut YouTube-Entwicklerdokumentation: https://developers.google.com/youtube/v3/docs/playlistItems/list
Wo
$service
ist deinGoogle_Service_YouTube
Objekt?Sie müssen also Informationen aus dem Kanal abrufen, um die Wiedergabeliste "Uploads" abzurufen, in der alle vom Kanal hochgeladenen Videos enthalten sind: https://developers.google.com/youtube/v3/docs/channels/list
Wenn diese API neu ist, empfehle ich dringend, das Codebeispiel vom Standard-Snippet in das vollständige Beispiel umzuwandeln.
Der grundlegende Code zum Abrufen aller Videos von einem Kanal kann also sein:
quelle
Beispiellösung in Python. Hilfe aus diesem Video: Video Wie bei vielen anderen Antworten muss die Upload-ID zuerst von der Kanal-ID abgerufen werden.
quelle
Vom YouTube-Kanal heruntergeladene Links, Verzeichnisstruktur nicht beibehalten. Also habe ich einen Code geschrieben, um dies zu ermöglichen. Verwenden Sie diese Option, sobald Sie die Videos von der oben akzeptierten Weise heruntergeladen haben. `
`
quelle
Wie in der Dokumentation angegeben ( Link ), können Sie den Ressourcentyp und die Operationsliste des Kanals verwenden, um alle Videos in einem Kanal abzurufen. Diese Operation muss mit dem Argument 'Kanal-ID' ausgeführt werden.
quelle