1c098028ab
perf(frontend): implement thumbnail caching ( #19 )
...
CI / Maven unit tests (push) Successful in 13s
CI / Build and push images (push) Successful in 2m24s
CI / Deploy to server (push) Successful in 13s
- Simply uses the Spring Side cache headers, which permits the browser to cache the thumbnail
- Max cache time of 2 days before re-fetch required
- Closes #13
Reviewed-on: https://gitea.vodsystem.ddns.net/dylan/vod-system/pulls/19
2026-08-18 21:47:47 +01:00
29bc60d417
fix(streaming): missing HLS segments in edge requests ( #10 )
...
CI / Maven unit tests (push) Successful in 14s
CI / Build and push images (push) Successful in 3m0s
CI / Deploy to server (push) Successful in 16s
Reviewed-on: https://gitea.vodsystem.ddns.net/dylan/vod-system/pulls/10
2026-07-29 18:49:59 +01:00
92cecb1084
chore: remove sql logs from prod
CI / Maven unit tests (push) Successful in 14s
CI / Build and push images (push) Successful in 2m7s
CI / Deploy to server (push) Successful in 12s
2026-07-25 14:31:51 +01:00
ae8f2f33a7
perf(api): add HTTP range requests on media sources ( #9 )
...
CI / Maven unit tests (push) Successful in 20s
CI / Build and push images (push) Successful in 5m14s
CI / Deploy to server (push) Successful in 1m29s
Reviewed-on: https://gitea.vodsystem.ddns.net/dylan/vod-system/pulls/9
2026-07-25 11:06:39 +01:00
fe25ef05dc
build(ci): improve caching efficiency in ci
CI / Maven unit tests (push) Successful in 15s
CI / Build and push images (push) Successful in 25s
CI / Deploy to server (push) Successful in 5s
2026-07-13 23:39:43 +01:00
f9b055b3b5
test(unit): improve test coverage
2026-07-12 19:06:10 +01:00
bb6f5e7823
test(unit): add Thumbnail and Remux service tests
2026-07-12 18:59:44 +01:00
2408263988
fix(media): propagate async FFmpeg results and failures
2026-07-12 18:49:20 +01:00
688ff541da
test(unit): StreamActionsService tests
2026-07-12 18:11:45 +01:00
07ee112d57
refactor(stream actions): move segment logic into StreamActionsService
2026-07-08 22:17:10 +02:00
fbb5c3ab52
fix(interrupts): metadata service not setting interrupt bit
2026-07-08 11:57:01 +02:00
e1e6fe0046
fix(file size): use Long instead of float
...
Float only stores up to 16 million, and file size is stored in bytes. A video can easily be over 16MB (16 million bytes), therefore Long is needed.
2026-07-07 20:48:37 +02:00
a66b9898e8
test(unit): metadata unit tests
2026-07-07 20:26:23 +02:00
baaf162fee
test(unit): maximum bitrate assertions
2026-07-04 14:06:32 +01:00
d7214ca1bc
test(unit): compression service test
2026-07-02 20:59:13 +01:00
5bebea3f95
refactor(command): inject CommandRunner instead of static
2026-07-02 20:04:04 +01:00
fe735faba8
feat(api): delete marker endpoint
2026-07-02 19:37:35 +01:00
41fda53817
docs(docstring): other stream save method
2026-07-02 19:13:55 +01:00
1a0778d1d6
docs(bruno): save with marker endpoint
2026-07-02 19:09:25 +01:00
ba378680c6
feat(markers): add save endpoint with markers
2026-07-02 19:09:07 +01:00
2cac1770f9
feat(markers): auto-delete after 8 hours
2026-07-02 18:53:23 +01:00
dc33d1df33
feat(markers): get by id
2026-07-02 18:35:22 +01:00
18626a5db8
feat(markers): implement marker entity & service
2026-07-02 17:43:13 +01:00
3c8df9b328
fix(clips): remove redundant auth checks
2026-07-01 23:19:51 +01:00
76869c8c90
fix(clips): remove redundant Optional returns
2026-07-01 23:12:23 +01:00
4ec5080edc
docs(docstrings): add clip & vod comments
2026-07-01 22:32:08 +01:00
998eebb032
feat(stream): implement description & title options
2026-07-01 22:23:49 +01:00
e2c94d0740
feat(stream): stream save now auto-persists vod
2026-07-01 22:12:32 +01:00
1fff0805f6
feat(frontend): implement vods in frontend
2026-07-01 22:01:52 +01:00
48ff0eb8e5
feat(frontend): implement vods in frontend
2026-07-01 22:01:41 +01:00
83fcb44670
feat(backend): implement VoD functionality
2026-07-01 21:54:17 +01:00
913c5c8790
fix(exceptions): catch specific error instead of broad
2026-07-01 21:36:50 +01:00
85ddd93757
fix(api): cookies not set on http connections
...
Frontend uses .env URL.
2026-06-26 14:47:15 +01:00
3d57007074
fix(maintainability): clean up reliability issues
2026-06-25 20:39:06 +01:00
42294703ae
chore(backend): remove LocalDateTime usage, replaced with Instant
2026-06-25 20:21:48 +01:00
8b299dc4fa
fix(directories): inputs absolute paths into db
2026-06-23 21:31:45 +01:00
5651aa4ce9
refactor(directories): switch from File to Path objs
2026-06-23 20:53:24 +01:00
7d8a62d331
docs(bruno): missing post response script
2026-06-22 22:34:18 +01:00
dc5af8f868
docs(bruno): overhaul bruno to match new API
2026-06-22 22:08:56 +01:00
da6bf16d07
refactor(media): consolidate upload/edit/download into MediaService
...
Merge UploadService, EditService, JobOrchestrationService, and
DownloadService into a single MediaService with a unified Job lifecycle
(READY → PROCESSING → SUCCEEDED/FAILED via JobState enum).
- Add MediaController (/api/v1/media) exposing compress, save, and clip
- Add JobController (/api/v1/job) for status polling and file download
- Move clip/thumbnail download into ClipController (/{id}/media, /{id}/thumbnail)
- Move stream saveSection/clip from StreamService into MediaService
- Simplify Job DTO: remove dual ClipOptions/files, add ProgressTracker and download file
- Refactor JobRegistryService.add() → generateJob() to co-locate creation and registration
- Wire FFmpeg out_time_ms progress parsing into StreamActionsService via CommandRunner
- Rename GET /api/v1/auth/user → GET /api/v1/user/me
- Delete DownloadController, MetadataController, UploadController
2026-06-22 20:54:16 +01:00
6c1f1112dc
feat(stream): clipping stream now saves to db
2026-06-21 18:31:26 +01:00
b05ae62230
refactor(dto): use record for Token DTO
2026-06-20 19:01:59 +01:00
a6850d3d65
refactor(jobs): split JobService into JobRegistryService and JobOrchestrationService
2026-06-20 18:50:14 +01:00
7cee64beb3
refactor(stream): centralize stream directory resolution in DirectoryService
2026-06-20 18:38:47 +01:00
a0efa3eb8c
feat(stream): add streaming endpoint and indicator
2026-06-20 16:21:18 +01:00
2b1f8ce710
refactor(dto): move API DTOs
2026-06-20 16:04:19 +01:00
06f392a3ff
refactor(dto): use Record instead of Lombok data
2026-06-20 14:54:36 +01:00
637d6c94ed
feat(frontend): add edit clip page
2026-06-20 14:30:22 +01:00
fd1b0e19a1
feat(clips): add edit functionality for title & description
2026-06-20 14:23:50 +01:00
1062f72661
refactor(directories): improve error handling
2026-06-20 12:38:40 +01:00