# I cant download anything If you are receiving errors like: - "OSError: [Errno 5] I/O error" - "OSError: [Errno 18] Cross-device link: '/tmp/random_id/name.webm' -> '/downloads/name.webm' - "Operation not permitted: '/downloads/name.webm' This indicates an error with your mounts and how they interact with the container. So, the basic solution is to do the following: ```yaml services: ytptube: user: "${UID:-1000}:${UID:-1000}" # change this to your user id and group id, for example: "1000:1000" image: ghcr.io/arabcoders/ytptube:latest container_name: ytptube restart: unless-stopped environment: - YTP_TEMP_PATH=/downloads/tmp - YTP_DOWNLOAD_PATH=/downloads/files ports: - "8081:8081" volumes: - ./config:/config:rw - ./downloads:/downloads:rw ``` Then run the following command to create the necessary directories and start the container: ```bash mkdir -p ./config && mkdir -p ./downloads/{tmp,files} && docker compose -f compose.yaml up -d ``` Reference: [Issue #363](https://github.com/arabcoders/ytptube/issues/363) # I want to use link with playlist but only download the video not all the videos in the playlist? Simply create a preset, and in the `Command options for yt-dlp` field set `--no-playlist`. Then select the preset whenever the link includes a playlist id. > [!NOTE] > You can also do the same via advanced options `Command options for yt-dlp` field, but presets are more convenient. # Install specific yt-dlp version? You can force specific version of `yt-dlp` by setting the `YTP_YTDLP_VERSION` environment variable for example ```env YTP_YTDLP_VERSION=2025.07.21 or master or nightly ``` Then restart the container to apply the changes. # How to generate POT tokens? You need to start up a pot provider server we already have extractor `bgutil-ytdlp-pot-provider` pre-installed in the container. You can simply do the following to enable the support for it. ```yaml services: ytptube: user: "${UID:-1000}:${UID:-1000}" # change this to your user id and group id, for example: "1000:1000" image: ghcr.io/arabcoders/ytptube:latest container_name: ytptube restart: unless-stopped ports: - "8081:8081" volumes: - ./config:/config:rw - ./downloads:/downloads:rw tmpfs: - /tmp depends_on: - bgutil_provider bgutil_provider: init: true image: brainicism/bgutil-ytdlp-pot-provider:latest container_name: bgutil_provider restart: unless-stopped ports: - "127.0.0.1:4416:4416" ``` Then simply create a new preset, and in the `Command options for yt-dlp` field set the following: ```bash --extractor-args "youtubepot-bgutilhttp:base_url=http://bgutil_provider:4416" --extractor-args "youtube:player-client=default,tv,mweb;formats=incomplete" ``` you and also enable the fallback by using the follow extractor args ```bash --extractor-args "youtubepot-bgutilhttp:base_url=http://bgutil_provider:4416;disable_innertube=1" --extractor-args "youtube:player-client=default,tv,mweb;formats=incomplete" ``` Use this settings in case the extractor fails to get the pot tokens from the bgutil provider server. For more information please visit [bgutil-ytdlp-pot-provider](https://github.com/Brainicism/bgutil-ytdlp-pot-provider) project.