Commit graph

748 commits

Author SHA1 Message Date
TonyBlu
b25a2ad80a fix(captions): use getattr for filename check in _post_download_cleanup
DownloadInfo doesn't have a 'filename' attribute by default — it's only
set dynamically in update_status when a 'downloaded' status is received.
When captions are silently skipped by yt-dlp (no matching language), the
'downloaded' status is never emitted, so 'filename' doesn't exist on the
object at all. Using getattr(download.info, 'filename', None) instead of
direct attribute access prevents AttributeError.
2026-05-25 21:23:06 +08:00
TonyBlu
36b397ae93 fix(captions): add language variant fallback + error on no files
Two fixes for captions downloads:

1. Language variant fallback: When user requests 'en' but the video only
   has 'en-GB' (or other regional variants), yt-dlp silently skips
   subtitle extraction because it uses exact language matching. Now the
   subtitleslangs list includes common regional variants (e.g. en-US,
   en-GB, en-AU, etc.) so yt-dlp can match the first available variant.

2. Error on no files: When yt-dlp completes successfully (ret=0) but
   produces no subtitle files (e.g. no matching language at all), the
   download was incorrectly shown as 'completed'. Now it's marked as
   'error' with a descriptive message like 'No subtitles found for
   language "en"'. Same treatment for thumbnail downloads.
2026-05-25 21:16:10 +08:00
TonyBlu
e639caa21d fix: Codex review P2 issues + frontend test failure
- Reset download_phase when transitioning to paused (pause(), update_status(),
  _post_download_cleanup()) so UI shows 'Paused' instead of stale phase label
- Reset download_phase when starting/resuming download (start() preparing state)
- Count 'postprocessing' as active download in updateMetrics() so dashboard
  shows accurate counts during ffmpeg post-processing
- Add missing completedDownload Subject to DownloadsServiceStub in app.spec.ts
- Add Download type import to app.spec.ts

Fixes: TypeError Cannot read properties of undefined (reading 'pipe')
       at app.ts:300 (completedDownload not in test stub)
2026-05-25 20:09:17 +08:00
TonyBlu
03cee14948 fix: download phase label not working during downloads
- _download_phase_from_status now falls back to checking requested_formats
  when top-level vcodec/acodec are both 'none' (common when yt-dlp uses
  separate downloaders for video+audio streams)
- Clear download_phase on download completion/error (was persisting stale
  phase value in finished state)
- Add debug logging in put_status for phase detection
- Update docker-compose.local.yml to match docker-compose.yml structure
  with local image build (adds TARGETARCH build arg)
2026-05-25 19:45:43 +08:00
TonyBlur
0791d08e7b Add local compose debug setup 2026-05-25 17:16:28 +08:00
TonyBlur
6e161f4b4b Add auto download and pause resume controls 2026-05-25 16:28:15 +08:00
github-actions[bot]
e9243f65de
fix: Fixed audio file suffix when quality is 'best' and minor UI fixes 2026-05-18 19:56:08 +00:00
TonyBlur
0311df0b06 fix: Fixed audio file suffix when quality is 'best' and minor UI fixes 2026-05-07 07:25:54 +08:00
TonyBlur
8723ab0afe fix: Fixed suffix when quality is 'best' 2026-05-06 14:03:05 +08:00
TonyBlur
de11f5c638 fix: Clear buttons now effective immediately
- Updated navbar to fit theme
- Updated workflow
- Fixed clear buttons not effective immediately
2026-05-06 10:41:49 +08:00
TonyBlur
5639b5432c fix: configure QEMU for multi-platform builds 2026-05-04 14:49:48 +08:00
TonyBlur
c755f394d1 feat: update icons, add suffix and fix bugs
- Removed shadow from URL entry wrap in app.html for a cleaner look.
- Updated various icon files to improve visual consistency across the application.
- Add suffix to identify different files of same video
- Fixed invisible download for short link

