Video states and processing completion
A video's status indicates progress through upload, transcription, and search preparation. Refer to it when implementing waiting states or investigating stalled processing.
Normal flow
This diagram shows processing states, not a user-facing button for every arrow. Some registration paths, such as YouTube imports, skip file upload.
| Value | What it means or waits for | Where to check |
|---|---|---|
uploading | File upload and completion notification | Browser, storage, API |
pending | Transcription to start | Queue delivery, worker |
processing | Audio-to-text conversion and related work | Worker, Whisper |
indexing | Building searchable subtitle data | Worker, embedding API, DB |
completed | Video is ready for search | Add it to a course and ask questions |
error | A stage failed | Error details and relevant logs |
Also inspect individual implementations for paths such as reindexing. Normal transition definitions are in video_status.py; indexing completion is handled in tasks/indexing.py.
Check PLOG readiness separately
After search data is created, a build_plog job generates learning concepts and hints. A completed video may therefore still be unavailable for study mode.
plog_build_jobs tracks generation state. Even after generation completes, empty concepts or an unusable learning order prevent study. Do not enable the Study button based only on video status.
Related: PLOG and study mode, Stalled processing.