Scribe
Scribe

Ti piace? Rendi Scribe ancora migliore lasciando una recensione

Ottieni l'estensione Chrome

Sfoglia

  • Video Popolari
  • Video Recenti
  • Tutti i Canali

Strumenti Gratuiti

  • Scaricatore di Sottotitoli Video
  • Generatore di Timestamp Video
  • Riassuntore di Video
  • Contatore di Parole Video
  • Analizzatore di Titoli Video
  • Ricerca Trascrizioni Video
  • Analisi Video
  • Creatore di Capitoli Video
  • Generatore di Quiz Video
  • Chat con Video

Prodotto

  • Prezzi
  • Blog
  • Ottieni l'estensione Chrome

Developers

  • Transcript API
  • API Documentation

Legale

  • Termini
  • Privacy
  • Supporto
  • Mappa del sito

Copyright © 2026. Realizzato con ♥ da Scribe

— Se questo ha reso la tua vita più facile (o almeno un po' meno caotica), lascia una recensione! Promettiamo che ci renderà felici. 😊

On this page

AuthenticationBase URLRate LimitsEndpointsSearchGet TranscriptBulk DownloadChannel VideosStatsCode ExamplesError CodesSupport

Documentazione API

Accesso programmatico a 500k+ trascrizioni video con l'API Scribe.

Ottieni Chiave APIVisualizza Prezzi

Ricerca Full-Text

Cerca in 500k+ trascrizioni con risultati istantanei

Download in Blocco

Scarica fino a 100 trascrizioni per richiesta

On-Demand Fetch

Fetch any video transcript on demand, not just pre-indexed ones

Autenticazione

Tutte le richieste API richiedono una chiave API. Includi la tua chiave nell'header X-API-Key.

curl -H "X-API-Key: ytsu_your_api_key_here" \
  "https://api.pickscribe.com/api/v1/search?q=your+query"

Important: Mantieni segreta la tua chiave API. Non condividerla pubblicamente o committarla nel controllo versione.

URL Base

https://api.pickscribe.com/api/v1

Tutti gli endpoint sono relativi a questo URL base.

Limiti di Rate

  • 100 richieste al minuto per chiave API
  • Header dei limiti di rate inclusi nelle risposte:

X-RateLimit-Limit: 100

X-RateLimit-Remaining: 95

X-RateLimit-Reset: 1704067200

Endpoint

GET/search

Full-text search across all transcripts in the database.

Parametri Query

qstring, requiredSearch query
limitnumber, optionalResults per page (default: 20, max: 100)
offsetnumber, optionalPagination offset (default: 0)
channelstring, optionalFilter by channel ID
minViewsnumber, optionalMinimum view count

Esempio Richiesta

curl -H "X-API-Key: $API_KEY" \
  "https://api.pickscribe.com/api/v1/search?q=machine+learning&limit=10"

Esempio Risposta

{
  "query": "machine learning",
  "results": [
    {
      "videoId": "aircAruvnKk",
      "title": "But what is a neural network?",
      "channelTitle": "3Blue1Brown",
      "viewCount": 15000000,
      "snippet": "...introduction to <mark>machine learning</mark>...",
      "wordCount": 2500
    }
  ],
  "pagination": {
    "limit": 10,
    "offset": 0,
    "total": 1234,
    "hasMore": true
  }
}
GET/transcript/:videoId

Get the full transcript for any video. Fetches directly on demand if not already cached.

Parametri Path

videoIdstring, requiredVideo ID

Parametri Query

langstring, optionalLanguage code (default: 'en'). E.g. 'es', 'de', 'ja'
includeMetadatastring, optionalSet to 'true' to include video metadata (title, views, chapters, etc.)

Esempio Richiesta

curl -H "X-API-Key: $API_KEY" \
  "https://api.pickscribe.com/api/v1/transcript/dQw4w9WgXcQ?lang=en&includeMetadata=true"

Esempio Risposta

{
  "videoId": "dQw4w9WgXcQ",
  "title": "Rick Astley - Never Gonna Give You Up",
  "channelTitle": "Rick Astley",
  "channelId": "UCuAXFkgsw1L7xaCfnd5JJOw",
  "viewCount": 1726169126,
  "publishedAt": "2009-10-25T00:00:00Z",
  "thumbnail": "https://i.ytimg.com/vi/dQw4w9WgXcQ/maxresdefault.jpg",
  "transcript": {
    "script": "We're no strangers to love...",
    "subs": [
      {"text": "We're no strangers to love", "offset": "18.64", "duration": "3.24"}
    ],
    "language": "English",
    "languageCode": "en",
    "wordCount": 287,
    "duration": 213.5,
    "isGenerated": false
  },
  "cached": false,
  "debug": {
    "method": "innertube-api",
    "usedProxy": false
  },
  "timing": { "totalMs": 1523.45 }
}

On-demand fetching: This endpoint works with any Video ID. If the transcript is not already in our database, it will be fetched directly in real-time and cached for future requests.

POST/transcripts/bulk

Download transcripts for multiple videos in one request (max 100). Fetches on demand for any videos not in the database.

Corpo Richiesta

videoIdsstring[], requiredArray of Video IDs (max 100)
fetchMissingboolean, optionalFetch from source if not cached (default: true)
{
  "videoIds": ["dQw4w9WgXcQ", "aircAruvnKk", "9bZkp7q19f0"],
  "fetchMissing": true
}

Esempio Richiesta

curl -X POST \
  -H "X-API-Key: $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"videoIds": ["dQw4w9WgXcQ", "aircAruvnKk"]}' \
  "https://api.pickscribe.com/api/v1/transcripts/bulk"

Esempio Risposta

{
  "requested": 2,
  "found": 2,
  "fetched": 1,
  "transcripts": [
    {
      "videoId": "dQw4w9WgXcQ",
      "title": "Rick Astley - Never Gonna Give You Up",
      "transcript": { "script": "...", "wordCount": 287 }
    },
    {
      "videoId": "aircAruvnKk",
      "title": "But what is a neural network?",
      "transcript": { "script": "...", "wordCount": 2500 }
    }
  ],
  "timing": { "totalMs": 3241.87 }
}
GET/channels/:channelId/videos

List all indexed videos for a channel with transcript metadata.

Parametri Path

channelIdstring, requiredChannel ID

Parametri Query

limitnumber, optionalResults per page (default: 20, max: 100)
offsetnumber, optionalPagination offset (default: 0)

Esempio Richiesta

curl -H "X-API-Key: $API_KEY" \
  "https://api.pickscribe.com/api/v1/channels/UCuAXFkgsw1L7xaCfnd5JJOw/videos?limit=10"

Esempio Risposta

{
  "channelId": "UCuAXFkgsw1L7xaCfnd5JJOw",
  "videos": [
    {
      "videoId": "dQw4w9WgXcQ",
      "title": "Rick Astley - Never Gonna Give You Up",
      "viewCount": 1726169126,
      "publishedAt": "2009-10-25T00:00:00Z",
      "hasTranscript": true,
      "transcript": {
        "languageCode": "en",
        "wordCount": 287,
        "isGenerated": false
      }
    }
  ],
  "pagination": {
    "limit": 10,
    "offset": 0,
    "total": 42,
    "hasMore": true
  }
}
GET/stats

Get database statistics.

Esempio Risposta

{
  "videos": 512345,
  "transcripts": 498234,
  "totalWords": 1234567890,
  "avgWordsPerTranscript": 2478
}

Esempi di Codice

Python
import requests

API_KEY = "ytsu_your_api_key_here"
BASE_URL = "https://api.pickscribe.com/api/v1"

headers = {"X-API-Key": API_KEY}

# Search transcripts
response = requests.get(
    f"{BASE_URL}/search",
    headers=headers,
    params={"q": "machine learning", "limit": 10}
)
results = response.json()

# Get transcript for any video (fetched on demand)
video_id = "dQw4w9WgXcQ"
response = requests.get(
    f"{BASE_URL}/transcript/{video_id}",
    headers=headers,
    params={"lang": "en", "includeMetadata": "true"}
)
transcript = response.json()

# Bulk download (missing videos fetched automatically)
response = requests.post(
    f"{BASE_URL}/transcripts/bulk",
    headers={**headers, "Content-Type": "application/json"},
    json={"videoIds": ["dQw4w9WgXcQ", "aircAruvnKk"]}
)
transcripts = response.json()
JavaScript / Node.js
const API_KEY = "ytsu_your_api_key_here";
const BASE_URL = "https://api.pickscribe.com/api/v1";

// Search transcripts
const response = await fetch(
  `${BASE_URL}/search?q=machine+learning&limit=10`,
  { headers: { "X-API-Key": API_KEY } }
);
const results = await response.json();

// Get transcript for any video (fetched on demand)
const transcript = await fetch(
  `${BASE_URL}/transcript/dQw4w9WgXcQ?lang=en&includeMetadata=true`,
  { headers: { "X-API-Key": API_KEY } }
).then(r => r.json());

// Bulk download (missing videos fetched automatically)
const bulkResponse = await fetch(`${BASE_URL}/transcripts/bulk`, {
  method: "POST",
  headers: {
    "X-API-Key": API_KEY,
    "Content-Type": "application/json"
  },
  body: JSON.stringify({
    videoIds: ["dQw4w9WgXcQ", "aircAruvnKk"],
    fetchMissing: true
  })
});
const transcripts = await bulkResponse.json();

Codici di Errore

CodeDescription
400Bad Request - Parametri non validi
401Unauthorized - Chiave API mancante o non valida
403Forbidden - Abbonamento Ultra richiesto o scaduto
404Not Found - Risorsa non trovata
429Too Many Requests - Limite di rate superato
500Internal Server Error

Hai Bisogno di Aiuto?

Hai domande o hai bisogno di supporto? Contattaci.

[email protected]