01 / SCOPE
Start with captions, not a promise of completeness.
TubeText’s YouTube Transcript tool accepts video, Short, playlist and channel links. Its documented outputs include transcript text and optional timecoded segments, timestamped text and SRT.
The workflow below is a captions-only starting point. It does not create embeddings, a vector database or a chat application. Those are separate steps that you choose and validate.
Remembering that a video was delivered is not the same as confirming that your database saved it. Design for both.
02 / CONFIGURATION
Make your missing-caption policy explicit.
The current input schema enables AI fallback by default. Set aiFallback to false for this captions-only path. That disables optional AI transcription, not Actor billing or any AI service you add later.
{
"urls": ["YOUR_SUPPORTED_CHANNEL_URL"],
"channelSort": "newest",
"maxVideosPerSource": 20,
"skipAlreadyScraped": true,
"aiFallback": false,
"includeSegments": true,
"includeTimestampedText": true,
"includeSrt": true,
"chunkWords": 0
}Replace the placeholder with a channel you are permitted to process. The candidate limit is per source, not a guarantee that a busy channel’s every upload will be captured. Review the window and schedule deliberately.
Use the current input reference and current pricing before running. Transcript, optional AI-minute and Actor Start charges are different events. An unavailable transcript does not imply the entire run costs zero.
03 / RECOVERY
Archive first. Index second.
- Keep the evidence. Save the run ID, dataset ID, input and complete JSON export in your own durable storage. If reading through the API, retrieve every dataset page.
- Validate before indexing. Separate unsuccessful rows and empty text from usable caption records. Error messages are diagnostic data, not content for a retrieval system.
- Preserve provenance. Carry the video ID, language, original source URL and segment timestamps into your ingestion layer. Keep fractional timestamps even if a source link opens at a whole second.
- Replay the export. If your database write fails, recover from the saved dataset instead of immediately fetching every video again.
The existing offline Python ingestion example demonstrates local SQLite replay handling. It uses one document per original caption segment as a transparent baseline. That is not a recommendation for optimal chunk size or proof of retrieval quality.
04 / EXCEPTIONS
Make “needs review” a normal outcome.
Retain the row for diagnosis. Do not index it or silently replace it with generated text.
Make refresh a deliberate decision. A repeated video ID is not proof that its caption content is unchanged.
Inspect the original run and dataset before retrying. A missing client response is not proof that no work happened.
Do not assume upstream seen-video memory is a separate cursor for every database. Recover from your retained exports.
Restricted or unavailable videos and caption errors remain possible. Only process content you have permission to use; verify source accuracy when it matters.
Need to distinguish missing captions from retrieval errors? Diagnose missing captions and choose AI fallback deliberately before sending text into your archive.
05 / NEXT STEP
Use the existing example, then adapt it.
The linked example explains configuration, exports, validation and recovery. Its offline tests use synthetic data; they do not establish live coverage, billing behavior or production readiness. Review concurrency and upsert semantics separately before moving to a multi-worker system.