Django 上的 SpotDL

问题描述 投票:0回答:1

我正在尝试在 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

python django spotify
1个回答
0
投票

以下是如何使用子进程调用来调用二进制文件并传递命令行参数,并附上 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;
}

旁注

  • 大规模实施将是一个非常糟糕的主意。
© www.soinside.com 2019 - 2024. All rights reserved.