Alex Shnitman
1a32eba474
fix PUBLIC_HOST_URL without a trailing slash ( closes #959 )
2026-04-16 22:08:08 +03:00
Alex Shnitman
29ccc42409
don't run workflow on README changes
2026-04-13 20:49:10 +03:00
Alex Shnitman
f2d71cbe2e
add more CORS details
2026-04-13 20:45:20 +03:00
Alex Shnitman
03f71fd257
fix asterisk CORS_ALLOWED_ORIGINS, mentioned in #955
2026.04.13
2026-04-13 19:02:27 +03:00
Alex Shnitman
210c607c53
fix pnpm build
2026.04.12
2026-04-12 23:07:22 +03:00
dependabot[bot]
381896901a
Bump softprops/action-gh-release from 2 to 3 in the github-actions group
...
Bumps the github-actions group with 1 update: [softprops/action-gh-release](https://github.com/softprops/action-gh-release ).
Updates `softprops/action-gh-release` from 2 to 3
- [Release notes](https://github.com/softprops/action-gh-release/releases )
- [Changelog](https://github.com/softprops/action-gh-release/blob/master/CHANGELOG.md )
- [Commits](https://github.com/softprops/action-gh-release/compare/v2...v3 )
---
updated-dependencies:
- dependency-name: softprops/action-gh-release
dependency-version: '3'
dependency-type: direct:production
update-type: version-update:semver-major
dependency-group: github-actions
...
Signed-off-by: dependabot[bot] <support@github.com >
2026-04-12 16:12:38 +00:00
Alex Shnitman
4330d3b6c6
fix yt-dlp options examples
2026-04-10 14:06:08 +03:00
Alex Shnitman
06c4a2c4a8
update documentation
2026-04-10 08:38:32 +03:00
Alex Shnitman
388aeb180d
Merge branch 'bgervan/master'
2026.04.10
2026-04-10 08:10:00 +03:00
Alex Shnitman
aa60420ead
document CORS_ALLOWED_ORIGINS variable
2026-04-10 08:09:20 +03:00
Benjamin Gervan
a6e8617ad8
Don't mark live streams as seen
2026-04-10 06:41:45 +02:00
az10b
0072d3488a
Fix permissive CORS policy that allows cross-origin attacks
...
The on_prepare handler unconditionally reflected the Origin request
header into Access-Control-Allow-Origin, and Socket.IO was configured
with cors_allowed_origins='*'. This allowed any website to make
authenticated cross-origin requests to all API endpoints, enabling
cross-origin download initiation, cookie overwrite, and data deletion.
Replace the blanket origin reflection with an explicit allowlist via
the CORS_ALLOWED_ORIGINS environment variable. When unset, cross-origin
requests are denied by default. Users who need cross-origin access can
set CORS_ALLOWED_ORIGINS to a comma-separated list of trusted origins.
2026-04-09 19:45:51 -05:00
Alex Shnitman
0b3645aea1
upgrade dependencies
2026.04.09
2026-04-09 21:00:26 +03:00
Alex Shnitman
2c838e3d3d
Merge branch 'dependabot/github_actions/github-actions-7530ffc9b9' of https://github.com/alexta69/metube into McSwindler/master
2026-04-09 20:59:13 +03:00
McSwindler
d38d7bd1b1
fix: handle playlists that don't supply video ids
2026-04-09 10:15:11 -05:00
dependabot[bot]
b7709d3536
Bump astral-sh/setup-uv from 6 to 7 in the github-actions group
...
Bumps the github-actions group with 1 update: [astral-sh/setup-uv](https://github.com/astral-sh/setup-uv ).
Updates `astral-sh/setup-uv` from 6 to 7
- [Release notes](https://github.com/astral-sh/setup-uv/releases )
- [Commits](https://github.com/astral-sh/setup-uv/compare/v6...v7 )
---
updated-dependencies:
- dependency-name: astral-sh/setup-uv
dependency-version: '7'
dependency-type: direct:production
update-type: version-update:semver-major
dependency-group: github-actions
...
Signed-off-by: dependabot[bot] <support@github.com >
2026-04-05 16:12:43 +00:00
Alex
1f79883b75
Merge pull request #944 from jacinli/codex/fix-subscription-enabled-parsing
...
Fix string boolean parsing for subscription enabled updates
2026.04.05
2026-04-05 10:25:46 +03:00
jacinli
373692ac65
fix: parse string boolean values when updating subscriptions
2026-04-05 14:05:59 +08:00
Alex Shnitman
54680c405c
explain yt-dlp configuration in detail
2026-04-04 12:58:47 +03:00
Alex Shnitman
dd0f98d12f
change option presets to be multi-select
2026.04.04
2026-04-04 10:25:46 +03:00
Alex Shnitman
d41bdf61e2
finalize custom options ( closes #563 , #482 , #261 , #681 )
2026.04.03
2026-04-03 13:20:37 +03:00
copilot-swe-agent[bot]
a02abf5853
Keep override controls on dedicated row
...
Agent-Logs-Url: https://github.com/alexta69/metube/sessions/aef158da-f919-4a3d-a5ee-b71df51c124d
Co-authored-by: alexta69 <7450369+alexta69@users.noreply.github.com >
2026-04-03 09:21:44 +00:00
copilot-swe-agent[bot]
b16e597125
Fix frontend test typing for override flag
...
Agent-Logs-Url: https://github.com/alexta69/metube/sessions/31b4274d-cf48-4260-b73b-633cbcd2bb09
Co-authored-by: alexta69 <7450369+alexta69@users.noreply.github.com >
2026-04-03 09:07:34 +00:00
copilot-swe-agent[bot]
6e9b2dd7b3
Gate manual yt-dlp overrides behind flag
...
Agent-Logs-Url: https://github.com/alexta69/metube/sessions/31b4274d-cf48-4260-b73b-633cbcd2bb09
Co-authored-by: alexta69 <7450369+alexta69@users.noreply.github.com >
2026-04-03 09:05:19 +00:00
copilot-swe-agent[bot]
565a715037
feat: add per-download yt-dlp presets and overrides
...
Agent-Logs-Url: https://github.com/alexta69/metube/sessions/8a3119fc-63d1-4508-a196-8c50ff248812
Co-authored-by: alexta69 <7450369+alexta69@users.noreply.github.com >
2026-04-03 06:16:12 +00:00
Alex
b4d497f53d
Merge pull request #937 from alexta69/copilot/check-issue-692
...
Propagate missing playlist context fields (playlist_count, playlist_autonumber, etc.)
2026.04.02
2026-04-02 10:55:00 +03:00
Alex Shnitman
0cba61c9a4
update README
2026-04-02 10:52:56 +03:00
Alex Shnitman
9858157581
Merge branch 'copilot/fix-healthcheck-failure-ipvlan' of https://github.com/alexta69/metube into copilot/check-issue-692 ( closes #936 )
2026-04-02 10:52:11 +03:00
copilot-swe-agent[bot]
d7eaaaa94b
Add clarifying comments for n_entries and __last_playlist_index fields ( closes #692 )
...
Agent-Logs-Url: https://github.com/alexta69/metube/sessions/b5aeb55a-3197-4a14-b8b4-96c9a67796e8
Co-authored-by: alexta69 <7450369+alexta69@users.noreply.github.com >
2026-04-02 10:51:03 +03:00
copilot-swe-agent[bot]
771ba52d53
Use PORT env variable in Dockerfile HEALTHCHECK instead of hardcoded 8081
...
Agent-Logs-Url: https://github.com/alexta69/metube/sessions/899e7074-fd3d-4538-8bad-8ee6804d5052
Co-authored-by: alexta69 <7450369+alexta69@users.noreply.github.com >
2026-04-02 07:25:14 +00:00
copilot-swe-agent[bot]
1cc27d3f55
Initial plan
2026-04-02 07:23:14 +00:00
copilot-swe-agent[bot]
981e6c1003
Propagate missing playlist context fields (playlist_count, playlist_autonumber, n_entries, __last_playlist_index)
...
The playlist/channel processing loop now sets playlist_count,
playlist_autonumber, n_entries, and __last_playlist_index on each
video entry so that templates like %(playlist_autonumber)s,
%(playlist_count)s, and %(playlist_index&{} - |)s resolve correctly
instead of showing NA.
Also updates _compact_persisted_entry to preserve n_entries and
__last_playlist_index across restarts.
Fixes #692
Agent-Logs-Url: https://github.com/alexta69/metube/sessions/b5aeb55a-3197-4a14-b8b4-96c9a67796e8
Co-authored-by: alexta69 <7450369+alexta69@users.noreply.github.com >
2026-04-01 19:59:32 +00:00
copilot-swe-agent[bot]
b17e1e5668
Add explanatory comment for fake STR_FORMAT_RE_TMPL key group in tests
...
Agent-Logs-Url: https://github.com/alexta69/metube/sessions/0ae5ff34-540f-4fc8-a81c-358fb92b7c15
Co-authored-by: alexta69 <7450369+alexta69@users.noreply.github.com >
2026-04-01 19:34:09 +00:00
copilot-swe-agent[bot]
c1b5540332
Replace custom template substitution with yt-dlp's evaluate_outtmpl
...
Replace the hand-rolled _outtmpl_substitute_field() / _compile_outtmpl_pattern()
with a new _resolve_outtmpl_fields() that delegates to yt-dlp's
YoutubeDL.evaluate_outtmpl(). This gives playlist/channel output templates
access to yt-dlp's full template syntax: defaults (%(field|fallback)s),
conditional formatting (%(field&prefix {})s), math (%(field+N)d),
datetime formatting (%(field>%Y-%m-%d)s), and more.
Only field references whose root name matches the targeted prefix (e.g.
"playlist" or "channel") are resolved; all other references remain as
template placeholders for yt-dlp to fill during the actual download.
Agent-Logs-Url: https://github.com/alexta69/metube/sessions/0ae5ff34-540f-4fc8-a81c-358fb92b7c15
Co-authored-by: alexta69 <7450369+alexta69@users.noreply.github.com >
2026-04-01 19:31:27 +00:00
Alex Shnitman
483575d24a
add subscriptions; change persistence file format to JSON ( closes #901 , #76 , #113 , #170 , #242 , #444 , #503 , #555 , #566 )
2026.04.01
2026-04-01 14:33:24 +03:00
Alex Shnitman
84c6418f91
fix pickle ( closes #814 )
2026.03.21
2026-03-21 12:42:17 +02:00
Alex Shnitman
a1f2fe3e73
implement tests
2026.03.20
2026-03-20 13:12:31 +02:00
AutoUpdater
0bf508dbc6
upgrade yt-dlp from 2026.3.13 to 2026.3.17
2026.03.18
2026-03-18 00:14:51 +00:00
Alex
104d547150
Update Trivy action version in workflow
2026.03.15
2026-03-15 21:06:19 +02:00
Alex Shnitman
289133e507
upgrade dependencies
2026-03-15 20:54:46 +02:00
Alex Shnitman
7fa1fc7938
code review fixes
2026-03-15 20:53:13 +02:00
Alex Shnitman
04959a6189
upgrade dependencies
2026.03.14
2026-03-14 12:05:04 +02:00
AutoUpdater
8b0d682b35
upgrade yt-dlp from 2026.3.3 to 2026.3.13
2026-03-14 00:13:08 +00:00
Alex Shnitman
475aeb91bf
add status indicator when adding a URL
2026.03.13
2026-03-13 19:49:18 +02:00
Alex Shnitman
5c321bfaca
reoganize quality and codec selections
2026-03-13 19:47:36 +02:00
CyCl0ne
56826d33fd
Add video codec selector and codec/quality columns in done list
...
Allow users to prefer a specific video codec (H.264, H.265, AV1, VP9)
when adding downloads. The selector filters available formats via
yt-dlp format strings, falling back to best available if the preferred
codec is not found. The completed downloads table now shows Quality
and Codec columns.
2026-03-09 08:59:01 +01:00
Alex Shnitman
3b0eaad67e
Merge branch 'dependabot/github_actions/github-actions-292e5e2d7a' of https://github.com/alexta69/metube into feature/download-timestamp
2026.03.08
2026-03-08 22:19:01 +02:00
dependabot[bot]
2a166ccf1f
Bump the github-actions group with 4 updates
...
Bumps the github-actions group with 4 updates: [docker/setup-qemu-action](https://github.com/docker/setup-qemu-action ), [docker/setup-buildx-action](https://github.com/docker/setup-buildx-action ), [docker/login-action](https://github.com/docker/login-action ) and [docker/build-push-action](https://github.com/docker/build-push-action ).
Updates `docker/setup-qemu-action` from 3 to 4
- [Release notes](https://github.com/docker/setup-qemu-action/releases )
- [Commits](https://github.com/docker/setup-qemu-action/compare/v3...v4 )
Updates `docker/setup-buildx-action` from 3 to 4
- [Release notes](https://github.com/docker/setup-buildx-action/releases )
- [Commits](https://github.com/docker/setup-buildx-action/compare/v3...v4 )
Updates `docker/login-action` from 3 to 4
- [Release notes](https://github.com/docker/login-action/releases )
- [Commits](https://github.com/docker/login-action/compare/v3...v4 )
Updates `docker/build-push-action` from 6 to 7
- [Release notes](https://github.com/docker/build-push-action/releases )
- [Commits](https://github.com/docker/build-push-action/compare/v6...v7 )
---
updated-dependencies:
- dependency-name: docker/setup-qemu-action
dependency-version: '4'
dependency-type: direct:production
update-type: version-update:semver-major
dependency-group: github-actions
- dependency-name: docker/setup-buildx-action
dependency-version: '4'
dependency-type: direct:production
update-type: version-update:semver-major
dependency-group: github-actions
- dependency-name: docker/login-action
dependency-version: '4'
dependency-type: direct:production
update-type: version-update:semver-major
dependency-group: github-actions
- dependency-name: docker/build-push-action
dependency-version: '7'
dependency-type: direct:production
update-type: version-update:semver-major
dependency-group: github-actions
...
Signed-off-by: dependabot[bot] <support@github.com >
2026-03-08 16:12:41 +00:00
CyCl0ne
3bbe1e8424
Add "Downloaded" timestamp column to completed downloads list
...
Display the completion time for each download in the done list.
The backend already stores a nanosecond timestamp on DownloadInfo; this wires it up to the frontend using Angular's DatePipe.
2026-03-08 14:56:16 +01:00
Alex
a2740375be
Merge pull request #922 from alexta69/copilot/scan-open-issues-for-fixes
...
Fix #898 , #542 , #561 , #504 : config leak, custom-dirs fallback, NTFS path sanitization
2026.03.07
2026-03-07 16:06:12 +02:00