Repository navigation
feat(pipelines): convert steps that make a video's soundtrack an audio asset and a document's pages image assets - #568
Merged
Conversation
…o asset and a document's pages image assets Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_0141Zzcr9fDE5qRnKhFUVATi
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_0141Zzcr9fDE5qRnKhFUVATi
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Requested by Adeel · project thread
Description
Before: a pipeline's steps only made derived data of an asset (transcript, shots, pages). There was no way to turn a video into an audio asset, or a document's pages into image assets.
After: a new Convert step (step library and canvas,
{"type": "convert", "to": "audio" | "images"}):New assets stay in the same namespace and collection, are encrypted where its files are, and say what they were made from (
converted_fromon the recording API, and a "Soundtrack of / Page N of" link in the asset header). They then run the pipeline their content type gives them, as an upload does;pipelinenames another one, or"none"keeps them as they are. Re-running keeps what was made;forceremakes the files (an old file in another format is removed). A converted asset is never converted again, so a pipeline can't feed itself; deleting it deletes its file. Default pipelines are unchanged.How:
app/domain/conversions.py(ffmpeg for audio, the existing page JPEGs for images, the attachment-resource pattern for new assets);pipelines.validate_stepschecks the settings (only a convert step takesto,format,pipeline); workers that transcribe or read run it too, so olderworkers.stepslists don't leave it waiting.Motivation and Context
Parked todo "Asset converter steps" (DEVLOG: video → audio, document → images), started by Adeel's "Start all".
Types of changes
!in the title)Checklist:
make hookschecks it on commit).tests/api/test_conversions.py,__tests__/pipeline-convert.test.ts).docs/accordingly (processing.md "Converting assets", requirements.md, README built list).Done questions (AGENTS.md)
POST /api/v1/pipelines,/run) and by automations' Run pipeline;converted_fromis in the recording API."none".converted_from) only; no stored-data change needs an upgrade step.make openapi).Local CI (
ci/local-ci.sh, backend, frontend, pre-commit, title): all pass on ed001e1.Generated by Claude Code