You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在Colab中用Pytube下载含僧伽罗语标题YouTube视频失败求助

解决Google Colab中含僧伽罗语标题的YouTube视频下载失败问题

问题重现

使用Pytube下载YouTube音频时,部分僧伽罗语标题视频可成功下载,但特定视频(链接:https://www.youtube.com/watch?v=HdPK6pd6XnA)抛出错误:

OSError: [Errno 22] Invalid argument: '/content/drive/My Drive/සමාධිය අඩු වෙලා වීර්යය වැඩි කරගත්තොත් කලබලකාරී වෙනවා සමාධිය වැඩි වෙලා විර්යය අඩු වුණොත් උදාසීන වෙනවා.mp4'

原文件名清理函数未解决问题,核心原因是未处理Unicode字符规范化及Google Drive文件系统的特殊限制。

解决方案

方案1:改进Pytube的文件名处理逻辑

通过规范化Unicode字符、彻底清理非法字符,并手动指定下载文件名,解决编码兼容性问题:

!pip install pytube
from google.colab import drive
drive.mount('/content/drive')
from pytube import YouTube
import re
import unicodedata

def sanitize_filename(filename):
    # 移除文件系统禁止的特殊字符
    sanitized = re.sub(r'[<>:"/\\|?*]', '_', filename)
    # 规范化Unicode字符,消除组合字符、隐形字符等问题
    sanitized = unicodedata.normalize('NFKC', sanitized)
    # 限制文件名长度(Google Drive支持最大255字符)
    max_length = 255
    if len(sanitized) > max_length:
        # 截断时保留.mp4后缀,避免文件名无效
        sanitized = sanitized[:max_length - 4] + '.mp4'
    return sanitized

video_url = "https://www.youtube.com/watch?v=HdPK6pd6XnA"
yt = YouTube(video_url)
# 清理视频标题作为文件名
clean_filename = sanitize_filename(f"{yt.title}.mp4")
# 手动指定文件名下载到Drive
yt.streams.filter(only_audio=True).first().download(
    output_path='/content/drive/My Drive',
    filename=clean_filename
)

方案2:换用yt-dlp(推荐)

yt-dlp对非ASCII文件名、复杂视频的兼容性远优于Pytube,无需手动处理文件名即可自动兼容:

!pip install yt-dlp
from google.colab import drive
drive.mount('/content/drive')

# 下载音频并自动处理文件名,保存到Google Drive
!yt-dlp -x --audio-format mp4 -o "/content/drive/My Drive/%(title)s.%(ext)s" "https://www.youtube.com/watch?v=HdPK6pd6XnA"

如果仍遇到文件名问题,可直接用视频ID作为文件名(避免语言编码问题):

!yt-dlp -x --audio-format mp4 -o "/content/drive/My Drive/%(id)s.%(ext)s" "https://www.youtube.com/watch?v=HdPK6pd6XnA"

关键原因说明

原清理函数仅处理了基础非法字符,但僧伽罗语的Unicode字符可能包含组合字符(如带附加符号的字符),Google Drive挂载的文件系统无法正确识别这类未规范化的字符,导致Errno 22错误。使用NFKC规范化可将组合字符转换为单个标准字符,同时手动指定文件名能避免Pytube自动处理时的编码偏差。

内容的提问来源于stack exchange,提问作者madhawavish

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.26 12:29:50