如何通过批处理从文本文件提取YouTube视频码并输出到文件
批处理提取YouTube视频码解决方案
没问题,我来帮你写一个能直接用的批处理脚本,完美匹配你的需求:
步骤1:创建url.bat文件
把下面的代码复制到记事本里,保存为url.bat(注意保存时选择「所有文件」,避免变成url.bat.txt格式):
@echo off setlocal enabledelayedexpansion :: 自定义输出文件名,你可以按需修改 set "output_file=video_codes.txt" :: 先清空输出文件,避免残留旧内容 type nul > "%output_file%" :: 逐行读取url.txt中的YouTube链接 for /f "delims=" %%a in (url.txt) do ( set "current_url=%%a" :: 截取v=之后的所有内容 set "temp_code=!current_url:*v=!" :: 如果链接带额外参数(比如&t=10s),只保留&之前的纯视频码 for /f "delims=&" %%b in ("!temp_code!") do ( echo %%b >> "%output_file%" ) ) echo 视频码提取完成!已保存到 %output_file% pause
步骤2:使用说明
- 把
url.bat和你的url.txt放在同一个文件夹里 - 双击运行
url.bat,脚本会自动读取url.txt里的每一条链接,提取v=后面的视频码,最终保存到video_codes.txt文件中
关键逻辑拆解
- 延迟变量扩展:启用
enabledelayedexpansion是为了让for循环里的变量修改能实时生效,不然没法正确完成字符串截取操作 - 核心截取操作:
!current_url:*v=!会直接删掉链接中v=之前的所有内容,只保留从视频码开始的部分 - 兼容额外参数:第二个
for /f用&作为分隔符,就算链接里有&t=10s这类附加参数,也只会提取出纯视频码
特殊情况兼容(可选)
如果你的链接里存在大写的V=(比如https://www.youtube.com/watch?V=XXXX),可以把脚本里的截取逻辑改成下面这样,同时兼容大小写:
:: 同时兼容v=和V=两种参数格式 if "!current_url:*v=!"=="!current_url!" ( set "temp_code=!current_url:*V=!" ) else ( set "temp_code=!current_url:*v=!" )
内容的提问来源于stack exchange,提问作者niranja papu
相关产品推荐
相关产品推荐

