Capitoli con timecode per podcast e video, in automatico
Divide una registrazione lunga in capitoli, ognuno con il titolo e il minuto in cui inizia. Da un podcast o un video di un'ora ottieni la lista dei segmenti — per esempio “00:00 Introduzione”, “08:20 Il tema principale” — pronta da incollare nella descrizione di YouTube o del player, così chi ascolta salta subito alla parte che gli interessa.
Esegui online
Esegui questo sui nostri server con il tuo account. Gli strumenti gratuiti girano nel tuo browser; questo viene addebitato sul tuo saldo KIT al prezzo indicato sopra.
A cosa servono i capitoli
Un contenuto lungo senza capitoli è difficile da navigare: chi ascolta deve trascinare la barra alla cieca. I capitoli con timecode trasformano la registrazione in un indice cliccabile: su YouTube diventano punti di salto, in un podcast aiutano l'ascoltatore a orientarsi. Lo strumento individua i cambi di argomento nel parlato, calcola il minuto d'inizio di ciascuno e gli assegna un titolo sintetico. Il risultato è la lista pronta da incollare dove pubblichi.
Titoli sensati, non solo orari
Non basta spezzare l'audio a intervalli fissi: un buon capitolo comincia dove cambia davvero il discorso e ha un titolo che dice di cosa si parla. Qui la suddivisione segue i contenuti, e ogni sezione riceve un'etichetta breve e leggibile. Ovviamente puoi ritoccare i titoli o accorpare due capitoli troppo corti prima di pubblicare: quello che ricevi è una bozza solida da rifinire in un attimo, non venti spezzoni anonimi.
Prezzo e limiti
$0.004 a richiesta più $0.0185 al minuto: i capitoli di un episodio di un'ora costano circa $1.11, trascrizione compresa. File fino a 200 MB e tre ore. Pagamento a consumo con PayPal, senza abbonamento.
Casi d'uso
Video YouTube navigabili
Un creator incolla i capitoli nella descrizione: YouTube li trasforma in punti di salto sulla barra, e il video diventa più facile da consultare, con un effetto positivo anche sul tempo di visione.
Podcast con indice degli argomenti
Chi pubblica un podcast di un'ora offre agli ascoltatori l'elenco dei temi con il minuto: chi cerca solo l'intervista finale ci arriva senza scorrere tutta la puntata.
Webinar e registrazioni formative
Un webinar di novanta minuti diviso in capitoli diventa una risorsa riutilizzabile: chi lo rivede raggiunge direttamente il modulo che gli serve invece di riguardarlo per intero.
Domande frequenti
I capitoli sono pronti per YouTube?
Sì: ricevi la lista nel formato timecode + titolo che YouTube riconosce quando la incolli nella descrizione, trasformandola in punti di salto. Funziona allo stesso modo nella descrizione di molti player podcast.
Come decide dove inizia un capitolo?
Segue i cambi di argomento nel parlato, non intervalli fissi. Ogni sezione parte dove il discorso cambia davvero e riceve un titolo breve che ne riassume il contenuto.
Posso cambiare i titoli dei capitoli?
Sì, quello che ricevi è una bozza modificabile: puoi riscrivere i titoli, unire capitoli troppo brevi o spostare un minuto prima di pubblicare.
Va bene sia per audio che per video?
Sì: lo strumento lavora sulla traccia audio, quindi funziona sia per un podcast sia per un video. Se parti da un file video, ti conviene estrarne prima l'audio.
Quanto costa un episodio di un'ora?
Circa $1.11 ($0.004 a richiesta più $0.0185 al minuto). Prezzo pubblicato, pagamento a consumo con PayPal, senza abbonamento.
Il file caricato resta memorizzato?
No: viene usato per generare i capitoli e poi eliminato, senza essere conservato dopo l'elaborazione.
Per sviluppatori — accesso via API
Tutto quello che vedi in questa pagina è disponibile anche via API. Questa sezione è per i team che vogliono integrarlo nei propri sistemi; chi non ne ha bisogno può semplicemente usare lo strumento qui sopra.
Endpoint
Autenticazione con Bearer token: un POST mette in coda l'attività e il risultato arriva via webhook o link firmato.
Chiamala dal tuo stack
curl -X POST https://api.kit.forhosting.com/audio/chapters \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"audio":"https://ejemplo.com/audio.mp3"}'const res = await fetch("https://api.kit.forhosting.com/audio/chapters", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"audio": "https://ejemplo.com/audio.mp3"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/audio/chapters",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"audio": "https://ejemplo.com/audio.mp3"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/audio/chapters", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"audio":"https://ejemplo.com/audio.mp3"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"audio":"https://ejemplo.com/audio.mp3"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/audio/chapters", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Esempio di richiesta
{
"audio": "https://ejemplo.com/audio.mp3"
}Esempio di risposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "audio.chapters",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}L'API è asincrona: ricevi subito un task_id e puoi fare polling fino a 1 richiesta al secondo.
Prezzi
Prezzo pubblicato, senza token né crediti. Se l'attività fallisce, non paghi.
Limiti
max_mb | 200 |
max_minutes | 180 |
Errori
| HTTP | Codice | Significato |
|---|---|---|
401 | unauthorized | Chiave API mancante o non valida: controlla l'header Authorization. |
402 | insufficient_balance | Credito esaurito: ricarica per continuare a eseguire attività. |
404 | unknown_type | Tipo di attività sconosciuto: controlla il campo type della richiesta. |
429 | rate_limited | Troppe richieste in poco tempo: rallenta e riprova tra qualche secondo. |
422 | task_failed | L'attività non è andata a buon fine: non ti viene addebitato nulla. |