如何在Bash脚本的Streamlink中关闭下载进度打印?
解决Streamlink下载进度输出屏蔽问题
方法1:使用--quiet参数
Streamlink的--quiet(简写-q)参数会抑制除错误信息外的所有控制台输出,包括你提到的下载进度行。修改后的streamlink命令如下:
streamlink --hls-segment-threads 3 $link $quality -o "$dir$file" --logfile "${name} log" --quiet
方法2:重定向stdout到空设备
如果你需要保留部分输出但仅屏蔽进度信息,可直接将stdout重定向到/dev/null(因为你确认进度信息输出到stdout):
streamlink --hls-segment-threads 3 $link $quality -o "$dir$file" --logfile "${name} log" > /dev/null
若同时需要屏蔽stderr的额外冗余输出,可追加2>&1:
streamlink --hls-segment-threads 3 $link $quality -o "$dir$file" --logfile "${name} log" > /dev/null 2>&1
方法3:更新Streamlink后使用--no-progress
你提到--no-progress无效,大概率是使用的Streamlink版本过旧,该参数是较新版本才支持的特性。先更新到最新版本:
pip install --upgrade streamlink
更新后重新使用--no-progress参数即可:
streamlink --hls-segment-threads 3 $link $quality -o "$dir$file" --logfile "${name} log" --no-progress
修改后的完整脚本示例
quality="1080p,best" dir="/home/artem/writer/" while true do datetime=$(date +%Y-%m-%d)_$(date +%k-%M-%S) echo "$datetime" >> /home/artem/writer/"${name} log" file="${name}_$datetime.ts" # 这里选用--quiet参数作为示例,可替换为其他方法的命令 streamlink --hls-segment-threads 3 $link $quality -o "$dir$file" --logfile "${name} log" --quiet echo " " >> /home/artem/writer/"${name} log" sleep 30 done
内容的提问来源于stack exchange,提问作者Artem Filippov
相关产品推荐
相关产品推荐

