Commit graph

103 commits

Author SHA1 Message Date
BoulderBadgeDad
303b09f1b5 YouTube: ship the JS runtime + nightly yt-dlp so streams/music videos work out of the box
YouTube now gates downloadable formats behind JS challenges (nsig); yt-dlp
needs a JavaScript runtime (Deno — its only default-enabled one) to solve
them, and its STABLE channel can lag months behind a breaking YouTube change.
Users hit "Requested format is not available" on every stream and music-video
download with no hint why. Neither piece is fixable via requirements.txt:
Deno isn't a Python package, and a version floor can only ever resolve stable.

- Dockerfile: install Deno in the runtime image (official installer,
  auto-detects amd64/arm64, build fails early via `deno --version` if it
  breaks; unzip added for the installer) and build with the yt-dlp NIGHTLY
  channel (`pip install -U --pre "yt-dlp[default]"`) on top of requirements
- core/youtube_client.py: one-time startup warning when deno isn't on PATH,
  naming the exact failure it causes and the install command — instead of
  letting users debug a cryptic yt-dlp format error
- requirements.txt: annotate the yt-dlp line with the stable-lag caveat, the
  nightly upgrade command, and the Deno requirement
- README: Deno + nightly notes in Prerequisites and the Python (No Docker)
  install section; Docker bundles both automatically
2026-06-06 16:50:24 -07:00
Arvuno
3e117909da docs(readme): document AcoustID API key + retag gotcha
The AcoustID section in the README was a one-liner that did not
explain how to get the API key or why the retag action sometimes
appears to do nothing.

Expand the section with:

- A short paragraph pointing users at acoustid.org/new-application
  and the Settings entry where the key belongs.
- A note cross-referencing issue #704: the retag path treats an
  existing MUSICBRAINZ_TRACKID tag as a short-circuit, so removing
  the cached tag is the documented workaround. This gives a
  definitive answer until the retag path itself is fixed.

No code or behavioural change.
2026-06-03 19:43:07 +00:00
Broque Thomas
f02ef4dd6a Update README.md 2026-05-20 09:23:48 -07:00
Broque Thomas
3ea5c2788a Update README.md 2026-05-20 09:22:08 -07:00
Broque Thomas
6af5d191cd Release 2.5.5 — Manual Library Match
Bump version to 2.5.5. Collapse WHATS_NEW to 2.5.5 block (Manual Library
Match entry only). Remove subreddit link from README.
2026-05-17 23:18:59 -07:00
Antti Kettunen
f176ba1eb0
Clean up docs related to local development instructions 2026-05-13 22:26:23 +03:00
Antti Kettunen
d8f8c6b95c
Convert dev launcher to Python
- Replace the shell convenience script with a cross-platform Python launcher.
- Keep dev.sh as a Unix compatibility wrapper.
- Let the direct backend bind with host and port overrides.
- Update the root and webui README guidance for the new launcher.
- Preserve the backend startup behavior used by the old dev flow.
2026-05-13 22:26:23 +03:00
Antti Kettunen
018a554f35
Add dev launcher and update dev docs
- Introduce dev.sh as the local backend + Vite launcher
- Document the separate backend/frontend development flow
- Note that the dev Gunicorn config restarts Python on file changes
- Note that Vite hot reloads React changes in webui
2026-05-13 22:26:23 +03:00
Broque Thomas
be2d425972 Document missing features in README
Adds previously-undocumented features to the Key Features section:
- Hydrabase P2P metadata network (dev-mode alternative to iTunes)
- Genre Whitelist for filtering junk tags across enrichment sources
- Multi-artist tagging options (separator, multi-value ARTISTS, feat-in-title)
- Live Log Viewer in Settings → Logs
- ReplayGain analysis during post-processing

Expands the Automation Engine section with more trigger examples,
multi-THEN actions (up to 3 per automation), Signal Chains cycle-
detection behavior, and Automation Groups.

Expands Mirrored Playlists to cover Auto Wing It metadata fallback
and the per-track Unmatch button with DB persistence.
2026-04-21 14:58:07 -07:00
Broque Thomas
8983da5b18 Document dev/nightly release channels and contributor workflow
Adds a Release Channels section to the main README explaining the three
Docker image tracks users can choose from: stable :latest (Docker Hub),
nightly :dev (GHCR, rebuilt from dev branch), and pinned version tags.
Includes a decision table for picking the right channel and switching
instructions for docker-compose users.

Notes on the Unraid section that the template points at :latest by
default, and how to switch an Unraid container to the :dev channel
by editing the Repository field.

Adds a Contributing section covering the dev → main PR workflow, how to
branch off dev, expectations around ruff + pytest passing locally, and
how to run the dev gunicorn config.

Mirrors a short release-channels blurb at the top of
Support/README-Docker.md pointing at the main README's full guide.
2026-04-21 14:40:24 -07:00
Broque Thomas
efe8280e23 Rebrand folder terminology: Download→Input, Transfer→Output, Staging→Import
All user-facing labels, docs, help text, tooltips, error messages, and debug
info output updated. Backend config keys, variable names, actual path values,
and Docker volume mounts are completely unchanged — zero functional impact.
2026-04-18 17:35:20 -07:00
BoulderBadgeDad
64d87389d6
Merge pull request #315 from kettui/feat/gunicorn
Run SoulSync under Gunicorn
2026-04-18 11:48:48 -07:00
Antti Kettunen
14bc9b6fad Introduce Gunicorn production runner
Switch the web UI from Werkzeug's built-in server to Gunicorn for a more stable production deployment path.

Keep a separate dev config so local runs still reload quickly, while the production path uses a dedicated WSGI entrypoint and cleaner startup behavior.

