diff --git a/tubearchivist/home/src/helper.py b/tubearchivist/home/src/helper.py index 80ff11fc..de417578 100644 --- a/tubearchivist/home/src/helper.py +++ b/tubearchivist/home/src/helper.py @@ -46,6 +46,9 @@ def process_url_list(url_str): url_list = re.split("\n+", url_str[0]) youtube_ids = [] for url in url_list: + if "/c/" in url or "/user/" in url: + raise ValueError("user name is not unique, use channel ID") + url_clean = url.strip().strip("/").split("/")[-1] for i in to_replace: url_clean = url_clean.replace(i, "") diff --git a/tubearchivist/home/views.py b/tubearchivist/home/views.py index dfd8aa3f..a64e0aae 100644 --- a/tubearchivist/home/views.py +++ b/tubearchivist/home/views.py @@ -195,16 +195,16 @@ class DownloadView(View): download_post = dict(request.POST) if "vid-url" in download_post.keys(): url_str = download_post["vid-url"] - print("adding to queue") - youtube_ids = process_url_list(url_str) - if not youtube_ids: + try: + youtube_ids = process_url_list(url_str) + except ValueError: # failed to process - print(url_str) + print(f"failed to parse: {url_str}") mess_dict = { "status": "downloading", "level": "error", "title": "Failed to extract links.", - "message": "", + "message": "Not a video, channel or playlist ID or URL", } set_message("progress:download", mess_dict) return redirect("downloads")