用 python 编写的基于 qt 的音乐下载器。
如果您有改进或功能的想法,请创建问题或加入不和谐服务器进行讨论!
确保 ffmpeg、python3 和 Git 已安装并在您的$PATH
上可用。如果您使用的是 Windows,则还需要安装 Microsoft C++ 构建工具并在开始构建过程之前重新启动计算机。
下载或克隆存储库git clone https://github.com/casualsnek/onthespot
导航到 onthespot 目录cd onthespot
安装软件包pip install -r requirements.txt
导航到源目录cd src
使用python3 -m onthespot
启动应用程序
要求与上面的“启动而不安装”相同。
下载或克隆存储库git clone https://github.com/casualsnek/onthespot
导航到 onthespot 目录cd onthespot
构建包python -m build
安装软件包pip install ./dist/*.whl
使用onthespot_gui
启动应用程序
onthespot
可用于 arch 用户存储库 (aur) 中的 arch linux 和基于 arch linux 的发行版,如 onthespot-git。
您可以使用您最喜欢的 aur 助手进行onthespot
安装。
例如:使用 yay
yay -Sy onthespot-git
从发布部分下载最新的“onthespot_linux”并执行
chmod +x onthespot_linux ./onethespot_linux
从发布部分下载最新的“onthespot_win_ffm.exe”或“onthespot_win.exe”,然后双击下载的文件来执行。
文件名以“_ffm”结尾的二进制文件捆绑了 ffmpeg,不需要手动安装。
如果您使用的二进制文件未捆绑 ffmpeg,并且下载进度卡在 99%,并且Converting
进度文本,那么您就缺少 ffmpeg !请按照以下说明进行安装
打开 Windows 资源管理器并导航到C:
驱动器并在其中创建一个文件夹名称ffmpeg
从 https://www.gyan.dev/ffmpeg/builds/ffmpeg-release-full.7z 下载 ffmpeg zip,然后将bin
文件夹从 zip 复制到C:ffmpeg
以管理员身份打开CMD并运行命令: setx /m PATH "C:ffmpegbin;%PATH%"
现在应用程序应该按预期工作。
在任何操作系统上构建或打包都需要安装 Git、Python3 和 Pip。确保您已安装它们!
打开终端模拟器并运行以下命令来克隆存储库并构建。
git 克隆 https://github.com/casualsnek/onthespotcd onthespot
如果您想使用 ffmpeg 进行构建,请从此处下载适合您操作系统的 ffmpeg 二进制文件。在存储库根目录中创建一个名为“ffbin_nix”的新目录。将下载的存档中的三个文件“ffmpeg”、“ffprobe”、“ffplay”复制到刚刚创建的“ffbin_nix”目录,然后运行;
bash ./build_linux.sh
命令完成后,您的存储库根目录中应该有一个“dist”目录,其中包含构建的“onthespot_linux”二进制文件。
打开 cmd 并运行以下命令来克隆存储库并构建。
git 克隆 https://github.com/casualsnek/onthespotcd onthespot
如果您没有安装 git,您还可以从 github 下载项目源 zip,解压并在存储库根目录上打开 cmd。如果您想使用 ffmpeg 进行构建,请从此处下载适合您操作系统的 ffmpeg 二进制文件。在存储库根目录中创建一个名为“ffbin_win”的新目录。将下载的压缩包中的三个文件“ffmpeg.exe”、“ffprobe.exe”、“ffplay.exe”复制到刚刚创建的“ffbin_win”目录中,然后运行;
构建_winC1.bat 构建_winC2.bat
命令完成后,您的存储库根目录中应该有一个“dist”目录,其中包含构建的“onthespot_win.exe”二进制文件。
注意:这只会为您所使用的特定处理器架构构建应用程序。它不构建通用二进制文件
打开终端模拟器并运行以下命令来克隆存储库并构建。
git 克隆 https://github.com/casualsnek/onthespotcd onthespot
如果您想使用 ffmpeg 进行构建,请从此处下载适合您操作系统的 ffmpeg 二进制文件。在存储库根目录中创建一个名为“ffbin_mac”的新目录。将下载的存档中的三个文件“ffmpeg”、“ffprobe”、“ffplay”复制到新创建的“ffbin_mac”目录,然后运行:
./build_mac.sh
命令完成后,您的存储库根目录中应该有一个包含“onthespot_mac.app”二进制文件的“dist”目录。
您还可以在现场构建为wheel,并通过pip将其安装为python模块在您的系统中。它提供了与系统更好的集成,例如使用系统的 Qt 风格和主题,以及您可以使用提供的图标和 .desktop 文件在 Linux 系统下更好地集成。
确保您已安装设置工具!
打开终端模拟器并运行以下命令来克隆存储库并构建。
git 克隆 https://github.com/casualsnek/onthespotcd onthespot 蟒蛇-m构建
这将创建一个包含 .whl 文件的 dist 目录,现在可以使用 pip 安装该文件,安装后可以使用命令onthespot_gui
或python3 -m onthespot
启动该应用程序!
注意:如果您要打包 onthespot 进行分发,请将src/onthespot/resources/icon.svg
复制到/usr/share/icons/hicolor/scalable/apps/casual_onthespot.svg
或$HOME/.local/share/icons/hicolor/scalable/apps/casual_onthespot.svg
,以及src/onthespot/resources/org.eu.casualsnek.onthespot.desktop
到/usr/share/applications/org.eu.casualsnek.onthespot.desktop
或$HOME/.local/share/applications/org.eu.casualsnek.onthespot.desktop
。这使得应用程序能够更好地集成到桌面环境!
如果您有改进/功能的想法,请创建问题或加入不和谐服务器进行讨论!
首次启动该应用程序时,您将收到一条警告,提示未添加 Spotify 帐户。忽略警告,然后在配置选项卡底部添加您的帐户。拥有多个帐户可以让您一次下载多首歌曲。
在“搜索”选项卡中,您可以输入查询并单击search
来搜索歌曲/艺术家/专辑/播放列表。然后,您可以通过单击download
按钮来下载结果列表中的媒体。或者,您可以通过单击表格下方的任何按钮进行批量下载。请注意,“曲目”以外的媒体类型可能需要更长的时间来解析和下载。在这种状态下,应用程序可能会被冻结!
在搜索字段中输入 URL,然后单击下载。您还可以输入包含 URL 的文本文件的路径,它会将其中的所有 url 排队!请注意,“曲目”以外的媒体类型可能需要更长的时间来解析和下载。在这种状态下应用程序可能会被冻结!
可以通过导航到“进度”选项卡来查看下载状态和进度。
最大下载工作线程数:用于媒体下载的线程数。将其设置为您添加的帐户数量。更改此设置需要重新启动应用程序才能生效。
解析账户SN :账户表中用户名左侧显示的号码。该号码是负责提供搜索结果和解析下载网址的帐户。
下载位置:放置下载的媒体的根文件夹。
下载延迟:成功下载后下次下载之前等待的时间(以秒为单位)。
最大重试次数:继续之前重试下载的次数。
最大搜索结果:每种媒体类型的搜索结果中显示的项目数。示例:将其设置为“1”会显示艺术家、专辑、曲目和播放列表的一个结果,从而总共产生 4 个搜索结果。
原始媒体下载:将文件(它们将是 .ogg)下载到磁盘,而不转换为设置的媒体格式,它还会禁用元数据写入和缩略图嵌入。
强制高级:如果您的高级帐户在帐户表中显示“免费”,请使用此选项,这适用于所有添加的帐户,因此不建议将免费帐户和高级帐户结合使用。如果帐户不是高级帐户,请勿使用。
启用桌面应用程序播放下载:启用后将自动下载您在 Spotify 桌面应用程序上播放的歌曲。 (支持:Linux/Windows)
显示/隐藏高级配置:启用/禁用高级配置选项卡。
保存设置:保存/应用设置
默认曲目名称为AlbumFormatter/TrackName
曲目名称格式化程序:此选项允许您设置下载曲目的命名方案。可以通过将变量括在{}
之间来使用变量。命名方案中可以使用一些变量:
艺术家 : 曲目艺术家姓名
专辑 : 曲目所在专辑的名称 *
名称:曲目名称
rel_year : 曲目的发行年份
Disc_number : 磁道所在的磁盘编号 *
track_number : 专辑中曲目的序列号 *
playlist_name :播放列表的名称(如果曲目作为播放列表的一部分下载)*
playlist_owner :如果曲目作为播放列表的一部分下载,则播放列表的名称 *
playlist_desc :播放列表的描述(如果曲目作为播放列表的一部分下载)*
流派 : 歌曲流派 *
label : 唱片公司名称
Explicit :如果歌曲被标记为“Explicit”,则为“Explicit”,否则将为空白
trackcount :该曲目所在专辑中的曲目总数
Disccount :该曲目所在专辑中的光盘总数
Spotid : Spotify ID
示例: Song: {name} of album: {album} Released in {rel_year}
。
在某些情况下,描述以 * 结尾的变量的值可能为空。这也可以是一条路径。
专辑目录名称格式化程序:此选项允许您设置下载曲目的目录命名方案。可以通过将变量括在{}
之间来使用变量。命名方案中可以使用一些变量:
艺术家:专辑主要艺术家的姓名
rel_year:专辑的发行年份 *
专辑:专辑名称
playlist_name :播放列表的名称(如果曲目作为播放列表的一部分下载)*
playlist_owner :如果曲目作为播放列表的一部分下载,则播放列表的名称 *
playlist_desc :播放列表的描述(如果曲目作为播放列表的一部分下载)*
流派 : 歌曲流派 *
label : 唱片公司名称
示例: {artist}/{rel_year}/{album}
。
在某些情况下,描述以 * 结尾的变量的值可能为空。这也可以是一条路。
下载块大小:用于下载的块的大小(字节)。
禁用批量下载通知:启用此功能将禁用使用批量下载时有关状态的弹出对话框。
可恢复的下载重试延迟:尝试失败后尝试另一次下载之前等待的时间。
Skip bytes at the end(下载结束跳过字节) :有时无法下载曲目的最后几个字节,导致“PD Error”,从而导致下载不断失败。此选项设置发生这种情况时跳过下载的字节数。该值可能会更改,但当前工作值为“167”字节。如果您收到“解码错误”或歌曲下载不完整,请尝试将其设置为 0。
强制曲目/播放列表项目的艺术家/专辑目录:如果禁用此功能,下载的曲目将放置在下载目录的根目录中,而不是艺术家/专辑目录中。启用此功能可能会导致下载解析速度变慢,但会使组织音乐变得更容易。
媒体格式:您希望最终下载的音乐采用的媒体格式。请勿包含“.”在其中。使用原始媒体下载选项时将忽略此设置。
解码错误:如果您收到此错误,则您的帐户可能已受到限制。等待一段时间或尝试使用其他帐户。由于还没有适当的异常处理,应用程序可能会频繁崩溃。您可以通过打开一个新问题来提供帮助,并在应用程序出现异常后在控制台窗口中显示错误消息。
您可以编写代码来包含其他功能或错误修复,或者提出有关错误和功能的问题,或者只是传播有关应用程序的工作:)如果您想提供经济支持,您可以访问此处并通过开放集体或 BTC 提供支持(如果您愿意)该项目,通过给它一颗星来表示您的支持:)!