Untitled
unknown
plain_text
5 months ago
2.4 kB
3
Indexable
# Paso 1: Instalar la biblioteca necesaria !pip install youtube-transcript-api from youtube_transcript_api import YouTubeTranscriptApi import json import os def extract_and_save_transcript(input_value, save_path="transcripts"): try: # Crear la carpeta donde se guardarán las transcripciones si no existe if not os.path.exists(save_path): os.makedirs(save_path) # Determinar si el input es una URL o un Video ID if "youtube.com" in input_value or "youtu.be" in input_value: # Extraer el ID del video de la URL if "youtube.com" in input_value: video_id = input_value.split('v=')[1] elif "youtu.be" in input_value: video_id = input_value.split('/')[-1] # Manejar parámetros adicionales en la URL video_id = video_id.split('&')[0] else: # Si no es una URL, asumimos que es un Video ID directamente video_id = input_value # Obtener la transcripción en español transcript_list = YouTubeTranscriptApi.get_transcript(video_id, languages=['es']) # Guardar la transcripción en formato TXT transcript_text = '\n'.join([d['text'] for d in transcript_list]) txt_file_path = os.path.join(save_path, f"{video_id}.txt") with open(txt_file_path, "w", encoding="utf-8") as txt_file: txt_file.write(transcript_text) print(f"Transcripción guardada en TXT: {txt_file_path}") # Guardar la transcripción en formato JSON con timestamps json_file_path = os.path.join(save_path, f"{video_id}.json") with open(json_file_path, "w", encoding="utf-8") as json_file: json.dump(transcript_list, json_file, ensure_ascii=False, indent=4) print(f"Transcripción guardada en JSON con timestamps: {json_file_path}") return transcript_list except Exception as e: print(f"Ocurrió un error: {e}") return None # Probar con una URL de YouTube o un Video ID directamente input_value = input("Ingresa la URL de YouTube o el Video ID: ") # Llamar a la función para extraer y guardar la transcripción transcript = extract_and_save_transcript(input_value) # Verifica si la transcripción fue extraída exitosamente if transcript: print("Transcripción obtenida con éxito.") else: print("No se pudo obtener la transcripción en español.")
Editor is loading...
Leave a Comment