Private YT Music playlists (a user's Liked Music, list=LM) need auth, but the only cookie option was cookiesfrombrowser — a browser on the same machine as SoulSync, useless on a headless/Docker box (and locked to whatever account that browser happens to be signed into). Add a 'Paste cookies.txt' mode so users can supply the exact session they want from any machine. - core/youtube_cookies.py: pure seam — build_youtube_cookie_opts (cookiefile vs cookiesfrombrowser precedence, mutually exclusive, fail-safe on a missing file), looks_like_cookiefile (needs a real cookie row; rejects junk/header-only), write_pasted_cookiefile (validate + 0600 write; blank/junk never clobbers a saved file). - _youtube_cookie_opts() delegates to the seam, so every yt-dlp call site gets it. - /api/settings pops cookies_paste before the generic persist, validates (400 on junk), writes config/youtube_cookies.txt, stores only the path (blob never hits config.json). - Settings dropdown gains 'Paste cookies.txt'; selecting it reveals a textarea. - tests/test_youtube_cookies.py: precedence, validation, fail-safe write (11 tests).
31 lines
621 B
Text
31 lines
621 B
Text
slskd/slskd.exe
|
|
Storage/sync_status.json
|
|
.spotify_cache
|
|
slskd/config/slskd.example.yml
|
|
__pycache__/
|
|
**/__pycache__/
|
|
*.pyc
|
|
*.pyo
|
|
|
|
# Encryption key (generated per-instance, lives next to database)
|
|
.encryption_key
|
|
|
|
# User-specific files (auto-created by the app if missing)
|
|
config/config.json
|
|
config/youtube_cookies.txt
|
|
database/music_library.db
|
|
database/music_library.db-shm
|
|
database/music_library.db-wal
|
|
database/music_library.db.backup_*
|
|
database/api_call_history.json
|
|
storage/image_cache/
|
|
logs/*.log
|
|
logs/*.log.*
|
|
|
|
# Auto-downloaded binaries
|
|
bin/
|
|
|
|
# Development compose/config files
|
|
*.dev.yml
|
|
# Any hidden folders
|
|
**/.*/
|