Co-authored-by: Copilot <copilot@github.com>
2026-05-04 14:14:26 +08:00
TonyBlur
eb43d4655d Update DockerHub password secret to use DOCKERHUB_TOKEN 2026-05-01 15:05:22 +08:00
TonyBlur
44e3b7d0cb Specify dynamic platform for Node.js builder in Dockerfile 2026-05-01 14:47:54 +08:00
TonyBlur
87f8d50544 Specify platform for Node.js builder in Dockerfile 2026-05-01 14:37:10 +08:00
TonyBlur
e0a10eea52 Add step to prepare lowercase GHCR repository name in CI workflow 2026-05-01 14:30:32 +08:00
TonyBlur
85fd7e0328 Fix browser path in test environment setup to reflect project name change 2026-05-01 13:31:59 +08:00
TonyBlu
5569550398
Merge pull request #3 from TonyBlur/codex/rename-project-to-mytube-and-update-references-m4byy1
more fixes
2026-05-01 13:24:32 +08:00
TonyBlu
f10c0d9369
Merge branch 'master' into codex/rename-project-to-mytube-and-update-references-m4byy1 2026-05-01 13:22:45 +08:00
TonyBlu
e7b5cc3a2f
Merge pull request #2 from TonyBlur/codex/rename-project-to-mytube-and-update-references-xpf5ex
fixes
2026-05-01 13:21:41 +08:00
TonyBlu
d78bc41124 Route public canceled events by composite download key 2026-05-01 13:19:37 +08:00
TonyBlu
82a6a51b21 Fix public download ownership routing by key 2026-05-01 12:23:45 +08:00
TonyBlu
d41bd21b60
Merge branch 'master' into codex/rename-project-to-mytube-and-update-references-xpf5ex 2026-05-01 12:10:31 +08:00
TonyBlu
5fec503512 Fix downloads service tests with optional visit header 2026-05-01 11:54:30 +08:00
TonyBlu
0ac4769ca3
Merge pull request #1 from TonyBlur/codex/rename-project-to-mytube-and-update-references
Rebrand to MyTube, add PUBLIC_MODE, update UI and workflows
2026-05-01 11:32:15 +08:00
TonyBlur
6656efabba update README and docker-compose configuration
Co-authored-by: Copilot <copilot@github.com>
2026-05-01 10:24:22 +08:00
TonyBlu
3c32421b2a Use backend download key in frontend queue/done maps 2026-05-01 09:33:45 +08:00
TonyBlu
b0fa114663 Allow same URL downloads for different output types 2026-05-01 09:14:54 +08:00
TonyBlu
85b86cb47f Fix thumbnail completed filename detection 2026-05-01 08:47:18 +08:00
TonyBlu
bcb2560347 Support multi-link input parsing and multiline URL composer UI 2026-05-01 07:47:32 +08:00
TonyBlu
6f1723b44d Add PUBLIC_MODE and ENV_FILE defaults to Dockerfile 2026-04-30 20:56:31 +08:00
TonyBlu
57350924a5 Support loading env vars from .env files in container 2026-04-30 20:51:01 +08:00
TonyBlu
0c3860cf9b Make PUBLIC_MODE per-visit isolated sessions like reclip 2026-04-30 16:11:06 +08:00
TonyBlu
b6da1e0e7a Tighten PUBLIC_MODE isolation and hide subscription option controls 2026-04-30 16:04:03 +08:00
TonyBlu
fdecd20bbc Enforce PUBLIC_MODE client isolation and hide subscribe UI 2026-04-30 15:55:16 +08:00
TonyBlu
d6fa81b5de Fix dist path rename to mytube for Docker/runtime 2026-04-30 15:35:12 +08:00
TonyBlu
44c42b3773 Refresh frontend with cohesive modern UI styling 2026-04-30 14:58:14 +08:00
Alex Shnitman
5d96a581b9 allow filtering out members-only videos in subscriptions (closes #971) 2026-04-28 22:02:05 +03:00
Alex Shnitman
4f83174d05 implement time-clipped downloads (closes #969, replaces #907) 2026-04-26 23:07:50 +03:00
Alex Shnitman
91ee8312bf title filter for subscriptions (closes #968) 2026-04-26 22:51:48 +03:00
dependabot[bot]
d89a5ddbe5
Bump aquasecurity/trivy-action in the github-actions group
Bumps the github-actions group with 1 update: [aquasecurity/trivy-action](https://github.com/aquasecurity/trivy-action).


Updates `aquasecurity/trivy-action` from 0.35.0 to 0.36.0
- [Release notes](https://github.com/aquasecurity/trivy-action/releases)
- [Commits](https://github.com/aquasecurity/trivy-action/compare/0.35.0...v0.36.0)

---
updated-dependencies:
- dependency-name: aquasecurity/trivy-action
  dependency-version: 0.36.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: github-actions
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-04-26 16:12:39 +00:00
Alex Shnitman
abb9492d21 upgrade dependencies 2026-04-21 16:20:39 +03:00
Alex Shnitman
23de9824f0 cr fixes 2026-04-21 16:13:58 +03:00
rdiaz738
0ea934c08f Updated import and fixed race condition 2026-04-20 17:24:16 -07:00
Alex Shnitman
e9f979b349 fix yt-dlp options overrides (closes #958) 2026-04-18 08:46:29 +03:00
Alex Shnitman
ab42325db5 upgrade dependencies 2026-04-16 22:30:42 +03:00
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 19:02:27 +03:00