Necesitamos una lista de videos por nombre de canal de YouTube (usando la API).
Podemos obtener una lista de canales (solo el nombre del canal) utilizando la siguiente API:
https://gdata.youtube.com/feeds/api/channels?v=2&q=tendulkar
A continuación se muestra un enlace directo de canales.
https://www.youtube.com/channel/UCqAEtEr0A0Eo2IVcuWBfB9g
O
WWW.YouTube.com/channel/HC-8jgBP-4rlI
Ahora, necesitamos videos del canal >> UCqAEtEr0A0Eo2IVcuWBfB9g o HC-8jgBP-4rlI.
Nosotros tratamos
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=UC7Xayrf2k0NZizQS3
Pero eso no ayuda.
Necesitamos todos los videos publicados en el canal. Los videos cargados en un canal pueden ser de múltiples usuarios, por lo que no creo que proporcionar un parámetro de usuario ayude ...
youtube
youtube-api
Rajendra Dewani
fuente
fuente
Respuestas:
Debes mirar la API de datos de YouTube . Encontrará allí documentación sobre cómo se puede acceder a la API. También puede encontrar bibliotecas de clientes .
También puede hacer las solicitudes usted mismo. Aquí hay un ejemplo de URL que recupera los últimos videos de un canal:
Después de eso, recibirá un
JSON
identificador de video y detalles, y puede construir su URL de video de esta manera:fuente
maxResults=20
(hasta 50) videos, pero no todo el catálogo de canales. Si desea obtener más resultados, use pageToken como se describe aquí .Primero, debe obtener el ID de la lista de reproducción que representa las cargas del usuario / canal:
https://developers.google.com/youtube/v3/docs/channels/list#try-it
Puede especificar el nombre de usuario con el
forUsername={username}
parámetro o especificarmine=true
para obtener el suyo (primero debe autenticarse). Incluirpart=contentDetails
para ver las listas de reproducción.GET https://www.googleapis.com/youtube/v3/channels?part=contentDetails&forUsername=jambrose42&key={YOUR_API_KEY}
En el resultado
"relatedPlaylists"
se incluirán"likes"
y"uploads"
listas de reproducción. Toma esa"upload"
ID de la lista de reproducción. También tenga en cuenta que"id"
es su channelID para referencia futura.A continuación, obtenga una lista de videos en esa lista de reproducción:
https://developers.google.com/youtube/v3/docs/playlistItems/list#try-it
¡Solo deja caer en la lista de reproducción!
GET https://www.googleapis.com/youtube/v3/playlistItems?part=snippet%2CcontentDetails&maxResults=50&playlistId=UUpRmvjdu3ixew5ahydZ67uA&key={YOUR_API_KEY}
fuente
Aquí hay un video de Google Developers que muestra cómo listar todos los videos en un canal
v3
de la API de YouTube.Hay dos pasos:
Consultar canales para obtener el ID de "subidas". p.ej
https://www.googleapis.com/youtube/v3/channels?id={channel Id}&key={API key}&part=contentDetails
Use este ID de "cargas" para consultar PlaylistItems para obtener la lista de videos. p.ej
https://www.googleapis.com/youtube/v3/playlistItems?playlistId={"uploads" Id}&key={API key}&part=snippet&maxResults=50
fuente
Para obtener la lista de canales:
Obtener la lista de canales por forUserName :
https://www.googleapis.com/youtube/v3/channels?part=snippet,contentDetails,statistics&forUsername=Apple&key=
Obtener la lista de canales por id del canal :
https://www.googleapis.com/youtube/v3/channels/?part=snippet,contentDetails,statistics&id=UCE_M8A5yxnLfW0KghEeajjw&key=
Obtener secciones del canal:
https://www.googleapis.com/youtube/v3/channelSections?part=snippet,contentDetails&channelId=UCE_M8A5yxnLfW0KghEeajjw&key=
Para obtener listas de reproducción:
Obtenga listas de reproducción por ID de canal :
https://www.googleapis.com/youtube/v3/playlists?part=snippet,contentDetails&channelId=UCq-Fj5jknLsUf-MWSy4_brA&maxResults=50&key=
Obtenga listas de reproducción por ID de canal con pageToken :
https://www.googleapis.com/youtube/v3/playlists?part=snippet,contentDetails&channelId=UCq-Fj5jknLsUf-MWSy4_brA&maxResults=50&key= & pageToken = CDIQAA
Para obtener artículos de lista de reproducción:
Obtener lista de artículos de lista de reproducción por PlayListId :
https://www.googleapis.com/youtube/v3/playlistItems?part=snippet,contentDetails&maxResults=25&playlistId=PLHFlHpPjgk70Yv3kxQvkDEO5n5tMQia5I&key=
Para obtener videos:
Obtener lista de videos por ID de video :
https://www.googleapis.com/youtube/v3/videos?part=snippet,contentDetails,statistics&id=YxLCwfA1cLw&key=
Obtener lista de videos por ID de videos múltiples :
https://www.googleapis.com/youtube/v3/videos?part=snippet,contentDetails,statistics&id=YxLCwfA1cLw,Qgy6LaO3SB0,7yPJXGO2Dcw&key=
Obtener lista de comentarios
Obtener lista de comentarios por ID de video :
https://www.googleapis.com/youtube/v3/commentThreads?part=snippet,replies&videoId=el **** kQak & key = A ********** k
Obtener lista de comentarios por ID de canal :
https://www.googleapis.com/youtube/v3/commentThreads?part=snippet,replies&channelId=U ***** Q & key = AI ******** k
Obtener lista de comentarios por allThreadsRelatedToChannelId :
https://www.googleapis.com/youtube/v3/commentThreads?part=snippet,replies&allThreadsRelatedToChannelId=UC ***** ntcQ & key = AI ***** k
Aquí todas las API son Get enfoque.
Según la identificación del canal, no obtenemos todos los videos directamente, ese es el punto importante aquí.
Para la integración https://developers.google.com/youtube/v3/quickstart/ios?ver=swift
fuente
A continuación se muestra una alternativa a Python que no requiere ningún paquete especial. Al proporcionar la identificación del canal, devuelve una lista de enlaces de video para ese canal. Tenga en cuenta que necesita una clave API para que funcione.
fuente
video_list = get_all_video_in_channel("ABC123EFG456")
entonces podría imprimirlo para ver la matriz usandoprint(video_list)
fuente
Intenta con lo siguiente. Te puede ayudar.
https://gdata.youtube.com/feeds/api/videos?author=cnn&v=2&orderby=updated&alt=jsonc&q=news
Aquí autor, ya que puede especificar el nombre de su canal y "q", ya que puede dar su palabra clave de búsqueda.
fuente
Solo en tres pasos:
Suscripciones: lista -> https://www.googleapis.com/youtube/v3/subscriptions?part=snippet&maxResults=50&mine=true&access_token= {oauth_token}
Canales: 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}
fuente
Gracias a las referencias compartidas aquí y en otros lugares, he creado un script / herramienta en línea que se puede utilizar para obtener todos los videos de un canal.
Combina llamadas a la API a
youtube.channels.list
,playlistItems
,videos
. Utiliza funciones recursivas para hacer que las devoluciones de llamada asíncronas ejecuten la siguiente iteración al obtener una respuesta válida.Esto también sirve para limitar el número real de solicitudes realizadas a la vez, por lo que te mantiene a salvo de violar las reglas de la API de YouTube. Compartir fragmentos acortados y luego un enlace al código completo. Obtuve alrededor de la limitación máxima de 50 resultados por llamada usando el valor nextPageToken que viene en la respuesta para obtener los siguientes 50 resultados, y así sucesivamente.
Esto obtuvo una lista básica de los videos, incluyendo identificación, título, fecha de publicación y similares. Pero para obtener más detalles de cada video, como recuentos de visitas y me gusta, uno tiene que hacer llamadas a la API
videos
.Vea el código completo aquí y la versión en vivo aquí . (Editar: enlace fijo de github)
Editar: Dependencias: JQuery, Papa.parse
fuente
Dado que todos los que responden esta pregunta tienen problemas debido al límite de 500 videos, aquí hay una solución alternativa que usa youtube_dl en Python 3 . Además, no se necesita una clave API .
sudo pip3 install youtube-dl
Ejemplo (advertencia: toma decenas de minutos):
fuente
@for /f "usebackq tokens=2 delims=: " %a in (`dl-list.py^|findstr information`) do @echo https://www.youtube.com/watch?v=%a
. Imprimirá toda la URL de los videos.PLAYLIST_ID
puede ser una lista de reproducción o un ID de canal.dl-list.py
.Con la versión 2 de la API, que está en desuso, la URL para las cargas (del canal UCqAEtEr0A0Eo2IVcuWBfB9g) es:
https://gdata.youtube.com/feeds/users/UCqAEtEr0A0Eo2IVcuWBfB9g/uploads
Hay una versión API 3.
fuente
Recientemente tuve que recuperar todos los videos de un canal, y de acuerdo con la documentación del desarrollador de YouTube: https://developers.google.com/youtube/v3/docs/playlistItems/list
¿Dónde
$service
está tuGoogle_Service_YouTube
objeto?Por lo tanto, debe obtener información del canal para recuperar la lista de reproducción de "subidas" que realmente tiene todos los videos subidos por el canal: https://developers.google.com/youtube/v3/docs/channels/list
Si es nuevo con esta API, le recomiendo convertir la muestra de código del fragmento predeterminado a la muestra completa.
Entonces, el código básico para recuperar todos los videos de un canal puede ser:
fuente
Solución de muestra en Python. Ayuda tomada de este video: video Al igual que muchas otras respuestas, la identificación de carga debe recuperarse primero de la identificación del canal.
fuente
Los enlaces descargados del canal de youtube, no conservan la estructura del directorio. Entonces, escribí un código para que eso suceda. Use esto una vez que descargue los videos de la manera aceptada arriba. ``
``
fuente
Como dice la documentación ( enlace ), puede usar el tipo de recurso del canal y la Lista de operaciones para obtener todos los videos en un canal. Esta operación debe realizarse utilizando el argumento 'id del canal'.
fuente