Untitled
unknown
plain_text
a year ago
2.4 kB
9
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