Skip to content

Conversation

@Mayurifag
Copy link
Owner

No description provided.

Documents the process of replacing the yt-dlp Python dependency with a system-level nightly binary. This change aims to ensure the application can utilize the latest fixes and features by treating yt-dlp as a self-updating tool.

- Creates AGENT_TASKS/replace-yt-dlp-dependency.md to detail the user problem, solution, and implementation steps.
- Outlines the removal of yt-dlp from Python dependencies.
- Specifies modifications to Dockerfiles for user-level installation and PATH configuration.
- Details the setup of a daily cron job in the production environment for automatic nightly updates.
- Defines success metrics to validate the implementation.
- Lists specific files to be modified and relevant make commands.
The `yt-dlp` package was transitioned from a Python dependency to a system-level binary to enable automatic updates to the latest nightly builds, ensuring access to timely fixes and features.

- Removed `yt-dlp` dependency from `backend/pyproject.toml` and `backend/uv.lock`.
- Updated `docker/backend.Dockerfile` to download, install, and update `yt-dlp` to nightly in `/home/appuser/.local/bin`.
- Updated `docker/production/production.Dockerfile` to install `cron` and configure `yt-dlp` binary installation and nightly updates.
- Created `docker/production/yt-dlp-update.cron` for daily `yt-dlp` nightly updates.
- Added `cron` as a supervised program in `docker/production/supervisord.conf`.
- Deleted `AGENT_TASKS/replace-yt-dlp-dependency.md` and marked the task complete in `ROADMAP.md`.
The previous auto-play mechanism relied on the `canplay` event, which could sometimes lead to playback issues if the play attempt occurred outside of a direct user gesture. This refactor simplifies the logic by attempting to play the audio immediately when `updateAudioSource` is called with `isPlaying=true`, ensuring it occurs within the user's interaction context and improving reliability.

- Removed `shouldAutoPlay` property from AudioService.
- Removed `canplay` event listener and `handleCanPlay` method from AudioService.
- Modified `updateAudioSource` to directly call `audio.play()` if `isPlaying` is true, including error handling for AbortError.
- Updated AudioService.test.ts to remove `canplay` event listener assertions and related auto-play test logic.
This commit updates various frontend dependencies to their latest stable versions to ensure compatibility, security, and access to new features. It also refines the backend Dockerfile by removing obsolete environment variables and adds a new Makefile target for easier dependency updates.

- Updated SvelteKit from 2.21.5 to 2.43.1.
- Updated ESLint from 9.29.0 to 9.36.0, including related `@typescript-eslint` packages.
- Updated TailwindCSS from 4.1.10 to 4.1.13, including `@tailwindcss/node` and `@tailwindcss/oxide`.
- Updated Vite from 6.3.5 to 6.3.6 and Rollup from 4.40.2 to 4.52.0.
- Removed UV_COMPILE_BYTECODE and UV_LINK_MODE environment variables from docker/backend.Dockerfile.
- Added a new `front-npm-update` target to makefiles/frontend.mk.
- Upgraded numerous other minor and patch version dependencies across the frontend stack.
This change introduces support for using a `cookies.txt` file during audio downloads. This enables authenticated downloads via `yt-dlp` by passing the `--cookies` flag when the file is present, improving access to restricted content.

- Added `COOKIES_FILE_PATH` computed field to `Config` in `config.py`.
- Modified `_download_audio` to include `--cookies` flag with `COOKIES_FILE_PATH` if the file exists.
- Added unit tests for `COOKIES_FILE_PATH` configuration and `--cookies` flag logic.
- Updated `docker-compose.override.yml.example` to suggest mounting `cookies.txt`.
@claude
Copy link

claude bot commented Sep 23, 2025

Claude encountered an error —— View job


I'll analyze this and get back to you.

The GitHub Actions workflows responsible for integrating Claude AI code review were removed. This change streamlines the CI setup by eliminating unused or deprecated automation.

- Deleted .github/workflows/claude-code-review.yml.
- Deleted .github/workflows/claude.yml.
The virtual environment directory `/opt/venv` was changed to use a named Docker volume instead of a host-mounted path. This can cause permission issues for the `appuser` within the container, as named volumes are often created with `root` ownership. These changes ensure the `appuser` has the necessary permissions to write to the virtual environment.

- Added `sudo` package to backend Dockerfile.
- Configured `/etc/sudoers` to allow `appuser` passwordless `chown -R appuser* /opt/venv*`.
- Included a `chown` command in the backend Dockerfile `CMD` to set `appuser` ownership for `/opt/venv`.
- Renamed `x-volumes` to `x-backend-volumes` in docker-compose.override.yml.example.
- Updated `/opt/venv` volume mount to use `backend_venv` named volume.
- Defined `backend_venv` in the `volumes` section of docker-compose.override.yml.example.
@Mayurifag Mayurifag merged commit 6fb0aed into main Sep 23, 2025
4 checks passed
@Mayurifag Mayurifag deleted the yt-dlp-as-binary branch September 23, 2025 01:18
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants