我正在尝试在 SpotDL 上创建一个 Django 项目。这是我的文件:
--urls.py
urlpatterns = [
path('admins/', admin.site.urls),
path('spdl/', views.spdl),
]
--views.py
def spdl(request):
import spotdl
spotify_url = "https://open.spotify.com/track/2Cd9iWfcOpGDHLz6tVA3G4";
subprocess.run(['spotdl', spotify_url] , check=True)
return HttpResponse("downloaded")
它成功地将曲目下载到我的电脑上。但是,我想稍微定制一下。我想在spotdl 调用期间在views.py 文件上设置
--bitrate
。我尝试了这条线但失败了:(通过 ChatGPT 获得)
subprocess.run(['spotdl', '--bitrate', '128', spotify_url], check=True)
如何将其他命令传递给 SpotDL,例如
--bitrate
或 --cookie-file cookies.txt
?
以下是如何使用子进程调用来调用二进制文件并传递命令行参数,并附上 subprocess 文档供您参考。
import subprocess
subprocess.call(['./a.out', '--name=yash', '--age=22', '--job=dev'])
我已经测试了这个 C++ 代码及其按预期工作。可以通过调用 Spot-dl 来完成类似的操作。请确保spot-dl在路径上并且可以被服务器访问。
#include <iostream>
using namespace std;
int main(int argc, char* argv[]){
string name = argv[1];
string age = argv[2];
string job = argv[3];
cout << "Hello" << name << "! You are " << age << " years old and work as a " << job;
}
旁注