# PlexPlaylistSync PlexPlaylistSync 是一个用于同步 Plex 播放列表和本地 `.m3u`/`.m3u8` 播放列表的工具。它支持自动监控和手动同步,并提供 WebUI 进行管理和配置。 ## 功能特点 - **双向同步**: - 监控本地 `.m3u`/`.m3u8` 播放列表的变化,并同步到 Plex 播放列表。 - 监控 Plex 播放列表的变化,并导出到本地 `.m3u`/`.m3u8` 文件。 - **WebUI 管理**: 通过 WebUI 进行设置,例如指定本地目录、配置 Plex 服务器信息、管理播放列表等。 - **支持流媒体播放列表导入**: 从 Spotify、Deezer、Tidal 导入播放列表并匹配 Plex 资源。 - **低功耗运行**: 适合 NAS 或服务器 24 小时运行,优化资源使用,减少能耗。 - **Docker 部署**: 可通过 Docker 轻松部署和运行。 ### Token 登录 首次登录时使用用户名和密码连接 Plex 服务器,成功后程序会将获得的 `token` 保存在配置文件中,后续通信仅使用该 `token`,不再保存明文密码。 默认情况下 Plex 服务器使用 `32400` 端口,可在未修改服务器端口时直接使用该默认值。 登录页面提供选择 `http` 或 `https` 的下拉框,服务器地址输入框只需填写域名或 IP,默认值会从 `config.json` 读取。 ## 开发环境快速启动(Docker Compose) 项目已内置 Docker 化配置,开发时只需执行一次构建即可运行: ```bash docker compose up --build ``` - 默认会以 `--reload` 模式启动,监听本地 8080 端口,可在浏览器访问 `http://localhost:8080`。 - 通过 `./app/config.json` 保存的 Plex 配置信息会在主机和容器间共享,便于调试时保留登录 token 等数据。 - 如需自定义端口或其他参数,可在 `docker-compose.yml` 中调整。 ## 前端构建与配置 - `sample-front-end` 中提供了新的 React UI,运行 `npm install && npm run build` 会将打包产物输出到 `app/static/frontend`,API 直接调用 FastAPI 后端。 - 环境变量 `STATUS_CHECK_INTERVAL_SECONDS` 用于控制前端自动刷新云端连接状态的轮询间隔(默认 45 秒,最小 15 秒),用于避免频繁请求导致的循环异常。