我尝试按分辨率对youtube-dl -F的输出进行排序,并将最高res结果的格式代码分配给变量,以使用youtube-dl -f下载文件。我可以按照youtube-dl -F https://www.youtube.com/watch\?v\=yKNxeF4KMsY | sort -b -r -k3
通过此示例,具有最高视频分辨率的格式代码为43.如何将该值分配给变量并在我正在编写的脚本中进一步使用该值?
答案 0 :(得分:1)
您可以使用以下命令获取格式代码:
format_code=$(youtube-dl -F https://www.youtube.com/watch\?v\=yKNxeF4KMsY | sort -b -r -k3 -n | head -1 | cut -d" " -f1)
这将根据第3个字段(分辨率)对输出进行排序,使用head
命令获取第一行,然后使用cut
获取第一个字段(格式代码)
$ echo $format_code
> 43
要在Python
中获得所需的输出:
from subprocess import check_output
output = check_output("youtube-dl -F https://www.youtube.com/watch?v=yKNxeF4KMsY | sort -b -r -k3 -n | head -1 | cut -d' ' -f1", shell=True)
format_code = output.strip() # to remove the trailing '\n'
# or simply format_code = int(output) if you want an integer
然后format_code
变量将具有所需的值,在这种情况下为43
。