问题标签 [youtube-dl]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1402 浏览

python - python:在命令完成之前从 check_output 获得响应

我正在使用 python 运行Youtube-dl,这是一个用于从 YouTube 和其他网站下载视频的软件。我专门用它来从 YouTube 视频中下载音频。我可以使用 python 从 YouTube 视频中下载音频,方法是使用 check_output() 执行保存在我的计算机上的 youtube-dl.exe 文件。

下面是我编写的执行 youtube-dl 文件并下载歌曲的方法。它返回一个巨大的文本字符串,它是 youtube-dl 程序的输出。

当我在 python 中运行这个方法时,它会等待命令完成,然后返回一个包含大量信息的巨大响应。这包括在下载结束时输出的一般信息,但它也(如果通过命令提示符运行)每隔几秒就会给出有关下载进度的信息。问题是,在 python 中运行它时,我会在下载完成后获得所有这些进度信息。

有什么方法可以在 check_output() 方法仍在运行时获取输出?这样我就可以为下载制作一个进度条。

编辑:

更新:下面是我想要工作的当前代码,除了一个小例外......

当我运行上面的这个新代码时,它将开始逐行打印信息,因为它是在执行的命令中生成的,但是所有关于下载百分比的信息都在最后打印出来。当我尝试在命令提示符下运行相同的命令时,我发现提供有关下载百分比信息的文本实际上每秒左右更改一次,而不是使用更新的信息创建新行,正如我根据输出所怀疑的那样在蟒蛇。你认为有什么办法可以解决这个问题,所以我可以获得进度条所需的信息吗?

0 投票
1 回答
256 浏览

python - 通过 chrome 扩展将 url 发送到桌面应用程序

我正在尝试提供一种通过 chrome 扩展将 chrome 中的 url 发送到用户桌面上的程序/应用程序的方法。更具体地说,我想创建一个 chrome 应用程序,该应用程序在激活后会将用户打开的 url(很可能来自 youtube)发送到桌面上的一个程序,该程序将从 youtube 视频中提取音乐。桌面程序正在运行并且是用 python 编写的,我现在要做的就是单击 chrome(chrome 扩展名)中的按钮并将网站的 url 发送到桌面应用程序。我所知道的唯一让我这样做的方法是使用 NPAPI,但它正在被逐步淘汰。

0 投票
1 回答
5995 浏览

python - 无法使用 youtube-dl 下载

我正在尝试下载此链接https://www.youtube.com/watch?v=Pi3bc9lS3rg,它完全可以在 Ubuntu 服务器上运行,但不能在我的 Mac 上运行。我反复收到此警告:

警告:无法设置语言:[youtube] Pi3bc9lS3rg:正在下载网页

并且还跟随错误

错误:无法下载网页:< urlopen 错误 [Errno 8] _ssl.c:504:EOF 违反协议>

0 投票
1 回答
18791 浏览

youtube-dl - 从 vimeo 下载 Youtube-dl 频道

YouTube-dl 是否允许从 YouTube 以外的网站的频道下载所有视频(不是单个文件)。(Vimeo,每日动态)

我了解 YouTube-dl 可用于下载 YouTube 频道/用户中的所有视频。语法是 youtube-dl ytuser:fmderena

每个网站的缩写是什么。对于 YouTube,它的 ytuser 同样有 vimeo 的代码

0 投票
2 回答
5024 浏览

windows - windows下youtube-dl的完整安装说明

我刚刚在我的 Windows 中下载了 youtube-dl-2014.07.15.tar_2.gz。一开始我想说我对python一无所知。而且我已经安装了 python 2.7。谁能指导我执行这些脚本?

我已经尝试过运行......但是有一些像这样的错误。“没有名为 youtube-dl 的 mudule” 我想要一个新的开始。现在我使用的是 Windows 8.1,我也尝试过 youtube-dl.exe。还有截图之类的问题

dl

如果我想同时使用脚本和程序,我会做什么?任何帮助将不胜感激。如果您从头开始指导我,那就更好了。

0 投票
1 回答
889 浏览

php - php中终端的实时更新(popen或proc_open)

目标: 从终端获取实时更新而无需换行。目前我正在使用这个

此代码的输出

它在下载结束时只输出一次(起初它只在我不知道为什么会发生这种情况时才给我实时更新)。但是在我的 Windows 命令提示符中,我在一行中获得了百分比和速度,而没有换行符。为此,我尝试了此代码

失败了......结果就像是空的

输出

那么任何人都可以提供任何建议来修改这些代码或新代码吗?谢谢。

0 投票
2 回答
81 浏览

bash - 如何在后台运行的程序中传递stdinput?

我一直在尝试编写一个运行命令的 shell 脚本

这个命令可以通过在 shell 上输入 q 来退出。

我可以将参数传递给脚本,但如何从脚本内或通过其他脚本自动执行。我可以从脚本中终止这个 youtube-dl 进程,但我不想这样做,因为它会影响 commad 执行。

请告诉我如何确保 youtube-dl 进程从另一个脚本或同一脚本中接收到 q。

0 投票
1 回答
276 浏览

php - 从 php 代码中执行 shell 脚本

