Files
ytdlp-site/README.md
Carl Pearson 7c69d73083 Update readme
2025-05-02 05:55:33 -06:00

2.1 KiB

ytdlp-site

go mod tidy
export YTDLP_SITE_ADMIN_INITIAL_PASSWORD=abc123
export YTDLP_SITE_SESSION_AUTH_KEY=v9qpt37hc4qpmhf
go run \
 -ldflags "-X ytdlp-site/config.gitSHA=$(git rev-parse HEAD) -X ytdlp-site/config.buildDate=$(date +%Y-%m-%d)" \
 *.go

Environment Variables

  • YTDLP_SITE_ADMIN_INITIAL_PASSWORD: password of the admin account, if the account does not exist
  • YTDLP_SITE_SESSION_AUTH_KEY: admin-selected secret key for the cookie store
  • YTDLP_SITE_SECURE: set to ON for HTTPS deployments

Docker

docker build --build-arg GIT_SHA=$(git rev-parse HEAD) \
  -t server .

docker run --rm -it \
  -p 3000:8080 \
  --env YTDLP_SITE_ADMIN_INITIAL_PASSWORD=abc123 \
  --env YTDLP_SITE_SESSION_AUTH_KEY=avowt7n8 \
  server

docker run --rm -it \
  -p 3000:8080 \
  --env YTDLP_SITE_DATA_DIR=/data \
  --env YTDLP_SITE_CONFIG_DIR=/data/config \
  --env YTDLP_SITE_ADMIN_INITIAL_PASSWORD=abc123 \
  -v $(realpath data):/data \
  server

GHCR Deploy

Build and push this container to ghcr

  • Create a "personal access token (classic)" with write:packages
    • account > settings > developer settings > personal access tokens > tokens (classic) > generate new token (classic)
  • Put that personal access token as the repository actions secret GHCR_TOKEN.

Roadmap

  • Video Page
    • Link to author
  • Videos Page
    • Link to author
  • License
  • Delete failed videos
  • edit original metadata
  • Playlists
    • Refresh
  • change from Audio -> Video
  • Provide a better name for downloaded files
  • Environment variable to control whether "Secure" flag set on cookie
  • Allow custom FPS for video transcode
  • Provide an about page
    • ffmpeg version
    • yt-dlp version
    • disk space
      • add progress bar to represent usage
    • CPU history
  • skip buttons for audio player
  • Track progress via video URL rather than ID
  • video clips
  • move original video to bottom
  • sort videos most to least recent
  • header on playlist page
  • Choose database directory
  • add extension to download
  • server-side watch progress