Fully functional

This commit is contained in:
2026-08-20 11:29:41 -06:00
parent 98d54c58a0
commit 280c84ac6e
3 changed files with 24 additions and 16 deletions
+8 -16
View File
@@ -1,28 +1,20 @@
#include <curl/curl.h>
#include <curl/easy.h>
#include <filesystem>
#include <nlohmann/json.hpp>
#include <regex>
#include <string>
#include "config.hpp"
#include "playlist.hpp"
#include "utils.hpp"
#include "video.hpp"
auto main(int argc, char* argv[]) -> int {
auto musicDir = "/home/ethanscharlie/Downloads/tmp";
std::string url = "https://music.youtube.com/playlist?list=OLAK5uy_kwG9Ln_fS_R-Oa8F-JIgs8PPBoRgDe8ok";
std::string videoUrl = "https://www.youtube.com/watch?v=WpmOb-Xanlg";
std::vector<std::string> urls = {
"https://music.youtube.com/playlist?list=OLAK5uy_kwG9Ln_fS_R-Oa8F-JIgs8PPBoRgDe8ok",
"https://www.youtube.com/watch?v=WpmOb-Xanlg",
"https://music.youtube.com/playlist?list=OLAK5uy_kfXTUdgy8U4_-Gg4fUYSy-8RPPvgnSuek&si=7VPceO4X9GEYCb28"};
std::filesystem::create_directories(TMP_DOWNLOAD_FOLDER);
// url = std::regex_replace(url, std::regex("music.youtube"), "www.youtube");
// auto playlist = Playlist(url);
// playlist.rip(musicDir);
videoUrl = std::regex_replace(videoUrl, std::regex("music.youtube"), "www.youtube");
auto video = Video(videoUrl);
video.rip(musicDir);
for (const std::string& url : urls) {
autoDetermineRip(musicDir, url);
}
}
+14
View File
@@ -12,6 +12,8 @@
#include <string>
#include "config.hpp"
#include "playlist.hpp"
#include "video.hpp"
using json = nlohmann::json;
@@ -135,3 +137,15 @@ auto moveAndSortTmpFilesToFolder(const std::string& folder, const std::string& a
return true;
}
auto autoDetermineRip(const std::string& musicFolder, const std::string& url) -> bool {
if (std::regex_search(url, std::regex("youtube.com/playlist"))) {
return Playlist(url).rip(musicFolder);
}
if (std::regex_search(url, std::regex("youtube.com/watch"))) {
return Video(url).rip(musicFolder);
}
return false;
}
+2
View File
@@ -16,3 +16,5 @@ auto writeAndReturnDataJson(const std::string& url) -> nlohmann::json;
auto moveAndSortTmpFilesToFolder(const std::string& folder, const std::string& artist, const std::string& album)
-> bool;
auto autoDetermineRip(const std::string& musicFolder, const std::string& url) -> bool;