我想要做的是youtube-dl -x --audio-format mp3 "token"使用 php 执行并获取以下参数的 json:

  • 状态(错误 = 0/成功 = 1)
  • 保存的文件 url(您将在控制台结果示例中看到它[avconv] Destination: Jennifer Lopez - Booty ft. Iggy Azalea-nxtIRArhVD4.mp3:)

这是我编写的 PHP 代码。

基本上它执行

当我在控制台(通过 SSH)中执行相同的命令时,我得到了这样的结果

当我在 php 环境中执行相同的命令时得到以下 json 结果

事实上 php 完成工作并保存文件,但输出不一样,我无法获取目标文件 url。

我究竟做错了什么?有什么建议么?

0 投票
2 回答
4116 浏览

heroku - 从 url 读取 pydub AudioSegment。BytesIO 仅在 heroku 上返回“OSError [Errno 2] No such file or directory”;在本地主机上很好

编辑 1 对于任何有相同错误的人:安装 ffmpeg 确实解决了 BytesIO 错误

为仍然愿意提供帮助的任何人编辑 1:我现在的问题是,当我使用 AudioSegment.export("filename.mp3", format="mp3") 时,文件已制作,但大小为 0 字节——详情如下(如“编辑 1")


编辑2:现在所有问题都解决了。

  • 可以使用 BytesIO 将文件作为 AudioSegment 读入
  • 我找到了 buildpacks 以确保 ffmpeg 在我的应用程序上正确安装,并支持导出正确的 mp3 文件

下面回答


原始问题

我让 pydub 在本地工作得很好,可以根据 url 中的参数裁剪特定的 mp3 文件。(?start_time=3.8&end_time=5.1)

当我运行foreman start它时,它在 localhost 上看起来一切都很好。html 渲染得很好。views.py 中的关键行包括使用从 url 读取文件

这一切都很好......直到我推送到heroku(django应用程序)并在线运行它。然后当我现在在 herokuapp.com 上加载相同的页面时,我收到了这个错误

我已经注释掉了一些原文,以说服自己,单行original=AudioSegment.from_mp3(BytesIO(mp3))是问题的根源……但这在本地不是问题

views.py 中的完整功能如下所示:

特别是在我访问页面时调用的views.py中的视图:

有什么建议么?

潜在相关:我在本地安装了 ffmpeg

但由于不了解构建包,无法将其安装到 heroku 上。我刚刚尝试过(http://stackoverflow.com/questions/14407388/how-to-install-ffmpeg-for-a-django-app-on-herokuhttps://github.com/shunjikonishi/heroku-buildpack-ffmpeg),但到目前为止 ffmpeg 无法在 heroku 上运行(当我执行“heroku run ffmpeg --version”时,ffmpeg 无法识别)......你认为这是原因吗?

当我在这里转圈圈时,将不胜感激任何这样的答案:

  1. “我认为 ffmpeg 确实是你的问题。努力解决这个问题,把它安装在 heroku 上”
  2. “实际上,我认为这就是 BytesIO 不适合你的原因:......”
  3. “无论如何,你的方法很糟糕......如果你想读入音频文件以使用 pydub 进行处理,你应该这样做:......”(因为我只是第一次通过 pydub 破解。 ..我的方法可能很差)

编辑 1

ffmpeg 现已安装(例如,我可以输出 wav 文件)

但是,我无法创建 mp3 文件,仍然......或者更准确地说,我可以,但文件大小为零

请注意上面 0 的文件大小为 mp3 文件...当我在我的 macbook 上做同样的事情时,文件大小永远不会为零

回到heroku shell:

我第一次意识到我忘记了pydub.AudioSegment.ffmpeg = "/app/vendor/ffmpeg/bin/ffmpeg"命令,但是正如你在上面看到的,文件仍然是零大小

出于绝望,我什至尝试将“.heroku”添加到路径中,以便与您的示例一样逐字记录,但这并没有解决它:

最后,我尝试导出一个 .wav 文件来检查 pydub 至少工作正常

至少 .wav 的文件大小不为零,因此 pydub 正在工作

我目前的理论是,要么我仍然没有正确使用 ffmpeg,要么还不够……也许我需要在基本 ffmpeg 之上额外安装一个 mp3。

几个网站提到“libavcodec-extra-53”,但我不知道如何在heroku上安装它,或者检查我是否有它?https://github.com/jiaaro/pydub/issues/36 同样,关于 libmp3lame 的教程似乎是针对笔记本电脑安装而不是在 heroku 上安装的,所以我很茫然http://superuser.com/questions/196857/how-to-install-libmp3lame-for-ffmpeg

如果相关,我的 requirements.txt 中也有 youtube-dl ...这也适用于我的 macbook 本地,但是当我在 heroku shell 中运行它时失败:

信息链接是它太具体说明了 mp3 故障,所以也许这两个问题是相关的。


编辑 2

看答案,所有问题都解决了

0 投票
1 回答
1387 浏览

youtube-dl - Linux Mint 上的 Youtube-dl

我刚刚在 Linux Mint 上安装了 youtube-dl。我只是尝试下载一个随机视频,但它不起作用:

我在 AskUbuntu 上问过同样的问题,但后来意识到它只适用于 Ubuntu 操作系统

所以我尝试更新 youtube-dl ..但它也没有工作

我已经处于超级用户模式.. Thnx