Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Python中嵌入youtube dl:anconv编码的后处理器键的名称?_Python_Youtube Dl - Fatal编程技术网

在Python中嵌入youtube dl:anconv编码的后处理器键的名称?

在Python中嵌入youtube dl:anconv编码的后处理器键的名称?,python,youtube-dl,Python,Youtube Dl,我正在编写一个python程序,通过mp3格式的搜索查询从youtube下载音乐 import youtube_dl import urllib.request import urllib.parse import re ydlOpts = { 'format': 'best', 'extractaudio': True, 'audioformat': 'best', 'noplaylist': True, 'outtmpl': '/path/to/fo

我正在编写一个python程序,通过mp3格式的搜索查询从youtube下载音乐

import youtube_dl
import urllib.request
import urllib.parse
import re

ydlOpts = {
    'format': 'best',
    'extractaudio': True,
    'audioformat': 'best',
    'noplaylist': True,
    'outtmpl': '/path/to/folder/%(title)s.%(ext)s',
    'postprocessors': [{
        'preferredconc': 'mp3',
        'preferredquality': 192
    }]
}

def query(search):
    queryString = urllib.parse.urlencode({'search_query': search})
    htmlContent = urllib.request.urlopen("http://www.youtube.com/results?" + queryString)
    searchResults = re.findall(r'href=\"\/watch\?v=(.{11})', htmlContent.read().decode())
    url = "http://www.youtube.com/watch?v=" + searchResults[0]
    print (url)
    return url

searchList = ['Alone Together Paul Desmond', 'Agua De Beber Astrud Gilberto', 'Molasses Hiatus Kaiyote']

youtubeList = []

for i in searchList:
    youtubeList.append(query(i))

youtube_dl.YoutubeDL(ydlOpts).download([youtubeList[0]])`
但是,当尝试运行这段代码测试代码时,仅使用avconv进行后处理的第一个搜索查询,我在youtube dl选项中的“后处理器”下得到了一个关于“键”值的错误。最初我在后处理器中省略了它,因为youtube dl应该自动使用avconv进行处理,youtube dl文档中的所有音频提取示例都使用ffmpegExtractAudio:
“key”:“ffmpegExtractAudio”

但是,忽略该键会引发以下错误:

回溯(最近一次呼叫最后一次): 文件“downloadmusic.py”,第36行,在 youtube_dl.YoutubeDL(ydlOpts).下载([youtubeList[0]] 文件“/Users/Yo/anaconda3/lib/python3.6/site packages/youtube_dl/YoutubeDL.py”,第417行,在init pp_class=get_后处理器(pp_def_raw['key']) 键错误:“键”

我找不到任何关于avconv的键值而不是ffmpeg处理的文档,将ydlOpts中的“audioformat”值更改为“mp3”仍然会导致下载.webm文件,因此需要进行后处理

将youtube dl用作命令行工具的方法如下:
youtube dl-x——音频格式mp3——音频质量0-o'/path/to/folder/%(title)s.%(ext)s'URL

avconv后处理的键值应该是什么?为什么把“音频格式”改成“mp3”不行呢


谢谢大家!

此外,将“anvconv”或“anvconvExrtractAudio”测试为“key”值也不起作用。