peter
470231516f
feat(downloads): editor backend — trim/crop derivatives (phase 2)
Per-user trim/crop clips derived from a finished download via ffmpeg, riding the same
MediaAsset/DownloadJob/worker/quota/GC machinery (asset source_kind='edit', per-user cache key):
- migration 0041: download_jobs job_kind/source_job_id/source_asset_id/edit_spec
- app/downloads/edit.py: spec normalize+sig, ffmpeg trim/crop cmd (fast stream-copy vs frame-
accurate re-encode, per-edit 'accurate' toggle), progress+cooperative-cancel runner, filmstrip
- service.enqueue_edit; worker _process_edit branch; storage.edit_rel_path (.edits/{user} tree)
- routes: POST /edit, GET /{id}/storyboard(.jpg)
2026-07-04 01:01:46 +02:00
..
2026-06-11 01:01:37 +02:00
2026-07-01 00:42:32 +02:00
2026-07-01 01:00:32 +02:00
2026-06-19 12:22:36 +02:00
2026-07-04 01:01:46 +02:00
2026-07-01 00:42:32 +02:00
2026-06-11 01:01:37 +02:00
2026-06-26 03:15:36 +02:00
2026-07-01 23:43:35 +02:00
2026-06-18 03:20:17 +02:00
2026-06-26 03:15:53 +02:00
2026-06-12 02:47:55 +02:00
2026-07-01 03:17:36 +02:00
2026-06-19 13:07:45 +02:00
2026-07-01 00:42:32 +02:00
2026-06-21 00:40:54 +02:00
2026-06-26 03:15:53 +02:00
2026-06-26 03:15:36 +02:00
2026-06-15 00:06:57 +02:00