🎯 DART / FLUTTER

YouTube Transcript Dart PackageFlutter SDK

Add YouTube transcript extraction to your Flutter and Dart applications. Available on pub.dev, with full null safety support and a clean, idiomatic API.

INSTALLATION

Add to your pubspec.yaml:

Terminal
dart pub add youtubetranscript
pubspec.yaml
dependencies:
  youtubetranscript: ^0.1.0

QUICK START

Dart
import 'package:youtubetranscript/youtubetranscript.dart';

void main() async {
  final yt = YouTubeTranscript('your_api_key');

  final result = await yt.transcribe('dQw4w9WgXcQ');

  print('${result.segments.length} segments, ${result.wordCount} words');

  for (final seg in result.segments) {
    print('[${seg.startFormatted}] ${seg.text}');
  }

  yt.close();
}

FEATURES

Captions + ASR

Extracts existing captions or transcribes audio when none are available.

100+ Languages

Translate any transcript on the fly.

Batch Processing

Up to 100 videos in a single request.

Export Anywhere

SRT, WebVTT, plain text, timestamped text.

Built-in Search

Find keywords across transcript segments.

Typed Exceptions

NoCaptionsException, RateLimitException, etc.

Automatic Retries

Resilient HTTP layer with configurable retry on 5xx.

Flutter Ready

Works in any Dart app with an example Flutter widget.

Dart — Translate to 100+ Languages
final spanish = await yt.transcribe('dQw4w9WgXcQ', language: 'es');
final japanese = await yt.transcribe('dQw4w9WgXcQ', language: 'ja');
Dart — ASR Audio Transcription
final job = await yt.transcribeAsr('video_id');
final result = await yt.waitForJob(job.jobId);
print(result.text);
Dart — Batch Processing (up to 100 videos)
final batch = await yt.batch(['video1', 'video2', 'video3']);
for (final t in batch.completed) {
  print('${t.videoId}: ${t.wordCount} words');
}
Dart — Export Formats
result.toSrt();              // SRT subtitles
result.toVtt();              // WebVTT subtitles
result.toPlainText();        // Plain text
result.toTimestampedText();  // [MM:SS] text
Dart — Search & Account Stats
final matches = result.search('keyword');
for (final seg in matches) {
  print('[${seg.startFormatted}] ${seg.text}');
}

final stats = await yt.stats();
print('Plan: ${stats.plan}');
print('Credits remaining: ${stats.creditsRemaining}');

ERROR HANDLING

Dart
try {
  final result = await yt.transcribe('video_id');
} on NoCaptionsException {
  final job = await yt.transcribeAsr('video_id');
  final result = await yt.waitForJob(job.jobId);
} on AuthenticationException {
  print('Invalid API key — check youtubetranscript.dev/dashboard');
} on InsufficientCreditsException {
  print('Out of credits — top up at youtubetranscript.dev/pricing');
} on RateLimitException catch (e) {
  print('Rate limited — retry after ${e.retryAfter}s');
} on YouTubeTranscriptException catch (e) {
  print('API error: ${e.message}');
}

FLUTTER WIDGET

Drop in a ready-to-use transcript viewer component. See example/flutter_widget.dart for the full source.

Flutter
TranscriptViewer(
  apiKey: 'your_api_key',
  videoId: 'dQw4w9WgXcQ',
)

API REFERENCE

Method
transcribe(video, {language, source, format})
transcribeAsr(video, {language, webhookUrl})
getJob(jobId)
waitForJob(jobId, {pollInterval, timeout})
batch(videoIds, {language})
getBatch(batchId)
listTranscripts({search, language})
getTranscript(videoId)
stats()
deleteTranscript({videoId, ids})

CREDIT COSTS

OperationCost
Captions extraction1 credit
Translation1 credit per 2,500 chars
ASR audio transcription1 credit per 90 seconds
Re-fetch owned transcriptFree

OTHER SDKs & TOOLS

FREQUENTLY ASKED QUESTIONS

Does the Dart package work with Flutter Web?+

Yes. The package works across all Flutter platforms — iOS, Android, Web, macOS, Windows, and Linux.

What Dart SDK version is required?+

Dart SDK 3.0 or higher. The package uses null safety and modern Dart language features.

Can I use it in a server-side Dart application?+

Yes. The package works in both Flutter and server-side Dart applications using dart:io.

How do I handle API authentication in Flutter?+

Store your API key securely using flutter_secure_storage or environment variables. Never hardcode API keys in client-side code.

Add Transcripts to Your Flutter App

Install from pub.dev. Full null safety. Works on all platforms.

VIEW ON PUB.DEV →

Comienza ahora gratis a extraer transcripciones

Convierte cualquier video de YouTube en texto en segundos. No se requiere tarjeta de crédito.

PRUEBA YOUTUBETRANSCRIPT.DEV →
    YouTube Transcript Dart SDK | YouTubeTranscript.dev