def video_downloader(video_url_list: List[str], download_folder: str) -> None:
    """
    Download videos from a list of YouTube video URLs.
    
    Args:
        video_urls (List[str]): The list of YouTube video URLs to download.
        download_folder (str): The folder to save the downloaded videos.
    """
    successful_downloads = 0
    valid_urls: List[str] = []

    for url in video_url_list:
        if not url:
            continue

        try:
            with tempfile.TemporaryDirectory() as temp_dir:
                cleaned_url = clean_youtube_url(url=url)
                if _get_streams(url=cleaned_url, temp_dir=temp_dir):
                    create_folder(download_folder)
                    _merge_streams(
                        temp_dir=temp_dir, url=url, download_folder=download_folder
                    )
                    logger.info(f"The video from {url} was downloaded successfully")
                    successful_downloads += 1
                    valid_urls.append(url)
                else:
                    logger.warning(f"No valid video found at the URL: {url}")

        except Exception as e:
            logger.error(
                f"Error has occurred while downloading the video from {url}: {e}"
            )
            print(e)
    if successful_downloads != 0 and (successful_downloads == len(valid_urls)):
        messagebox.showinfo(
            title="Finished download",
            message=f"Your download is complete!.\n\n\t{successful_downloads}/{len(video_url_list[1:])}",
        )

这是我使用Pytube下载YouTube视频时使用的主要功能. 它昨晚工作得很好,但今天早上就不行了.我收到错误消息"pytube.expections.RegexMatchError:GET_THROTTING_Function_NAME:找不到匹配的多个",这阻止了我下载任何视频或音频. 有什么可能的解决方案吗?

推荐答案

GitHub官方页面问题中的解决方法:https://github.com/pytube/pytube/issues/1684

function_patterns = [
# https://github.com/ytdl-org/youtube-dl/issues/29326#issuecomment-865985377
# https://github.com/yt-dlp/yt-dlp/commit/48416bc4a8f1d5ff07d5977659cb8ece7640dcd8
# var Bpa = [iha];
# ...
# a.C && (b = a.get("n")) && (b = Bpa[0](b), a.set("n", b),
# Bpa.length || iha("")) }};
# In the above case, `iha` is the relevant function name
r'a\.[a-zA-Z]\s*&&\s*\([a-z]\s*=\s*a\.get\("n"\)\)\s*&&.*?\|\|\s*([a-z]+)',
r'\([a-z]\s*=\s*([a-zA-Z0-9$]+)(\[\d+\])?\([a-z]\)',]

Python相关问答推荐

如何在图片中找到这个化学测试条?OpenCV精明边缘检测不会绘制边界框

在内部列表上滚动窗口

@Property方法上的inspect.getmembers出现意外行为,引发异常

替换字符串中的多个重叠子字符串

由于NEP 50,向uint 8添加-256的代码是否会在numpy 2中失败?

如何标记Spacy中不包含特定符号的单词?

图像 pyramid .难以创建所需的合成图像

Python键入协议默认值

如何在WSL2中更新Python到最新版本(3.12.2)?

在np数组上实现无重叠的二维滑动窗口

如何在表中添加重复的列?

字符串合并语法在哪里记录

启动带有参数的Python NTFS会导致文件路径混乱

Flask Jinja2如果语句总是计算为false&

如果包含特定值,则筛选Groupby

如何在FastAPI中替换Pydantic的constr,以便在BaseModel之外使用?'

使用嵌套对象字段的Qdrant过滤

如何在验证文本列表时使正则表达式无序?

如何在信号的FFT中获得正确的频率幅值

每次查询的流通股数量