Precisamos de uma lista de vídeos pelo nome do canal do YouTube (usando a API).
Podemos obter uma lista de canais (apenas o nome do canal) usando a API abaixo:
https://gdata.youtube.com/feeds/api/channels?v=2&q=tendulkar
Abaixo está um link direto de canais
https://www.youtube.com/channel/UCqAEtEr0A0Eo2IVcuWBfB9g
Ou
WWW.YouTube.com/channel/HC-8jgBP-4rlI
Agora, precisamos de vídeos do canal >> UCqAEtEr0A0Eo2IVcuWBfB9g ou HC-8jgBP-4rlI.
Nós tentamos
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=UC7Xayrf2k0NZiz3S04
Mas isso não ajuda.
Precisamos de todos os vídeos postados no canal. Os vídeos enviados para um canal podem ser de vários usuários, portanto, não acho que fornecer um parâmetro de usuário ajudaria ...
youtube
youtube-api
Rajendra Dewani
fonte
fonte
Respostas:
Você precisa olhar para a API de dados do YouTube . Você encontrará documentação sobre como a API pode ser acessada. Você também pode encontrar bibliotecas clientes .
Você também pode fazer os pedidos você mesmo. Aqui está um exemplo de URL que recupera os vídeos mais recentes de um canal:
Depois disso, você receberá um
JSON
ID e detalhes do vídeo e poderá construir o URL do seu vídeo assim:fonte
maxResults=20
(até 50) vídeos, mas não o catálogo inteiro do canal. Se você deseja obter mais resultados, use o pageToken conforme descrito aqui .Primeiro, você precisa obter o ID da lista de reprodução que representa os envios do usuário / canal:
https://developers.google.com/youtube/v3/docs/channels/list#try-it
Você pode especificar o nome de usuário com o
forUsername={username}
parâmetro ou especificarmine=true
para obter o seu próprio (você precisa se autenticar primeiro). Incluirpart=contentDetails
para ver as listas de reprodução.GET https://www.googleapis.com/youtube/v3/channels?part=contentDetails&forUsername=jambrose42&key={YOUR_API_KEY}
No resultado
"relatedPlaylists"
incluirá"likes"
e"uploads"
playlists. Pegue esse"upload"
ID da lista de reprodução. Observe também que"id"
é o seu channelID para referência futura.Em seguida, obtenha uma lista de vídeos nessa lista de reprodução:
https://developers.google.com/youtube/v3/docs/playlistItems/list#try-it
Basta soltar na playlistId!
GET https://www.googleapis.com/youtube/v3/playlistItems?part=snippet%2CcontentDetails&maxResults=50&playlistId=UUpRmvjdu3ixew5ahydZ67uA&key={YOUR_API_KEY}
fonte
Aqui está um vídeo do Google Developers mostrando como listar todos os vídeos em um canal em
v3
da API do YouTube.Existem dois passos:
Canais de consulta para obter o ID de "uploads". por exemplo
https://www.googleapis.com/youtube/v3/channels?id={channel Id}&key={API key}&part=contentDetails
Use esse ID de "uploads" para consultar os itens da Playlist e obter a lista de vídeos. por exemplo
https://www.googleapis.com/youtube/v3/playlistItems?playlistId={"uploads" Id}&key={API key}&part=snippet&maxResults=50
fonte
Para obter a lista de canais:
Obter Lista de canais por forUserName :
https://www.googleapis.com/youtube/v3/channels?part=snippet,contentDetails,statistics&forUsername=Apple&key=
Obter lista de canais por ID de canal :
https://www.googleapis.com/youtube/v3/channels/?part=snippet,contentDetails,statistics&id=UCE_M8A5yxnLfW0KghEeajjw&key=
Obter seções do canal:
https://www.googleapis.com/youtube/v3/channelSections?part=snippet,contentDetails&channelId=UCE_M8A5yxnLfW0KghEeajjw&key=
Para obter listas de reprodução:
Obter listas de reprodução por ID do canal :
https://www.googleapis.com/youtube/v3/playlists?part=snippet,contentDetails&channelId=UCq-Fj5jknLsUf-MWSy4_brA&maxResults=50&key=
Obter Listas de reprodução por ID do canal com o pageToken :
https://www.googleapis.com/youtube/v3/playlists?part=snippet,contentDetails&channelId=UCq-Fj5jknLsUf-MWSy4_brA&maxResults=50&key= & pageToken = CDIQAA
Para obter os PlaylistItems:
Obtenha a lista de itens de Playlist por PlayListId :
https://www.googleapis.com/youtube/v3/playlistItems?part=snippet,contentDetails&maxResults=25&playlistId=PLHFlHpPjgk70Yv3kxQvkDEO5n5tMQia5I&key=
Para obter vídeos:
Obter lista de vídeos por ID de vídeo :
https://www.googleapis.com/youtube/v3/videos?part=snippet,contentDetails,statistics&id=YxLCwfA1cLw&key=
Obter lista de vídeos por vários IDs de vídeos :
https://www.googleapis.com/youtube/v3/videos?part=snippet,contentDetails,statistics&id=YxLCwfA1cLw,Qgy6LaO3SB0,7yPJXGO2Dcw&key=
Obter lista de comentários
Obter lista de comentários por ID do vídeo :
https://www.googleapis.com/youtube/v3/commentThreads?part=snippet,replies&videoId=el **** kQak & key = A ********** k
Obter lista de comentários por ID do canal :
https://www.googleapis.com/youtube/v3/commentThreads?part=snippet,replies&channelId=U ***** Perguntas e respostas = AI ******** k
Obter lista de comentários por allThreadsRelatedToChannelId :
https://www.googleapis.com/youtube/v3/commentThreads?part=snippet,replies&allThreadsRelatedToChannelId=UC ***** ntcQ & key = AI ***** k
Aqui todas as APIs são Get abordagem .
Com base no ID do canal, não temos todos os vídeos diretamente, esse é o ponto importante aqui.
Para integração https://developers.google.com/youtube/v3/quickstart/ios?ver=swift
fonte
Abaixo está uma alternativa Python que não requer nenhum pacote especial. Ao fornecer o ID do canal, ele retorna uma lista de links de vídeo para esse canal. Observe que você precisa de uma chave de API para que ela funcione.
fonte
video_list = get_all_video_in_channel("ABC123EFG456")
então você pode imprimi-lo para ver a matriz usandoprint(video_list)
fonte
Tente com o seguinte. Isso pode ajudá-lo.
https://gdata.youtube.com/feeds/api/videos?author=cnn&v=2&orderby=updated&alt=jsonc&q=news
Aqui, escreva como você pode especificar o nome do canal e "q", assim como a palavra-chave de pesquisa.
fonte
Apenas em três etapas:
Inscrições: lista -> https://www.googleapis.com/youtube/v3/subscriptions?part=snippet&maxResults=50&mine=true&access_token= {oauth_token}
Canais: 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}
fonte
Graças às referências compartilhadas aqui e em outros lugares, criei um script / ferramenta on-line que pode ser usado para obter todos os vídeos de um canal.
Ele combina chamadas de API para
youtube.channels.list
,playlistItems
,videos
. Ele usa funções recursivas para fazer com que os retornos de chamada assíncronos executem a próxima iteração ao obter uma resposta válida.Isso também serve para limitar o número real de solicitações feitas por vez, mantendo-o protegido contra violações das regras da API do YouTube. Compartilhando trechos reduzidos e, em seguida, um link para o código completo. Consegui contornar os 50 resultados máximos por limitação de chamada usando o valor nextPageToken que vem na resposta para buscar os próximos 50 resultados e assim por diante.
Isso obteve uma lista básica dos vídeos, incluindo ID, título, data de publicação e similares. Mas, para obter mais detalhes de cada vídeo, como contagens e curtidas, é necessário fazer chamadas de API
videos
.Veja o código completo aqui e a versão ao vivo aqui . (Editar: link fixo do github)
Editar: Dependências: JQuery, Papa.parse
fonte
Como todo mundo que responde a essa pergunta tem problemas devido ao limite de 500 vídeos, aqui está uma solução alternativa usando o youtube_dl no Python 3 . Além disso, nenhuma chave de API é necessária .
sudo pip3 install youtube-dl
Exemplo (aviso - leva dezenas de minutos):
fonte
@for /f "usebackq tokens=2 delims=: " %a in (`dl-list.py^|findstr information`) do @echo https://www.youtube.com/watch?v=%a
. Ele imprimirá todo o URL dos vídeos.PLAYLIST_ID
pode ser uma lista de reprodução ou ID do canal.dl-list.py
.Usando a API versão 2, que está obsoleta, o URL para uploads (do canal UCqAEtEr0A0Eo2IVcuWBfB9g) é:
https://gdata.youtube.com/feeds/users/UCqAEtEr0A0Eo2IVcuWBfB9g/uploads
Existe uma versão 3 da API.
fonte
Recentemente, tive que recuperar todos os vídeos de um canal e, de acordo com a documentação do desenvolvedor do YouTube: https://developers.google.com/youtube/v3/docs/playlistItems/list
Onde
$service
está o seuGoogle_Service_YouTube
objeto?Portanto, você deve buscar informações no canal para recuperar a lista de reprodução "uploads" que realmente possui todos os vídeos enviados pelo canal: https://developers.google.com/youtube/v3/docs/channels/list
Se for novo com esta API, recomendo transformar a amostra de código do snippet padrão para a amostra completa.
Portanto, o código básico para recuperar todos os vídeos de um canal pode ser:
fonte
Solução de exemplo em Python. Ajuda extraída deste vídeo: video Como muitas outras respostas, o ID do upload deve ser recuperado primeiro do ID do canal.
fonte
Links baixados do canal do youtube, não preservam a estrutura de diretórios. Então, eu escrevi um código para fazer isso acontecer. Use isso depois de baixar os vídeos da maneira acima aceita. `
`
fonte
Como a documentação indica ( link ), você pode usar o tipo de recurso do canal e a Lista de operações para obter todos os vídeos em um canal. Esta operação deve ser realizada usando o argumento 'channel id'.
fonte