Fork me on GitHub

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

 

意思是,请求格式不对。

左查右查也查不到原因,

再去看看官方文档:

https://github.com/ytdl-org/youtube-dl/blob/master/README.md#format-selection

我靠,这也行,于是单引号改双引号,再用postman发请求,试试看:

 

OK跑通,视频和字幕顺利下载:

 


======================================================

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

没有错误是0

有错误是有1。

 

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

 

posted @ 2020-04-14 22:27  暮良文王  阅读(2309)  评论(0编辑  收藏  举报