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-06-11 01:22:07 +02:00
2026-06-11 01:57:19 +02:00
2026-06-11 02:11:02 +02:00
2026-06-11 03:07:49 +02:00
2026-06-11 04:15:25 +02:00
2026-06-11 23:07:09 +02:00
2026-06-12 01:43:07 +02:00
2026-06-12 02:47:55 +02:00
2026-06-14 18:40:05 +02:00
2026-06-15 14:37:09 +02:00
2026-06-15 15:33:53 +02:00
2026-06-15 23:00:56 +02:00
2026-06-16 09:17:14 +02:00
2026-06-16 15:58:23 +02:00
2026-06-18 03:20:17 +02:00
2026-06-18 03:20:17 +02:00
2026-06-18 04:37:08 +02:00
2026-06-19 02:16:42 +02:00
2026-06-19 11:48:11 +02:00
2026-06-19 12:22:36 +02:00
2026-06-19 14:03:11 +02:00
2026-06-19 19:52:12 +02:00
2026-06-19 19:52:02 +02:00
2026-06-21 00:38:47 +02:00
2026-06-25 22:05:35 +02:00
2026-06-25 22:05:35 +02:00
2026-06-29 02:01:31 +02:00
2026-06-29 02:30:37 +02:00
2026-06-30 00:39:09 +02:00
2026-06-30 00:39:09 +02:00
2026-06-30 02:00:38 +02:00
2026-06-30 02:52:44 +02:00
2026-07-01 00:42:32 +02:00
2026-07-01 03:17:36 +02:00
2026-07-02 23:57:40 +02:00
2026-07-02 23:57:40 +02:00
2026-07-03 00:26:40 +02:00
2026-07-03 03:00:08 +02:00
2026-07-03 04:08:53 +02:00
2026-07-04 01:01:46 +02:00