# Instalar as dependências necessárias !pip install youtube-dl youtube_transcript_api import os import youtube_dl from youtube_transcript_api import YouTubeTranscriptApi def get_channel_videos(channel_url): ydl_opts = { 'quiet': True, 'extract_flat': True, 'skip_download': True, 'force_generic_extractor': True } with youtube_dl.YoutubeDL(ydl_opts) as ydl: result = ydl.extract_info(channel_url, download=False) if 'entries' in result: videos = [{'id': entry['id'], 'title': entry['title']} for entry in result['entries'] if 'id' in entry] return videos else: return [] def get_transcript(video_id, languages=['pt']): try: print(f"Fetching transcript for video: {video_id} in language: {languages[0]}") transcript = YouTubeTranscriptApi.get_transcript(video_id, languages) # Junta todas as partes da transcrição em um texto único full_transcript = ' '.join([entry['text'] for entry in transcript]) return full_transcript except Exception as e: print(f"Error fetching transcript for video {video_id}: {e}") return None def save_transcripts(channel_url, output_dir='PASTA'): if not os.path.exists(output_dir): os.makedirs(output_dir) videos = get_channel_videos(channel_url) for video in videos: video_id = video['id'] video_title = video['title'] transcript = get_transcript(video_id) if transcript: # Remove caracteres inválidos do título para criar um nome de arquivo válido valid_title = "".join(x for x in video_title if (x.isalnum() or x in "._- ")).strip() file_path = os.path.join(output_dir, f'{valid_title}_{video_id}_transcript.txt') with open(file_path, 'w', encoding='utf-8') as f: f.write(transcript) print(f'Transcription for video {video_title} ({video_id}) saved.') else: print(f"Transcript for video {video_title} ({video_id}) not available.") # URL do canal (use a URL da aba de vídeos do canal) channel_url = 'https://www.youtube.com/playlist?list=PL3LekSvDcRKvbgKC_vCLDcB1-ib5i_2Nn' # Salvar transcrições save_transcripts(channel_url) !pip install fpdf !pip install fpdf import os from fpdf import FPDF # Caminho para a pasta onde estão os arquivos .txt folder_path = '/content/PASTA' # Verifica se a pasta existe if not os.path.exists(folder_path): raise FileNotFoundError(f"A pasta '{folder_path}' não foi encontrada. Verifique o caminho.") # Cria um objeto PDF pdf = FPDF() # Itera sobre todos os arquivos na pasta for filename in sorted(os.listdir(folder_path)): # Ordena os arquivos para manter uma sequência lógica if filename.endswith(".txt"): # Adiciona uma página ao PDF pdf.add_page() # Define a fonte e o tamanho pdf.set_font("Arial", size=12) # Caminho completo do arquivo file_path = os.path.join(folder_path, filename) try: # Abre o arquivo e lê o conteúdo with open(file_path, 'r', encoding='utf-8') as file: # Define a codificação para evitar erros com caracteres especiais content = file.read() # Adiciona o conteúdo ao PDF pdf.multi_cell(0, 10, content) except Exception as e: print(f"Erro ao processar o arquivo {filename}: {e}") # Nome do arquivo PDF de saída output_pdf = "transcripts_unico10.pdf" # Salva o PDF try: pdf.output(output_pdf) print(f"PDF gerado com sucesso: {output_pdf}") except Exception as e: print(f"Erro ao salvar o PDF: {e}") # Fazendo o download do arquivo PDF (se estiver usando Google Colab) try: from google.colab import files files.download(output_pdf) except ImportError: print("Não está no Google Colab, o arquivo foi salvo localmente.")