win下youtube-dl 【ERROR: requested format not available】选下载视频质量的坑–【值得一看】

需求说明(bug出处):

    简单说:下载youtube的视频,嵌入翻译好的中文字幕。

    详细说(可略过):

      阿里的海外服务器需要布一个Web Service—用以接收国内(本地服务器)的请求,

      然后用youtube-dl下载需要的视频(此bug出处),上传国内阿里服务器OSS,然后做音频抽取,语音识别,翻译,嵌入字幕。

 

Django views中下载视频核心代码:

 

以下是:自动选择下载最高质量视频的参数

bestvideo[ext=mp4]+bestaudio[ext=m4a]/best[ext=mp4]/best

没加这个参数之前代码:

cmd1 = f"""youtube-dl.exe -f --write-auto-sub --sub-lang en --convert-subs srt -o {task_id} {url}"""

cmd2 = f"""youtube-dl.exe -f --write-sub --sub-lang en --convert-subs srt -o {task_id} {url}"""

是跑的通的,可以下字幕下视频。

 

加上后,用postman发请求,就不能行了,会报错 ERROR: requested format not available

 

意思是,请求格式不对。

 

左查右查也查不到原因,

 

再去看看官方文档:

 

 

 

看红框!!

双引号改单引号,再用postman发请求,试试看:

 

 

 

OK跑通,视频和字幕下载完成:

 


 

 

同时测出了youtube-dl 运行报错时的返回值,以待后续异常处理用:

没有错误是0

有错误是有1。

 

Happy listening and learning ! (*^▽^*) !