The main motivation is to reduce the websocket teardown noise and make the server behavior more predictable under the app's mostly background-driven workload.
2026-04-18 19:21:53 +03:00
Broque Thomas
a51e1b6651 Update README: SoulSync standalone mode, no media server required
Added standalone mode to What It Does and Library Management sections.
Media server is now optional — Plex, Jellyfin, Navidrome, or Standalone.
2026-04-18 00:57:14 -07:00
Antti Kettunen
c34fb10881 Rename requirements-webui -> requirements.txt 2026-04-17 20:08:21 +03:00
Broque Thomas
0cae485cc3 Update README.md 2026-04-15 13:53:19 -07:00
Antti Kettunen
6b6c866d03 Add separate requirements file for dev dependencies 2026-04-11 12:58:20 +03:00
Broque Thomas
893bff79cd Update README with session changes
- AcoustID now runs for all sources, not just Soulseek/YouTube
- Metadata source is user-selectable, Spotify no longer auto-overrides
- Streaming match validation applies same scoring as Soulseek
- Playlist Pipeline automation added
- Live/Commentary Cleaner maintenance job added
- Discogs enrichment worker (10 workers total)
2026-04-06 11:36:54 -07:00
Broque Thomas
f5177f9879 Update README for v2.1: Deezer downloads, stats, cache discovery, full feature list 2026-03-23 21:14:50 -07:00
Broque Thomas
20ee504245 update readme and include automation docs 2026-03-05 18:45:00 -08:00
Broque Thomas
5784a561dc Update README.md 2026-03-01 15:41:03 -08:00
Broque Thomas
45500892aa readme update 2026-02-14 08:43:04 -08:00
Broque Thomas
ec4bfce3e4 Update README.md 2026-02-08 13:54:10 -08:00
Broque Thomas
268735eeff Update README.md 2026-02-01 12:26:52 -08:00
Broque Thomas
d7542b20c9 update version modal and readme 2026-01-25 10:33:32 -08:00
Broque Thomas
c6a9db234a Update README.md 2026-01-08 07:29:46 -08:00
Broque Thomas
104ef6e830 Update README.md 2026-01-07 12:02:18 -08:00
Broque Thomas
9aa2ac463a Add Docker path resolution for downloads
Updated _find_downloaded_file to resolve download paths for Docker environments, ensuring compatibility with host-mounted directories. Also updated README to clarify YouTube integration and sources.
2026-01-06 21:13:16 -08:00
Broque Thomas
105c53df35 Update README.md 2025-12-31 09:47:59 -08:00
Broque Thomas
8eb41a545c Update README.md 2025-12-31 09:39:17 -08:00
Broque Thomas
6699740759 Update README.md 2025-12-30 19:34:30 -08:00
Broque Thomas
c7e943034d Add customizable file organization templates
Introduces a template-based file organization system for downloads, allowing users to define custom folder and filename structures for albums, singles, and playlists. Updates the backend, config example, web UI, and client-side validation to support template editing, resetting, and error checking. Improves consistency in file placement and metadata handling across all download modes.
2025-12-10 09:46:22 -08:00
Broque Thomas
90732cc029 Update README.md 2025-12-08 16:37:59 -08:00
Broque Thomas
58388645d7 Update README.md 2025-11-19 09:59:47 -08:00
Broque Thomas
c342794f9e Update README.md 2025-11-18 19:03:32 -08:00
Broque Thomas
781d869f74 Update README.md 2025-11-12 19:57:32 -08:00
Broque Thomas
6ff833ea8f Update README.md 2025-11-12 19:55:29 -08:00
Broque Thomas
c396912585 Update README.md 2025-11-12 19:52:07 -08:00
Broque Thomas
5688f7a89d update readme 2025-11-10 10:46:32 -08:00
Broque Thomas
dead8da5ee similar artist functionality for artists page. 2025-10-04 17:53:17 -07:00
Broque Thomas
21ebcbb726 Update README.md 2025-09-28 23:08:29 -07:00
Broque Thomas
00cb285202 Update README.md 2025-09-26 08:41:49 -07:00
Broque Thomas
8fbb6d2456 Update README.md 2025-09-22 16:16:11 -07:00
Broque Thomas
ab125c48ac Add Docker OAuth workaround instructions to README
Added a section explaining how to complete Spotify OAuth authentication when accessing SoulSync remotely via Docker. This provides a workaround for Spotify's redirect URI restrictions and guides users through the necessary steps.
2025-09-13 09:41:56 -07:00
Broque Thomas
19583a2d28 Add Docker OAuth authentication troubleshooting guide
Introduced DOCKER-OAUTH-FIX.md to address 'Insecure redirect URI' errors when using OAuth from devices other than the Docker host. Updated README.md to reference the new guide for users encountering authentication issues.
2025-09-13 08:24:40 -07:00
Broque Thomas
8d9fb71eb0 Update README.md 2025-09-12 11:26:44 -07:00
Broque Thomas
3e15cbcdc5 Expand API setup instructions in README
Added detailed setup guides for Spotify, Tidal, and Plex APIs, including step-by-step instructions for obtaining credentials and tokens. Clarified prerequisites and configuration steps to help users set up SoulSync more easily.
2025-09-12 11:22:17 -07:00
Broque Thomas
3acc3cf5dc Update README.md 2025-09-11 20:56:20 -07:00
Broque Thomas
31cefb7dd0 Update Docker setup instructions and compose file
README now provides both docker-compose and direct Docker run options. docker-compose.yml switched from local build to using the published soulsync image for easier deployment.
2025-09-11 19:36:03 -07:00
Broque Thomas
315f1227f0 Update README.md 2025-09-11 18:16:37 -07:00