stevenfoncken / multitool-for-spotify-php
PHP 命令行应用程序,可执行各种任务以增强您的 Spotify 体验
Requires
- php: >=8.2
- ext-curl: *
- ext-fileinfo: *
- ext-gd: *
- ext-zlib: *
- intervention/image: ^3.2
- jwilsson/spotify-web-api-php: ^6.0
- monolog/monolog: ^3.5
- parsecsv/php-parsecsv: ^1.3
- symfony/console: ^7.0
- symfony/lock: ^7.0
- symfony/mailer: ^7.0
- symfony/validator: ^7.0
- vlucas/phpdotenv: ^5.6
Requires (Dev)
- roave/security-advisories: dev-latest
This package is not auto-updated.
Last update: 2024-09-25 03:27:57 UTC
README
一个方便的命令行应用程序,用于归档播放列表、在您的音乐库中搜索曲目或创建包含完整艺术家目录的播放列表。
🤔 为什么?
最初,它是用于从流行的 EDM 标签的 "New Music Friday" 播放列表自动归档(CronJob)工具。它允许我在没有时间立即发现新音乐时补偿 FOMO。
随着时间的推移,我渴望重写否则将是一生的测试版(永远不要触摸运行的系统),并在其上添加一些结构化开销 ;-)
📖 目录
点击展开
⛓ 功能
- 使用特殊的命名语法和邮寄从 CSV 或参数输入归档播放列表。
- 在库播放列表中搜索给定的曲目。
- 创建包含完整艺术家目录的播放列表。
- 见:✨ 未来功能.
🚀 入门
要求
- php >= 8.2
- Composer
安装
下载或克隆项目
composer create-project stevenfoncken/multitool-for-spotify-php
或者
git clone --depth 1 https://github.com/stevenfoncken/multitool-for-spotify-php.git
现在 cd
进入项目目录。
使用 Composer 安装依赖项
如果已使用 create-project 跳过。
composer install
配置
.env
cp config/.env.dist config/.env
在 APP_TIMEZONE
中设置您的时区 - 支持的时区列表.
连接到 Spotify 的 Web API
multitool-for-spotify-php
需要连接到 Spotify 的 Web API 以正常工作。
- 登录到 Spotify 开发者仪表板.
- 点击 创建应用.
- 选择名称、描述、网站
- 重定向 URI:
https://:10276/mtfsp-auth-callback
- 选择
Web API
- 点击
保存
- 点击
设置
- 将
Client ID
复制到 .env 的SPOTIFY_API_CLIENT_ID
- 将
Client Secret
复制到 .env 的SPOTIFY_API_CLIENT_SECRET
它应该看起来像这样(但使用您自己的值)
SPOTIFY_API_CLIENT_ID="2c914ba76f18385qu4b57qr82o5p1e64"
SPOTIFY_API_CLIENT_SECRET="15g2fh52qg1631j1hex4sg167164c1a6"
- 打开您的终端。
- 运行:
php bin/console mtfsp:auth
- 遵循显示的说明。
现在您已经准备好使用 multitool-for-spotify-php
🎉
使用方法
播放列表归档
php bin/console mtfsp:archive [--mail] <playlistIDsOrCSV>
每个播放列表都有一个快照ID,这个ID会被写入存档播放列表的描述中,以检查播放列表是否已经被存档。
只有在内容(因此是快照ID)更改时才会创建新的存档播放列表。
生成的存档播放列表的名称示例:SFY-2024-06-Top 50 Global(PREFIX-YYYY-WW-SUFFIX或PLAYLIST_NAME)
您可以选择使用单个播放列表ID或CSV文件路径作为参数。
参数播放列表ID
单个或以逗号分隔的Spotify播放列表ID。
参数CSV文件路径
CSV必须由分号分隔。示例:[playlists-to-archive.dist.csv](https://github.com/stevenfoncken/multitool-for-spotify-php/blob/HEAD/config/playlists-to-archive.dist.csv)
邮件选项
如果您在您的.env文件中设置了邮件环境变量,您可以使用--mail
在存档过程完成后接收通知。
这在使用CronJob时特别有用。
列出归档播放列表
php bin/console mtfsp:archive:list-playlists
删除归档播放列表
php bin/console mtfsp:archive:delete-playlists
目前所有存档播放列表都将被删除。但多个“您确定吗”检查将保护您免受仓促的错误。
创建艺术家目录播放列表
php bin/console mtfsp:artist:catalog-to-playlist <artistId> [<playlistId>]
如果您指定了播放列表ID,目录将被添加到该播放列表,否则将创建一个新的播放列表。
在给定的曲目搜索库播放列表
php bin/console mtfsp:search:track-in-library [--withArchived] <trackIdNeedle>
如果您想包括存档播放列表在搜索中,请设置--withArchived
。
🔨 开发
技术堆栈
该项目使用Symfony Console组件构建。
☑️ TODOs
- 添加单元测试
✨ 未来功能
- 存档:从专门的Spotify播放列表文件夹检索源播放列表。
- MyWeeklySelection:创建一个包含过去30天喜欢的歌曲的公开个人资料播放列表,带有自定义播放列表图片。
- 存档:添加Spotify无关的存储,请参阅feature/add-database。
- 在我洗澡时想到的一切。
变更日志
有关最近更改的更多信息,请参阅CHANGELOG.md。
帮助与问题
在讨论标签中开始新的讨论。
贡献
...受到欢迎。
对于重大更改,请首先在讨论标签中开始讨论您想进行更改的内容。
重要:通过提交补丁,您同意允许项目所有者根据MIT许可
的条款许可您的作品。
谢谢!
👤 作者
multitool-for-spotify-php
主要是由以下人员编写和维护:
🦜 Steven Foncken
- 网站:[stevenfoncken.de](https://www.stevenfoncken.de)
- GitHub:[@stevenfoncken](https://www.github.com/stevenfoncken)
- LinkedIn:[Steven Foncken (@stevenfoncken)](https://www.linkedin.com/in/stevenfoncken)
🤝 致谢
像大多数软件一样,multitool-for-spotify-php
是建立在其他人为之编写的第三方代码/库之上的。
因此,我要感谢以下人员开源他们的工作
项目:[jwilsson/spotify-web-api-php](https://github.com/jwilsson/spotify-web-api-php)
作者:[@jwilsson (Jonathan Wilsson)](https://github.com/jwilsson)
版权 (c) Jonathan Wilsson
许可:[MIT](https://github.com/jwilsson/spotify-web-api-php/blob/main/LICENSE.md)
项目: symfony/console
作者: @fabpot (Fabien Potencier)
版权(c)2004-至今 Fabien Potencier
许可协议: MIT
... 以及更多,请参阅 composer.json。
💛 支持
如果这个项目对您或您的组织有帮助,请考虑直接支持我的工作
每一份帮助都很有意义,谢谢! 🙏
⚖️ 免责声明
"Spotify" 是 "Spotify AB" 及/或其(全球)子公司的注册商标。
本项目或其作者与 "Spotify AB" 或其任何附属公司、许可方、(全球)子公司或其他受其控制的实体无任何官方联系、关联、合作、授权、建设、认可、许可、维护、推广或赞助。
所有商标均为其各自所有者的财产。
这是一个独立项目,使用 "Spotify" 的Web API在个人账户中执行各种任务。
在采取法律行动之前,请联系此地址:dev[at]stevenfoncken[dot]de
自行承担风险。
📃 许可证
multitool-for-spotify-php 在 MIT 许可协议
下授权。
有关详细信息,请参阅 LICENSE。
版权(c)2020-至今 Steven Foncken <dev[at]stevenfoncken[dot]de>
^ 返回顶部 ^