From de4825e548b990493b372237cbef9a790bf114c4 Mon Sep 17 00:00:00 2001 From: dec05eba Date: Sun, 15 Aug 2021 11:41:06 +0200 Subject: Play popular invidious instance urls directly in qm Replaces popular invidious instance urls with youtube.com --- src/QuickMedia.cpp | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) (limited to 'src/QuickMedia.cpp') diff --git a/src/QuickMedia.cpp b/src/QuickMedia.cpp index 6a37b1d..d006f3d 100644 --- a/src/QuickMedia.cpp +++ b/src/QuickMedia.cpp @@ -397,8 +397,9 @@ namespace QuickMedia { for(int i = 1; i < argc; ++i) { if(!plugin_name) { std::string youtube_video_id_dummy; - if(youtube_url_extract_id(argv[i], youtube_video_id_dummy)) { - youtube_url = argv[i]; + std::string youtube_url_converted = invidious_url_to_youtube_url(argv[i]); + if(youtube_url_extract_id(youtube_url_converted, youtube_video_id_dummy)) { + youtube_url = std::move(youtube_url_converted); plugin_name = "youtube"; } @@ -5514,16 +5515,18 @@ namespace QuickMedia { bool avatar_applied = false; - auto launch_url = [this, matrix_chat_page, &tabs, MESSAGES_TAB_INDEX, &redraw, &avatar_applied](const std::string &url) mutable { + auto launch_url = [this, matrix_chat_page, &tabs, MESSAGES_TAB_INDEX, &redraw, &avatar_applied](std::string url) mutable { if(url.empty()) return; + url = invidious_url_to_youtube_url(url); + std::string video_id; if(youtube_url_extract_id(url, video_id)) { watched_videos.clear(); page_stack.push(PageType::CHAT); current_page = PageType::VIDEO_CONTENT; - auto youtube_video_page = std::make_unique(this, url); + auto youtube_video_page = std::make_unique(this, std::move(url)); // TODO: Use real title video_content_page(matrix_chat_page, youtube_video_page.get(), "", false, tabs[MESSAGES_TAB_INDEX].body.get(), tabs[MESSAGES_TAB_INDEX].body->get_selected_item()); redraw = true; @@ -6688,9 +6691,10 @@ namespace QuickMedia { return 0; } - void Program::download_page(const std::string &url) { + void Program::download_page(std::string url) { window.setTitle("QuickMedia - Select where you want to save " + std::string(url)); + url = invidious_url_to_youtube_url(url); const bool download_use_youtube_dl = url_should_download_with_youtube_dl(url); std::string filename; std::string video_id; -- cgit v1.2.3