Home › Fóruns › Domine LLMs com LangChain › ExpatError ao carregar infos do video do youtube no projeto1
- Este tópico contém 1 resposta, 2 vozes e foi atualizado pela última vez 1 dia, 17 horas atrás por
Gabriel Alves.
- AutorPosts
- 9 de julho de 2025 às 15:36 #50539
Prezados, ao utilizar o código:
infos = video_loader.load()
infosno projeto 1, recebo o erro :
ExpatError: no element found: line 1, column 0
Poderiam me ajudar a solucionar esse erro?
9 de julho de 2025 às 23:55 #50543Olá Aline!
Para evitar esse erro, ao invés de executar esses códigos:
video_loader = YoutubeLoader.from_youtube_url("https://www.youtube.com/watch?v=II28i__Tf3M", language = ["pt", "pt-BR", "en"],) infos = video_loader.load() transcricao = infos[0].page_content
Use esse código abaixo:
from youtube_transcript_api import YouTubeTranscriptApi from youtube_transcript_api.formatters import TextFormatter # ID do vídeo do YouTube. Verifique pela URL, é o que vem logo após /watch?v= id_video = "II28i__Tf3M" # Busca a transcrição, tentando em português e inglês result = YouTubeTranscriptApi().fetch(id_video, languages=["pt", "pt-BR", "en"]) #Formata a transcrição como texto formatter = TextFormatter() transcricao = formatter.format_transcript(result) # opcional: Substitui quebras de linha por espaços para manter tudo em uma só linha (Se não quiser isso, remova essa linha abaixo) transcricao = transcricao.replace('\n', ' ') print(transcricao)
Importante: para isso é necessário que use pelo menos a versão 1.1.0 do youtube-transcript-api, o que pode ser garantido executando esse comando antes dos imports em seu código: !pip install youtube-transcript-api==1.1.0
(tudo isso já está atualizado no Colab dessa seção, pode conferir aqui se preferir)
Recentemente, o YouTube passou a exigir o uso de um novo tipo de token, o que afeta diretamente bibliotecas que dependem da API de transcrição, como a youtube-transcript-api (mais detalhes aqui). Para lidar com isso, é necessário utilizar uma versão atualizada dessa biblioteca.
Porém, a biblioteca Langchain ainda não é compatível com a nova versão da youtube-transcript-api. Internamente, o YoutubeLoader do Langchain utiliza essa biblioteca, mas está vinculado a uma versão anterior, o que leva a erros de execução ao tentar obter a transcrição de vídeos recentes. Até o momento, a equipe do Langchain ainda não anunciou uma previsão de atualização para resolver essa incompatibilidade.
Por esse motivo nós decidimos achar um modo de implementar o processo de forma direta, utilizando os métodos da própria biblioteca youtube-transcript-api, o que nos permite maior controle e compatibilidade com a versão mais recente.
Além disso, utilizamos a classe TextFormatter, que ajuda a extrair a transcrição limpa, sem timestamps ou metadados (somente o texto). Para tornar o texto ainda mais fluido, como adicional nós removemos as quebras de linha (\n), unificando toda a transcrição em um único bloco contínuo, igual como é obtido quando usava pelo método YoutubeLoader do Langchain.
- AutorPosts
- Você deve fazer login para responder a este tópico.