Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/293.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搜索以便从.txt文件中提取列表?_Python_Youtube_Mp3_Youtube Dl - Fatal编程技术网

Python 如何使用youtube dl搜索以便从.txt文件中提取列表?

Python 如何使用youtube dl搜索以便从.txt文件中提取列表?,python,youtube,mp3,youtube-dl,Python,Youtube,Mp3,Youtube Dl,我有一个朋友,他给了我一个非常具体的问题,他有一个纯文本单词列表(为了写作,我将把这个列表称为list.txt,我将填充它为基本单词),他想从youtube上获取这个列表中每个单词的纯音频文件。所以我决定youtube dl将是最快的工具 由于list.txt是一个简单的单词列表,而不是youtube链接列表,这使得批量下载变得更加困难。阅读完所有文档后,我认为最简单的方法是使用youtube dl内置的搜索功能 List.txt 蓝色的 河 红色的 (等等……) 所以基本上是这样做的。但是因为

我有一个朋友,他给了我一个非常具体的问题,他有一个纯文本单词列表(为了写作,我将把这个列表称为list.txt,我将填充它为基本单词),他想从youtube上获取这个列表中每个单词的纯音频文件。所以我决定youtube dl将是最快的工具

由于list.txt是一个简单的单词列表,而不是youtube链接列表,这使得批量下载变得更加困难。阅读完所有文档后,我认为最简单的方法是使用youtube dl内置的搜索功能

List.txt
  • 蓝色的
  • 红色的
  • (等等……)
  • 所以基本上是这样做的。但是因为有很多东西不仅仅是3项,所以这并不实际

    youtube-dl.exe -f bestaudio ytsearch:blue
    youtube-dl.exe -f bestaudio ytsearch:river
    youtube-dl.exe -f bestaudio ytsearch:red
    
    我一整天都在寻找类似下面这段代码的东西,它可以获取一个.txt文件,搜索youtube,并在此列表中每个项目下载1个音频/视频

    youtube-dl.exe -f bestaudio ytsearch:list.txt
    
    我工作更多的是网络方面的东西,而不是编码,所以我在这里有点超出我的深度,只有基本的编码技能,所以任何帮助都是非常感谢的


    最终对我有效的解决方案

    还因为我需要文件转换,所以我使用了内置的youtube dl支持

    youtube-dl -c --title --batch-file test.txt --default-search "ytsearch" -x
    
    • -c强制恢复部分下载的文件

    • --不确定的标题似乎无论如何都没有什么不同

    • -正如alastairtree指出的那样,这是一种更好的获取音频的方法

    注:感谢所有试图帮助我和我的朋友解决我们的问题的人

    如果您不愿意使用python,并且在windows上,您可以使用Powershell在文件中的行上进行迭代,请参见

    如果
    list.txt
    仅包含单词,请使用
    --batch file
    (或
    -a
    简称选项)并设置默认搜索提供程序(本例中为YouTube搜索):


    请注意,我将
    -f bestaudio
    替换为
    -x
    (或
    -提取音频
    )。这有两个优点:它适用于没有专用音频流的视频(目前极为罕见),并且它修正了m4a文件,以便可以在所有音乐播放器上读取。您还可以传入
    --音频格式的mp3
    (或例如
    opus
    而不是mp3),以获得所需输出格式的视频。

    您可以使用Python的
    os.system
    运行外部命令,因此:1。阅读
    list.txt
    ,2。将数据逐行存储在列表中,3。为创建一个循环,迭代列表以运行操作系统(“youtube-dl.exe-f bestaudio-ytsearch:“+item”)。相反请注意。默认情况下,youtube dl将恢复,
    -c
    将强制恢复,即使在中断的情况下也是如此<代码>--title无效。嘿,谢谢你的帮助,我可以用你的例子来帮助你,也可以用其他人来帮助我拼凑出一个与我的特定列表一起工作的命令。我将添加我的命令,以及旗帜为未来的人做了什么。再次感谢
    youtube-dl -a list.txt --default-search ytsearch -x