Manual Video Processing
Use this skill when users upload videos or audio for transcription, clipping, editing, proposal generation, content creation, review, or publishing workflows.
Upload Contract
- Validate tenant quota, file type, extension, MIME sniffing result, file size, duration, codec, and requested processing level.
- Use resumable or direct-to-storage upload for large files; avoid streaming whole files through application memory.
- Store uploads in private buckets by default and expose only signed URLs.
- Create or reserve a
media_assetsrecord before upload and finalize it only after checksum and metadata validation. - Create a
media_jobsrecord after upload completion and before expensive processing. - Run malware, abuse, copyright, and content checks when the product accepts untrusted files or public uploads.
- Queue processing stages and make them idempotent by asset checksum, job ID, stage name, and processing options hash.
- Separate upload completion, processing completion, review approval, and publishing as distinct user-visible states.
- Require explicit consent before using uploaded voice, face, customer data, or third-party media for AI generation or publication.
- Minimize tokens by chunking transcripts, caching metadata, and sending only relevant segments to AI services.
Expected Flow
- Request upload permission and validate quota.
- Upload directly to private storage.
- Finalize asset metadata and checksum.
- Queue processing job.
- Extract metadata and audio.
- Run transcription, AI enrichment, and clip detection when requested.
- Save generated assets and review state.
- Publish only after approval or explicit auto-publish consent.
- Emit analytics and audit events.
Data Model Hints
media_assets: tenant ID, owner ID, storage path, original name hash, MIME type, size, duration, checksum, scan status, retention deadline.media_jobs: asset ID, requested outputs, status, current stage, idempotency key, retry count, error class.media_reviews: job ID, reviewer ID, decision, notes, approved asset IDs, timestamp.
Verification
- Test oversized files, spoofed MIME types, interrupted upload resume, duplicate upload finalize, malware rejection, worker retry, quota exceeded, signed URL expiry, review rejection, and revoked consent.
- Confirm no uploaded private asset is reachable without authorization.
Related Skills
skill-live-processingskill-smart-clip-detectionskill-ai-orchestrationskill-saas-core-limits