Come creare sottotitoli, trascrizione e capitoli per un podcast o un video di YouTube
Basta trascrivere la puntata una sola volta con i timestamp per singola parola. Da quel risultato puoi ricavare tutto il resto: il file SRT dei sottotitoli, la trascrizione per le note della puntata, i sottotitoli tradotti e le indicazioni dei capitoli. L’API accetta un file caricato o il link a un file multimediale. Dato che una pagina di YouTube è una pagina web, usa il file audio o video che hai esportato.
Trascrivi una volta sola
Esporta l'audio della puntata (in MP3 o M4A) oppure il file video. Caricalo usando la funzione di supporto che trovi nella guida al montaggio video e richiedi l'output in JSON:
{
"audio_url": "https://example.com/interview.mp3",
"model": "oracle",
"language": "auto",
"word_timestamps": true,
"output_format": "json"
}
Per le interviste o le tavole rotonde imposta include_diarization: true, così nella trascrizione sarà indicato chi parla.
Sottotitoli in formato SRT
Componi le righe partendo dalle singole parole e carica il file .srt su YouTube Studio o sulla piattaforma di hosting del tuo podcast. Nella guida all’SRT trovi il codice e i dettagli su come l’API genera un output SRT con una parola per riga.
Sottotitoli tradotti
Per tradurre i sottotitoli, avvia un secondo job sullo stesso file impostando translate_to (con i modelli Oracle) e output_format: "srt", oppure fai tradurre al tuo LLM il testo ottenuto dal primo job. Avviare un job separato per ogni lingua permette di mantenere i sottotitoli sincronizzati con l'audio.
Trascrizione per le note della puntata
Se ti basta il testo semplice richiedi output_format: "txt", altrimenti unisci il text dei vari passaggi del JSON aggiungendo i nomi di chi parla. Rileggi la trascrizione prima di pubblicarla, perché è proprio su nomi, prodotti e numeri che i sistemi automatici sbagliano.
Capitoli con timestamp
Passa all'LLM i segmenti numerati e chiedigli di indicare l'inizio di ogni capitolo usando il numero del segmento, mai il timestamp. I tempi esatti li calcolerai poi via codice a partire dai segmenti. Questo prompt funziona con qualsiasi modello:
Below is a podcast transcript, one line per segment: S<number> [start-end] text.
Pick 5 to 9 chapter starts. For each give the segment number and a title of at most six words.
Return JSON: [{"segment": 0, "title": "Intro"}]. The first chapter must be segment 0.
chapters.py
# chapters.py — YouTube chapter lines from (seconds, title) pairs
def stamp(seconds):
m, s = divmod(int(seconds), 60)
h, m = divmod(m, 60)
return f"{h}:{m:02}:{s:02}" if h else f"{m}:{s:02}"
def chapter_lines(chapters):
return "\n".join(f"{stamp(start)} {title}" for start, title in chapters)
print(chapter_lines([(0, "Intro"), (95, "Why captions matter"), (412, "Editing from a transcript")]))
Se inserisci un elenco di timestamp nella descrizione del video, YouTube li trasforma automaticamente in capitoli. Perché funzioni, l'elenco deve partire da 0:00, contenere almeno tre voci in ordine crescente e avere capitoli di almeno dieci secondi ciascuno.
Quanto costa
| Lavoro | Modello | Costo |
|---|---|---|
| Puntata di un’ora, audio pulito | base | 0,48 US$ |
| Puntata di un’ora, qualità di produzione con riconoscimento degli interlocutori | oracle | 1,44 US$ |
| Sottotitoli tradotti, un’ora | oracle_mini | 0,96 US$ |
Paghi al secondo, senza costi minimi. Trovi le tariffe in /llms/pricing.md.
Domande e risposte
Come ottengo la trascrizione di una puntata di un podcast?
Invia il file audio o il suo URL a POST /transcribe specificando output_format: "txt" per avere il testo semplice, oppure json se ti servono anche i timestamp e la divisione per interlocutore.
Posso usare un link di YouTube?
No. L’API richiede un file caricato o il link a un file multimediale, mentre un URL di visualizzazione di YouTube è una pagina web. Usa file audio o video di tua proprietà o che hai il diritto di utilizzare.
Come aggiungo i sottotitoli su YouTube?
Genera un file SRT seguendo la guida all’SRT e caricalo nella sezione sottotitoli del video su YouTube Studio.
Come creo i capitoli?
Passa la trascrizione numerata al tuo LLM e chiedigli di indicare i numeri dei segmenti in cui iniziano i capitoli. Poi converti quei numeri in timestamp via codice e incolla l'elenco nella descrizione del video.
Posso avere sottotitoli in più lingue?
Sì, basta avviare un job per ciascuna lingua usando translate_to con un modello Oracle.