Erro ao carregar infos de videos do youtube

Home Fóruns Domine LLMs com LangChain Erro ao carregar infos de videos do youtube

Visualizando 2 posts - 1 até 2 (de 2 do total)
  • Autor
    Posts
  • #46518
    Elaine
    Participante

      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.

      #46522
      Gabriel Alves
      Moderador

        Olá 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.
      Visualizando 2 posts - 1 até 2 (de 2 do total)
      • Você deve fazer login para responder a este tópico.