1--- a/main.cpp
2+++ b/main.cpp
3@@ -91,14 +91,5 @@ int main(int argc, char *argv[])
4 w.show();
5 }
6
7- QTimer::singleShot(0, [=] {
8- cg->getUpdateInfo();
9- QObject::connect(cg, &ClipGrab::updateInfoProcessed, [cg] {
10- bool force = QSettings().value("forceYoutubeDlDownload", false).toBool();
11- if (force) QSettings().setValue("forceYoutubeDlDownload", false);
12- cg->downloadYoutubeDl(force);
13- });
14- });
15-
16 return app.exec();
17 }
18--- a/youtube_dl.cpp
19+++ b/youtube_dl.cpp
20@@ -8,52 +8,16 @@ YoutubeDl::YoutubeDl()
21 QString YoutubeDl::path = QString();
22
23 QString YoutubeDl::find(bool force) {
24- if (!force && !path.isEmpty()) return path;
25-
26- // Prefer downloaded youtube-dl
27- QString localPath = QStandardPaths::locate(QStandardPaths::AppDataLocation, "yt-dlp");
28- QProcess* process = instance(localPath, QStringList() << "--version");
29- process->start();
30- process->waitForFinished();
31- process->deleteLater();
32- if (process->state() != QProcess::NotRunning) process->kill();
33- if (process->exitCode() == QProcess::ExitStatus::NormalExit) {
34- path = localPath;
35- return path;
36- }
37-
38- // Try system-wide youtube-dlp installation
39- QString globalPath = QStandardPaths::findExecutable("yt-dlp");
40- process = instance(globalPath, QStringList() << "--version");
41- process->start();
42- process->waitForFinished();
43- process->deleteLater();
44- if (process->state() != QProcess::NotRunning) process->kill();
45- if (process->exitCode() == QProcess::ExitStatus::NormalExit) {
46- path = globalPath;
47- return path;
48- }
49-
50- return "";
51+ // We supply yt-dlp from nixpkgs, so the downloading
52+ // machinery is not needed anymore.
53+ (void)force;
54+ return path;
55 }
56
57 QProcess* YoutubeDl::instance(QStringList arguments) {
58- return instance(find(), arguments);
59-}
60-
61-QProcess* YoutubeDl::instance(QString path, QStringList arguments) {
62 QProcess *process = new QProcess();
63
64- QString execPath = QCoreApplication::applicationDirPath();
65- QProcessEnvironment env = QProcessEnvironment::systemEnvironment();
66- env.insert("PATH", execPath + ":" + env.value("PATH"));
67- process->setEnvironment(env.toStringList());
68-
69- #if defined Q_OS_WIN
70- process->setProgram(execPath + "/python/python.exe");
71- #else
72- process->setProgram(QStandardPaths::findExecutable("python3"));
73- #endif
74+ process->setProgram(path);
75
76 QSettings settings;
77 QStringList proxyArguments;
78@@ -81,7 +45,7 @@ QProcess* YoutubeDl::instance(QString path, QStringList arguments) {
79 networkArguments << "--force-ipv4";
80 }
81
82- process->setArguments(QStringList() << path << arguments << proxyArguments << networkArguments);
83+ process->setArguments(QStringList() << arguments << proxyArguments << networkArguments);
84 return process;
85 }
86