Potrzebujemy listy filmów według nazwy kanału YouTube (przy użyciu interfejsu API).
Możemy uzyskać listę kanałów (tylko nazwa kanału), używając poniższego interfejsu API:
https://gdata.youtube.com/feeds/api/channels?v=2&q=tendulkar
Poniżej znajduje się bezpośredni link do kanałów
https://www.youtube.com/channel/UCqAEtEr0A0Eo2IVcuWBfB9g
Lub
WWW.YouTube.com/channel/HC-8jgBP-4rlI
Teraz potrzebujemy filmów z kanału >> UCqAEtEr0A0Eo2IVcuWBfB9g lub HC-8jgBP-4rlI.
Próbowaliśmy
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=UC7XayDNQ3S04
Ale to nie pomaga.
Potrzebujemy wszystkich filmów opublikowanych na kanale. Filmy przesłane do kanału mogą pochodzić od wielu użytkowników, więc nie sądzę, aby podanie parametru użytkownika pomogło ...
youtube
youtube-api
Rajendra Dewani
źródło
źródło
Odpowiedzi:
Musisz spojrzeć na interfejs YouTube Data API . Znajdziesz tam dokumentację dotyczącą sposobu dostępu do API. Możesz także znaleźć biblioteki klienta .
Możesz również sam złożyć prośby. Oto przykładowy adres URL, który pobiera najnowsze filmy z kanału:
Następnie otrzymasz
JSON
identyfikatory wideo i szczegóły oraz możesz skonstruować swój adres URL wideo w następujący sposób:źródło
maxResults=20
(maksymalnie 50) filmów, ale nie całego katalogu kanałów. Jeśli chcesz uzyskać więcej wyników, użyj pageToken, jak opisano tutaj .Najpierw musisz uzyskać identyfikator listy odtwarzania reprezentującej przesłane przez użytkownika / kanał:
https://developers.google.com/youtube/v3/docs/channels/list#try-it
Możesz podać nazwę użytkownika za pomocą
forUsername={username}
parametru lub określić,mine=true
aby uzyskać własną (musisz najpierw uwierzytelnić). Dołącz,part=contentDetails
aby zobaczyć listy odtwarzania.GET https://www.googleapis.com/youtube/v3/channels?part=contentDetails&forUsername=jambrose42&key={YOUR_API_KEY}
W rezultacie
"relatedPlaylists"
zostaną uwzględnione"likes"
i"uploads"
listy odtwarzania. Chwyć ten"upload"
identyfikator listy odtwarzania. Zwróć także uwagę, że"id"
jest to identyfikator Twojego kanału na wypadek, gdyby okazało się, że będziesz w przyszłości.Następnie uzyskaj listę filmów na tej liście odtwarzania:
https://developers.google.com/youtube/v3/docs/playlistItems/list#try-it
Po prostu dodaj listę odtwarzania!
GET https://www.googleapis.com/youtube/v3/playlistItems?part=snippet%2CcontentDetails&maxResults=50&playlistId=UUpRmvjdu3ixew5ahydZ67uA&key={YOUR_API_KEY}
źródło
Oto film od programistów Google pokazujący, jak wyświetlić listę wszystkich filmów na kanale w
v3
interfejsie API YouTube.Istnieją dwa kroki:
Zapytaj kanały, aby uzyskać identyfikator „przesłane”. na przykład
https://www.googleapis.com/youtube/v3/channels?id={channel Id}&key={API key}&part=contentDetails
Użyj tego „przesłanego” identyfikatora, aby wyszukać PlaylistItems w celu uzyskania listy filmów. na przykład
https://www.googleapis.com/youtube/v3/playlistItems?playlistId={"uploads" Id}&key={API key}&part=snippet&maxResults=50
źródło
Aby uzyskać listę kanałów:
Pobierz listę kanałów według forUserName :
https://www.googleapis.com/youtube/v3/channels?part=snippet,contentDetails,statistics&forUsername=Apple&key=
Pobierz listę kanałów według identyfikatora kanału :
https://www.googleapis.com/youtube/v3/channels/?part=snippet,contentDetails,statistics&id=UCE_M8A5yxnLfW0KghEeajjw&key=
Uzyskaj sekcje kanału:
https://www.googleapis.com/youtube/v3/channelSections?part=snippet,contentDetails&channelId=UCE_M8A5yxnLfW0KghEeajjw&key=
Aby uzyskać listy odtwarzania:
Pobierz listy odtwarzania według identyfikatora kanału :
https://www.googleapis.com/youtube/v3/playlists?part=snippet,contentDetails&channelId=UCq-Fj5jknLsUf-MWSy4_brA&maxResults=50&key=
Pobierz listy odtwarzania według identyfikatora kanału za pomocą pageToken :
https://www.googleapis.com/youtube/v3/playlists?part=snippet,contentDetails&channelId=UCq-Fj5jknLsUf-MWSy4_brA&maxResults=50&key= & pageToken = CDIQAA
Aby uzyskać PlaylistItems:
Pobierz listę PlaylistItems od PlayListId :
https://www.googleapis.com/youtube/v3/playlistItems?part=snippet,contentDetails&maxResults=25&playlistId=PLHFlHpPjgk70Yv3kxQvkDEO5n5tMQia5I&key=
Aby uzyskać filmy:
Pobierz listę filmów według identyfikatora wideo :
https://www.googleapis.com/youtube/v3/videos?part=snippet,contentDetails,statistics&id=YxLCwfA1cLw&key=
Pobierz listę filmów według identyfikatora wielu filmów :
https://www.googleapis.com/youtube/v3/videos?part=snippet,contentDetails,statistics&id=YxLCwfA1cLw,Qgy6LaO3SB0,7yPJXGO2Dcw&key=
Uzyskaj listę komentarzy
Uzyskaj listę komentarzy według identyfikatora wideo :
https://www.googleapis.com/youtube/v3/commentThreads?part=snippet,replies&videoId=el **** kQak & key = A ********** k
Uzyskaj listę komentarzy według identyfikatora kanału :
https://www.googleapis.com/youtube/v3/commentThreads?part=snippet,replies&channelId=U ***** Pytanie i klucz = AI ******** k
Uzyskaj listę komentarzy od allThreadsRelatedToChannelId :
https://www.googleapis.com/youtube/v3/commentThreads?part=snippet,replies&allThreadsRelatedToChannelId=UC ***** ntcQ & key = AI ***** k
Tutaj wszystkie api mają podejście Get .
Na podstawie identyfikatora kanału nie otrzymujemy wszystkich filmów bezpośrednio, to jest tutaj ważny punkt.
Do integracji https://developers.google.com/youtube/v3/quickstart/ios?ver=swift
źródło
Poniżej znajduje się alternatywa dla Pythona, która nie wymaga żadnych specjalnych pakietów. Podając identyfikator kanału, zwraca listę linków wideo dla tego kanału. Pamiętaj, że potrzebujesz klucza API , aby działał.
źródło
video_list = get_all_video_in_channel("ABC123EFG456")
wtedy możesz go wydrukować, aby zobaczyć tablicę używającprint(video_list)
źródło
Spróbuj wykonać następujące czynności. To może ci pomóc.
https://gdata.youtube.com/feeds/api/videos?author=cnn&v=2&orderby=updated&alt=jsonc&q=news
Tutaj autor, ponieważ możesz podać nazwę kanału i „q”, ponieważ możesz podać słowo kluczowe wyszukiwania.
źródło
Tylko w trzech krokach:
Subskrypcje: lista -> https://www.googleapis.com/youtube/v3/subscriptions?part=snippet&maxResults=50&mine=true&access_token= {oauth_token}
Kanały: lista -> 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}
źródło
Dzięki referencjom udostępnionym tutaj i gdzie indziej stworzyłem skrypt online / narzędzie, którego można użyć do uzyskania wszystkich filmów z kanału.
Łączy wywołań API do
youtube.channels.list
,playlistItems
,videos
. Używa funkcji rekurencyjnych, aby asynchroniczne wywołania zwrotne uruchamiały następną iterację po otrzymaniu poprawnej odpowiedzi.Służy to również ograniczeniu faktycznej liczby żądań wysyłanych jednocześnie, tym samym chroniąc Cię przed naruszeniem reguł API YouTube. Udostępnianie skróconych fragmentów, a następnie link do pełnego kodu. Osiągnąłem około 50 maksymalnych wyników na ograniczenie połączenia, używając wartości nextPageToken, która pojawia się w odpowiedzi na pobranie następnych 50 wyników i tak dalej.
Otrzymało to podstawową listę filmów, w tym identyfikator, tytuł, datę publikacji i podobne. Ale aby uzyskać więcej szczegółów na temat każdego filmu, takich jak liczba wyświetleń i polubienia, należy wykonać wywołania API
videos
.Zobacz pełny kod tutaj , a wersję na żywo tutaj . (Edycja: naprawiono link github)
Edycja: Zależności: JQuery, Papa.parse
źródło
Ponieważ każdy, kto odpowiada na to pytanie, ma problemy z powodu limitu 500 filmów, oto alternatywne rozwiązanie, używając youtube_dl w Pythonie 3 . Ponadto nie jest wymagany klucz API .
sudo pip3 install youtube-dl
Przykład (ostrzeżenie - trwa kilkadziesiąt minut):
źródło
@for /f "usebackq tokens=2 delims=: " %a in (`dl-list.py^|findstr information`) do @echo https://www.youtube.com/watch?v=%a
. Spowoduje to wydrukowanie całego adresu URL filmów.PLAYLIST_ID
może być listą odtwarzania lub identyfikatorem kanału.dl-list.py
.Przy użyciu nieaktualnego interfejsu API w wersji 2 adres URL przesyłania (kanału UCqAEtEr0A0Eo2IVcuWBfB9g) to:
https://gdata.youtube.com/feeds/users/UCqAEtEr0A0Eo2IVcuWBfB9g/uploads
Istnieje wersja API 3.
źródło
Ostatnio musiałem pobrać wszystkie filmy z kanału i zgodnie z dokumentacją dla programistów YouTube: https://developers.google.com/youtube/v3/docs/playlistItems/list
Gdzie
$service
jest twójGoogle_Service_YouTube
przedmiot?Musisz więc pobrać informacje z kanału, aby pobrać listę odtwarzania „przesyłane”, która faktycznie zawiera wszystkie filmy przesłane przez kanał: https://developers.google.com/youtube/v3/docs/channels/list
Jeśli nowy z tym interfejsem API, jest wysoce zalecany, aby zmienić przykładowy kod z domyślnego fragmentu kodu na pełny przykład.
Podstawowym kodem do pobierania wszystkich filmów z kanału może być:
źródło
Przykładowe rozwiązanie w Pythonie. Pomoc zaczerpnięta z tego filmu: wideo Podobnie jak wiele innych odpowiedzi, identyfikator przesyłania należy najpierw pobrać z identyfikatora kanału.
źródło
Linki pobrane z kanału youtube, nie zachowuj struktury katalogów. Więc napisałem kod, aby to się stało. Użyj tego po pobraniu filmów z wyżej zaakceptowanego sposobu. `
`
źródło
Jak stwierdza dokumentacja ( link ), możesz użyć typu zasobu kanału i listy operacji, aby uzyskać wszystkie filmy w kanale. Tę operację należy wykonać przy użyciu argumentu „identyfikator kanału”.
źródło