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-07-04 01:01:46 +02:00
2026-07-04 01:01:46 +02:00
2026-06-14 04:40:22 +02:00
2026-07-03 03:19:00 +02:00
2026-07-01 12:46:50 +02:00
2026-06-11 01:01:37 +02:00
2026-07-03 02:08:10 +02:00
2026-07-03 23:01:09 +02:00
2026-06-11 01:01:37 +02:00
2026-06-21 06:53:12 +02:00
2026-07-03 00:34:08 +02:00
2026-07-04 01:01:46 +02:00
2026-06-18 03:20:17 +02:00
2026-06-18 04:01:10 +02:00
2026-06-30 02:52:44 +02:00
2026-06-16 09:17:14 +02:00
2026-06-25 22:05:35 +02:00
2026-07-03 00:26:40 +02:00
2026-06-26 03:15:36 +02:00
2026-06-26 03:15:36 +02:00
2026-07-03 00:26:40 +02:00
2026-07-03 03:00:08 +02:00
2026-06-26 03:15:36 +02:00
2026-07-04 01:01:46 +02:00