diff --git a/src/main.cpp b/src/main.cpp index e2dea76..148cf40 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -1,28 +1,20 @@ -#include -#include - #include -#include -#include #include #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 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); + } } diff --git a/src/utils.cpp b/src/utils.cpp index aecddd7..921561b 100644 --- a/src/utils.cpp +++ b/src/utils.cpp @@ -12,6 +12,8 @@ #include #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; +} diff --git a/src/utils.hpp b/src/utils.hpp index 0c1394e..55d23cb 100644 --- a/src/utils.hpp +++ b/src/utils.hpp @@ -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;