
Scarica le trascrizioni di YouTube
Prosey è uno strumento CLI per scaricare e visualizzare le trascrizioni video da YouTube, così puoi ottenere le informazioni che cerchi senza sprecare ore.
I casi d'uso principali sono:
Entrambi gli usi richiedono un assistente AI sul tuo sistema (predefinito: opencode, usa prosey config per configurare il tuo).
Se rileviamo un evidenziatore di sintassi sul tuo sistema, otterrai un output colorato.
Prosey può anche produrre o memorizzare il formato JSON nativo in modo identico.
| Caratteristica | Descrizione |
|---|---|
| 💡 Sintetizzare | Recupera e sintetizza una trascrizione video |
| 📖 Leggi | Recupera e mostra la trascrizione formattata in Markdown |
| 📋 Scarica trascrizione | Recupera le trascrizioni di YouTube come testo semplice o JSON identico |
| 🤖 Sintesi AI | Invia le trascrizioni a qualsiasi agente AI (opencode, Claude, Copilot, Codex) |
| 🎨 Pager intelligente | Evidenziazione automatica della sintassi se bat, glow o mdcat sono installati (o configura il tuo pager) |
| 🛠️ Personalizzazione | Usa prosey config per accedere e modificare la tua configurazione / personalizzare i prompt |
| 💾 Caching su disco | Le trascrizioni e le sintesi vengono memorizzate nella cache su disco per una rilettura istantanea |
| 📄 Formati supportati | Testo semplice e JSON |
Provalo subito con npx:
npx @tacone/prosey 771PQEDeRmw
npx @tacone/prosey https://youtu.be/771PQEDeRmw --lang es -o transcript.txt
Installalo globalmente con il tuo gestore di pacchetti preferito:
npm install -g @tacone/prosey
# oppure
yarn global add @tacone/prosey
# oppure
pnpm add -g @tacone/prosey
# oppure
bun install -g @tacone/prosey
Poi usalo ovunque:
prosey 771PQEDeRmw
Usa Bun per lo sviluppo — script, gestione dei pacchetti ed esecuzione diretta del sorgente TypeScript.
git clone https://github.com/tacone/prosey.git
cd prosey
bun install
bun run start -- 771PQEDeRmw
prosey [options] <video controls-url-or-id>
prosey read [options] <video controls-url-or-id>
prosey info [options] <video controls-url-or-id>
prosey summarize [options] <video controls-url-or-id>
prosey config
prosey help
summarize è il comando predefinito, quindi prosey <id> esegue il sintetizzatore AI.
Usa prosey read <id> per scaricare e stampare una trascrizione riccamente formattata.
Il comando summarize recupera una trascrizione, antepone il prompt dalla
sezione di configurazione [summarize] e invia il risultato al comando AI configurato.
Il comando read scarica la trascrizione e la stampa su stdout (testo semplice,
markdown o JSON). È utile quando non hai bisogno di elaborazione AI.
Il comando info mostra i metadati del video (titolo, canale, durata, visualizzazioni).
Il comando config apre il file di configurazione in $EDITOR per la modifica. Se
$EDITOR non è impostato, viene stampato il percorso del file di configurazione.
Il comando help mostra il messaggio di aiuto, come --help.
# Sintetizza (sintesi AI + formattazione + evidenziazione sintassi)
prosey 771PQEDeRmw
# Sintetizza (come sopra)
prosey summarize 771PQEDeRmw
# Leggi (sintesi AI + formattazione + evidenziazione sintassi)
prosey read 771PQEDeRmw
# Mostra metadati video
prosey info 771PQEDeRmw
# Modifica configurazione in $EDITOR
prosey config
# Elenca le lingue disponibili
prosey read https://youtu.be/771PQEDeRmw --list
# Specifica lingua
prosey read https://youtu.be/771PQEDeRmw --lang es
# Mostra JSON (nessuna trascrizione AI)
prosey read 771PQEDeRmw
# Mostra testo semplice (nessuna trascrizione AI)
prosey read 771PQEDeRmw
# Salva trascrizione su file
prosey read 771PQEDeRmw -o transcript.txt
Quando si usa --json, l'output è un array di oggetti:
[
{
"text": "♪ We're no strangers to love ♪",
"offset": 18.64,
"duration": 3.24,
"timestamp": "00:18"
}
]
timestamp è sempre presente in modalità JSON. I dettagli del video sono soppressi
(silenziosamente) poiché JSON è dati strutturati.
Questo progetto usa Bun per lo sviluppo.
bun run typecheck # Controllo TypeScript
bun run start # Esegui la CLI dal sorgente
bun run test # Esegui test unitari
bun run build # Compila bundle Node in bin/prosey
Prima della pubblicazione su npm, bun run build viene eseguito automaticamente tramite l'hook
prepack, producendo un bundle JS compatibile con Node in bin/prosey.
Prosey legge la configurazione da un file TOML. La posizione segue la
Specifica della Directory di Base XDG
(~/.config/prosey/config.toml), oppure puoi impostare la variabile d'ambiente
PROSEY_CONFIG_PATH per usare un percorso personalizzato.
Il file di configurazione viene creato automaticamente al primo avvio con valori predefiniti.
Usa --reset-config per ripristinare i valori predefiniti in qualsiasi momento.
pagerComando pager per l'output di trascrizione e sintesi. Il valore predefinito è "auto", che
rileva il primo disponibile tra: bat -lmd --style plain → glow -p → mdcat -l -p → less.
Imposta un comando personalizzato (es. "less -R") per sovrascrivere. La variabile d'ambiente
PROSEY_PAGER ha la precedenza su questa impostazione.
[summarize]La sezione [summarize] configura il comando summarize:
| Chiave | Descrizione |
|---|---|
prompt | Istruzione anteposta alla trascrizione |
command | Comando shell che riceve il prompt via stdin |
PROSEY_PAGERVariabile d'ambiente per impostare il comando pager. Ha la precedenza sul
valore di configurazione pager. Imposta a "auto" o vuoto per usare il rilevamento automatico.
Le trascrizioni e le sintesi vengono memorizzate nella cache in /tmp/prosey/.
Invocazioni ripetute per lo stesso video e le stesse opzioni sono istantanee e funzionano offline.
Usa --no-cache per saltare la lettura della cache e forzare un recupero fresco.
Quando si esegue prosey summarize, il comando viene eseguito all'interno della directory cache
per quel video. Ciò impedisce all'agente AI di raccogliere file specifici del progetto come
AGENTS.md o CLAUDE.md dalla cartella corrente e limita la sua capacità di modificare file
al di fuori di quella directory.
| Codice | Significato |
|---|---|
0 | Successo |
65 | URL o ID video non valido |
prosey utilizza l'API Innertube di YouTube tramite la libreria youtube-transcript-plus. Non sono necessarie chiavi API o automazione del browser.
Lo strumento funziona sia con sottotitoli creati manualmente che con trascrizioni generate automaticamente (speech-to-text di YouTube). Il rilevamento automatico scorre le lingue nell'ordine fornito dalla risposta del player di YouTube.
| Flag | Descrizione |
|---|
--lang <code> | Codice lingua (es. en, fr). Rilevato automaticamente se omesso. |
-t, --timestamps | Antepone [MM:SS] a ogni riga nell'output di testo. |
--list | Elenca le lingue di trascrizione disponibili per il video, poi esci. |
-o, --output <path> | Scrive l'output su file invece che su stdout. |
--json | Produce la trascrizione come array JSON. Ogni elemento include text, offset (secondi), duration e timestamp. |
--text | Produce come testo semplice (predefinito per prosey read). |
--details | Antepone i dettagli del video (titolo, canale, durata, visualizzazioni, descrizione) alla trascrizione (predefinito). |
--no-details | Sopprime i dettagli del video, solo trascrizione. |
--no-decode-entities | Mantiene le entità HTML grezze (es. '). Decodificate per impostazione predefinita in modalità testo. |
--no-cache | Salta la lettura della cache e forza un recupero fresco. |
--no-format | Salta la formattazione Markdown più bella sull'output di sintesi. |
-q, --quiet | Sopprime tutta la registrazione su stderr. |
-v, --verbose | Stampa informazioni di debug su stderr. |
--no-pager | Disabilita il pager per l'output stdout (rilevato automaticamente per impostazione predefinita). |
--pager | Usa il pager per l'output stdout (predefinito). |
--reset-config | Reimposta il file di configurazione ai valori predefiniti ed esci. |
--help | Mostra il messaggio di aiuto ed esci. |
--version | Mostra il numero di versione ed esci. |