Home › Fóruns › Domine LLMs com LangChain › Erro ao carregar infos de videos do youtube
- Este tópico contém 1 resposta, 2 vozes e foi atualizado pela última vez 4 meses, 3 semanas atrás por
Gabriel Alves.
- AutorPosts
- 29 de outubro de 2024 às 07:25 #46518
Olá,
Estou tentando executar o código
video_loader = YoutubeLoader.from_youtube_url("https://www.youtube.com/watch?v=xhj9JV3agHs", add_video_info = True, language = ["pt", "pt-BR", "en"],) infos = video_loader.load()
E ao executar o video_loader.load() está dando o erro:
—————————————————————————
KeyError Traceback (most recent call last)
/usr/local/lib/python3.10/dist-packages/pytube/__main__.py in title(self)
340 try:
–> 341 self._title = self.vid_info[‘videoDetails’][‘title’]
342 except KeyError:KeyError: ‘videoDetails’
During handling of the above exception, another exception occurred:
PytubeError Traceback (most recent call last)
3 frames
/usr/local/lib/python3.10/dist-packages/pytube/__main__.py in title(self)
344 # if it doesn’t, ask for a report.
345 self.check_availability()
–> 346 raise exceptions.PytubeError(
347 (
348 f’Exception while accessing title of {self.watch_url}. ‘PytubeError: Exception while accessing title of https://youtube.com/watch?v=xhj9JV3agHs. Please file a bug report at https://github.com/pytube/pytube
Já tentei executar o erro localmente e no google colab e em ambos dá o mesmo erro.
29 de outubro de 2024 às 23:29 #46522Olá Elaine!
Esse erro passou a ocorrer bem recentemente devido a um bug na biblioteca pytube, que ainda não foi resolvido pelos desenvolvedores. Ele ocorre somente ao usar o parâmetro “add_video_info = True”, então caso não seja essencial obter essas informações agora pode deixar “= False” (ou não passar o parâmetro, já que esse é o valor padrão).
Um modo de tentar resolver é executar novamente a célula de código (primeiramente a anterior a essa e depois a seguinte, que é a que gerou o erro). Isso funcionou para nós algumas vezes mas parece que nem sempre está funcionando, portanto não é certeza.
Se mesmo assim o erro continuar, sugiro usar esse outro método para obter informações do vídeo de modo automático:
import requests from bs4 import BeautifulSoup def get_video_title(url): r = requests.get(url) soup = BeautifulSoup(r.text) link = soup.find_all(name="title")[0] title = str(link) title = title.replace("<title>","") title = title.replace("</title>","") return title video_url = "https://www.youtube.com/watch?v=########" video_title = get_video_title(video_url) print(video_title)
Este código busca o conteúdo HTML de uma página de vídeo do YouTube usando a função requests.get() e em seguida analisa-o com a biblioteca BeautifulSoup, usado para carregar dados de páginas na internet. Ele procura a tag usando soup.find_all(), que retorna uma lista de tags correspondentes. O título do vídeo é extraído pegando o primeiro elemento, convertendo-o em uma string e, em seguida, removendo o <title> e as tags com replace(). Por fim, ele imprime o título “limpo” (se quiser também pode usar a função de replace para remover o “- YouTube” ao final do título).
- Esta resposta foi modificada 4 meses, 3 semanas atrás por
Gabriel Alves.
- Esta resposta foi modificada 4 meses, 3 semanas atrás por
- AutorPosts
- Você deve fazer login para responder a este tópico.