批处理 调用N_m3u8DL-RE下载视频 【windows平台】
本帖最后由 dupontjoy 于 2023-9-18 17:21 编辑Text.Text.
更新:
将配置文件独立出来,方便修改
下载地址:
https://github.com/dupontjoy/N_m3u8DL-RE-Bat-Generator
************************************************************************************************************************************
N_m3u8DL-RE为跨平台的DASH/HLS/MSS下载工具。支持点播、直播(DASH/HLS)。软件作者nilaoda。項目地址:https://github.com/nilaoda/N_m3u8DL-RE
ffmpeg.exe下载:https://ffmpeg.org/download.html
由于目前没有gui管理软件,简单写了个bat来调用cmd,输入链接和文件名来下载视频。
运行效果:
bat保存为ASNI编码
代码:
::2023.06.19
@echo off
::开始
Title N_m3u8DL-RE:跨平台的DASH/HLS/MSS下载工具 by nilaoda
cd /d %~dp0
::設置模塊路徑
::将当前目录保存到参数b中,等号前后不要有空格
set b=%cd%
::---------------輸入部分---------------
::輸入鏈接 和 文件名
set /p link=請輸入鏈接:
set /p filename=請輸入保存文件名:
::---------------設置部分---------------
::設置临时文件存储目录
set TempDir=N_m3u8DL_Temp
::设置输出目录
set SaveDir=D:\Download\
::設置ffmpeg.exe路徑。从批处理所在文件夹到Program Files共3层。
set ffmpeg=ffmpeg.exe
::空一行
echo.
::---------------輸出部分---------------
echo.臨時目錄:%TempDir%
echo.輸出目錄:%SaveDir%
echo.ffmpeg.exe路徑:%ffmpeg%
::空一行
echo.
::---------------設置結束---------------
::删除临时文件夹。下載失敗的临时文件不會自動删除,所以手動清理一次。
echo.刪除臨時文件夾
rd "%TempDir%" /s/q
::空一行
echo.
::---------------說明部分---------------
::--tmp-dir <tmp-dir> 设置临时文件存储目录
::--save-name <save-name> 设置保存文件名
::--save-dir <save-dir> 设置输出目录
::--download-retry-count <number> 每个分片下载异常时的重试次数
::--check-segments-count 检测实际下载的分片数量和预期数量是否匹配
::--no-log 关闭日志文件输出
::--ffmpeg-binary-path <PATH> ffmpeg可执行程序全路径, 例如 C:\Tools\ffmpeg.exe
::--ui-language <en-US|zh-CN|zh-TW> 设置UI语言
::開始下載
N_m3u8DL-RE "%link%" --tmp-dir %TempDir% --save-dir %SaveDir% --save-name "%filename%" --download-retry-count:9 --check-segments-count:false --no-log:true --ffmpeg-binary-path %ffmpeg% --ui-language:zh-CN
本帖最后由 liailun 于 2023-7-7 22:30 编辑
我把楼主的代码优化改进了一下 试试看
复制代码保存为ASNI编码任意名称的.bat文件
@echo off
::开始
Title N_m3u8DL-RE 下载工具
setlocal enabledelayedexpansion
cd /d %~dp0
::设置模块路径
::将当前目录保存到参数b中,等号前后不要有空格
set b=%cd%
::---------------输入部分---------------
::输入链接和文件名
set "link="
set /p "link=请输入链接: "
if "!link!"=="" (
echo 错误:链接不能为空!
pause
exit /b 1
)
set "filename="
set /p "filename=请输入保存文件名: "
if "!filename!"=="" (
echo 错误:文件名不能为空!
pause
exit /b 1
)
::---------------设置部分---------------
::设置临时文件存储目录
set "TempDir=N_m3u8DL_Temp"
::设置输出目录,请根据你的实际需求将E:\Download替换为你想要保存文件的实际目录路径。
set "SaveDir=E:\Download"
::设置ffmpeg.exe路径,从批处理所在文件夹到Program Files共3层。
set "ffmpeg=ffmpeg.exe"
::---------------输出部分---------------
echo 临时目录:%TempDir%
echo 输出目录:%SaveDir%
echo ffmpeg.exe路径:%ffmpeg%
::---------------设置结束---------------
::删除临时文件夹。下载失败的临时文件不会自动删除,所以手动清理一次。
echo 删除临时文件夹
rd /s /q "%TempDir%"
::空一行
echo.
::开始下载
call :Download "%link%" "%TempDir%" "%SaveDir%" "%filename%"
pause
exit /b
:Download
echo 开始下载...
N_m3u8DL-RE "%~1" --tmp-dir "%~2" --save-dir "%~3" --save-name "%~4" --download-retry-count:9 --check-segments-count:false --no-log:true --ffmpeg-binary-path "%ffmpeg%" --ui-language:zh-CN
if errorlevel 1 (
echo 下载失败!
) else (
echo 下载完成!
)
exit /b
本帖最后由 sk8820 于 2023-7-19 10:57 编辑
liailun 发表于 2023-7-7 21:55
我把楼主的代码优化改进了一下 试试看
复制代码保存为ASNI编码任意名称的.bat文件
'"D:\\N_m3u8DL\\N_m3u8DL-RE.exe"\t"{m3u8}"\t --save-name\t "{course_name}"\t --use-system-proxy--no-date-info--save-dir\t"{save_path}"\t --key\t "{key}"\t --del-after-done\t --ffmpeg-binary-path "D:\\N_m3u8DL\\ffmpeg.exe"\t --ui-language:zh-CN\n'10:52:20.608 INFO : N_m3u8DL-RE (Beta version) 20230628
10:52:20.622 ERROR: mp4decrypt not found!
我这怎么要mp4decrypt.exe? 这个软件明明就有gui啊! dunniu 发表于 2023-6-20 00:08
这个软件明明就有gui啊!
老版cli有 看看,学习学习再说,感谢分享 什么平台都能下载吗 能批处理啊 依佳人时代 发表于 2023-6-20 08:07
什么平台都能下载吗
可以去项目主页看,其他平台也能下载
我是win平台用,作者一直没写gui 去找Text.N_m3u8DL-RE看看
打开报错找不到文件怎么回事