{"id":25169624,"url":"https://github.com/suntrise/simplay-player","last_synced_at":"2025-05-05T16:26:20.169Z","repository":{"id":220709809,"uuid":"752375772","full_name":"suntrise/Simplay-Player","owner":"suntrise","description":"Python + flet制作的(充满 BUG 的)音乐播放器","archived":false,"fork":false,"pushed_at":"2025-02-08T19:54:00.000Z","size":6291,"stargazers_count":16,"open_issues_count":0,"forks_count":4,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-30T22:23:17.682Z","etag":null,"topics":["163music","flet","music","music-player","netease-cloud-music","python","python3"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/suntrise.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-02-03T18:44:56.000Z","updated_at":"2025-03-29T13:17:26.000Z","dependencies_parsed_at":"2024-02-22T17:54:47.250Z","dependency_job_id":"4f276942-4dcb-48c3-ae9a-9c19f3174995","html_url":"https://github.com/suntrise/Simplay-Player","commit_stats":null,"previous_names":["whatdamon/simplay-player","suntrise/simplay-player"],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/suntrise%2FSimplay-Player","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/suntrise%2FSimplay-Player/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/suntrise%2FSimplay-Player/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/suntrise%2FSimplay-Player/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/suntrise","download_url":"https://codeload.github.com/suntrise/Simplay-Player/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252532912,"owners_count":21763494,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["163music","flet","music","music-player","netease-cloud-music","python","python3"],"created_at":"2025-02-09T08:18:52.425Z","updated_at":"2025-05-05T16:26:20.146Z","avatar_url":"https://github.com/suntrise.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cimg width=\"48\" height=\"48\" align=\"left\" style=\"float: left; margin: 0 10px 0 0;\" alt=\"Simplay Player Logo\" src=\"https://github.com/WhatDamon/Simplay-Player/blob/main/asset/simplay.png\"\u003e  \n\n# Simplay Player\n\n![Python requirement](https://img.shields.io/badge/python-≥3.8-brightgreen?logo=python)\n![GitHub repo size](https://img.shields.io/github/repo-size/WhatDamon/Simplay-Player)\n![GitHub repo license](https://img.shields.io/github/license/WhatDamon/Simplay-Player)\n![GitHub Action #1](https://github.com/WhatDamon/Simplay-Player/actions/workflows/build.yml/badge.svg)\n![GitHub Action #2](https://github.com/WhatDamon/Simplay-Player/actions/workflows/buildwin.yml/badge.svg)\n![GitHub Release](https://img.shields.io/github/v/release/WhatDamon/Simplay-Player)\n![GitHub Downloads](https://img.shields.io/github/downloads/WhatDamon/Simplay-Player/total)\n![GitHub Issues](https://img.shields.io/github/issues/WhatDamon/Simplay-Player)\n![GitHub Pull Requests](https://img.shields.io/github/issues-pr/WhatDamon/Simplay-Player)\n![GitHub Discussions](https://img.shields.io/github/discussions/WhatDamon/Simplay-Player)\n![GitHub repo stars](https://img.shields.io/github/stars/WhatDamon/Simplay-Player)\n\n\u003e [!IMPORTANT]  \n\u003e 注意, 该软件在 macOS 和 Linux 下可能存在影响比较大的 BUG, 其中 Linux 下可能会遇到要求 `libmpv-1` 的问题\n\u003e\n\u003e 由于一些原因, 本项目停止积极维护, 项目所有权已经移交给@suntrise , 这不代表原作者彻底不管这个项目了, 而是作为次要维护者参与本项目, 或许未来原作者会用他正在学习的C#开发一个精神续作?\n\u003e\n\u003e 由于flet积极维护修改了大量API接口, 导致项目需要着手部分功能的重写!\n\n这是一个 __闲得发慌时__ 开发出来的小作品, 写得很烂请见谅\n\n最早被称为 __Simply Player__ 即 __简单的播放器__, __Simplay__ 是在码字过程中意外中得到名字\n\n支持 `MP3`、`M4A`、`FLAC`、`WAV`、`AAC` 格式 (已测试的所有格式中, `APE`、`MP2`、`WMA`、`OGG`有不同程度的不支持, 其他格式也有可能支持)\n\n如果喜欢可以点个 Star, 当然目前我还是更希望各位可以为项目开发添砖加瓦, 多来点 PR\n\n## 使用前须知\n\n对于 __Linux__ 用户, 使用前需要确保安装了 `zenity`, `libmpv` 等软件包 (`libmpv` 是 Flet 硬生生强制添加的依赖, 不过在未来或许会被使用, 当前的音频播放依赖 `gstreamer`)\n\n如 __Ubuntu__ 或者 __Debian__ 用户再使用软件前执行...\n\n~~~Bash\nsudo apt-get install libmpv-dev zenity\n~~~\n\n__Arch__ 则通过 `pacman` 或者 AUR 安装依赖, __RHEL__ 则用 `dnf` 或 `yum` (说真的也没必要教了把...)\n\n__Windows__ 暂无额外需求, __macOS__ 尚不明确\n\n## 要求\n\n__Python 3.10 及更高版本__, 推荐 3.12 及更高版本以保障其正常运行 (Action 中我们使用了 Python 3.11 进行编译测试)\n\n推荐 __[Flet](https://flet.dev) 0.24.0 及更高版本__, 您可以测试一下 Simplay Player 最低它能在哪个版本可以跑起来 (由于 0.20.0 开始部分组件被修改, 样式可能有点奇怪, 将在后续解决, 部分写法将在 Flet 1.0 删除, 届时软件可能不可用)\n\n开发使用前 __*nix系统__ 需要先执行...\n\n~~~Bash\npip install -r requirements.txt\n~~~\n\n而 __Windows__ 则需要执行...\n\n~~~Bash\npip install -r requirements_win.txt\n~~~\n\n___注：区分的原因是 `Windows-Toasts` 库只能在 Windows 下生效!___\n\n如果希望开发 WinRT 相关内容 (如 [SMTC](https://learn.microsoft.com/zh-cn/uwp/api/windows.media.systemmediatransportcontrols)), 需要执行...\n\n~~~Bash\npip install winsdk\n~~~\n\n此外, 该软件 __不能在含有 CJK 文本 (即中文、日语、韩文) 的路径下正常开发与运行__!\n\n## TODO\n\n- [x] 基本逻辑\n- [x] 吐司通知 (Windows 独占性功能, 其它系统使用 `SnackBar` 替代)\n- [x] 快进与倍速播放\n- [x] GitHub Actions 自动测试编译工作流 (使用 __Nuitka__ 实现, 详见[本项目 Actions](https://github.com/WhatDamon/Simplay-Player/actions))\n- [x] 多语言支持 (基本, 目前只有美式英语 `en_US` 和简体中文 `zh_CN`, 若要贡献翻译请查看 [Wiki](https://github.com/WhatDamon/Simplay-Player/wiki/%E8%BD%AF%E4%BB%B6%E7%BF%BB%E8%AF%91))\n- [x] 日志输出 (注: 会产生大量日志信息保存在本地, 提交 issue 请附带该文件)\n- [x] 循环播放\n- [x] 歌词显示与滚动 (基本完成, 但依旧不兼容逐字歌词, 姑且算完成了)\n- [x] 在线获取网易云歌曲 (还有一些 BUG, 慢慢修, 此外 API 比较玄学, 很多逻辑都可能存在问题)\n- [x] 歌单 (除了不支持删除列表项和添加在线歌曲以外基本完成)\n- [x] 检查更新 (基于 __GitHub API__, 允许在在设置中定义源)\n- [ ] 背景图片\n- [ ] 进阶逻辑\n- [ ] 进阶播放方式选择 (目前就只支持一个单曲循环)\n- [ ] 将主界面迁移至 `pages` 中\n- [ ] 设置 (施工中, `i18n/lang.py` 的部分功能需要重构才能实现自定义语言, 其余设置还需要陆续优化完善)\n- [ ] 区间播放 (即 AB 点)\n- [ ] 系统托盘 (预计使用 `pystray` 实现, 如果实现了就可以让 `Windows-Toasts` 退役了, 毕竟功能有重叠)\n- [ ] 界面自动取色 (可能通过将图片压缩到 1x1 实现)\n- [ ] 混音器 (目前使用的组件未提供相关接口, 暂时搁置, 详见 https://github.com/flet-dev/flet/issues/2594)\n- [ ] SMTC 支持 (涉及 WinRT, 仅 Windows, 但实现有点麻烦, 调用代码已注释, 代码在 `lib/smtc.py`, 完成后可能会接入热词实现桌面歌词功能)\n- [ ] 任务栏进度条与按键操作 (仅 Windows 支持)\n- [ ] 多线程支持 (目前的想法只有独立检查更新线程, 其他还需要研究)\n- [ ] 拖入文件加载或命令行加载 (命令行应该会简单一点, 另外一个主要是拖入文件找不到接口)\n- [ ] 视频播放 (Flet 都引入了 `libmpv` 不可能不好好利用一下吧)\n\n对于其他可能的新功能可以到[本项目 Discussions](https://github.com/WhatDamon/Simplay-Player/discussions) 提交\n\n## 使用到的第三方项目\n\n- [flet](https://github.com/flet-dev/flet) (Apache-2.0 license)\n- [TinyTag](https://github.com/devsnd/tinytag) (MIT license)\n- [Windows-Toasts](https://github.com/DatGuy1/Windows-Toasts) (Apache-2.0 license)\n\n___其他的都是 Python 内建库了...___","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsuntrise%2Fsimplay-player","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsuntrise%2Fsimplay-player","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsuntrise%2Fsimplay-player/lists"}