AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / ubuntu / 问题 / 865544
Accepted
Grey Mahagone
Grey Mahagone
Asked: 2016-12-29 11:34:10 +0800 CST2016-12-29 11:34:10 +0800 CST 2016-12-29 11:34:10 +0800 CST

Youtube-dl 拒绝在后台运行

  • 772

我通过在命令后youtube-dl放置在后台运行。&问题是它不在乎我把它放在后台并在终端中保持打印信息。

它不仅拒绝以Ctrl+C或Ctrl+停止Z,而且除了显示这些消息之外什么都不做。为了阻止它,我必须关闭终端。

这正是发生的事情:

mohamed@Smithers:~$ clear
mohamed@Smithers:~$ youtube-dl https://www.youtube.com/watch?v=LMQsYSuw8hw &
[1] 2028
mohamed@Smithers:~$ [youtube] LMQsYSuw8hw: Downloading webpage
[youtube] LMQsYSuw8hw: Downloading video info webpage
[youtube] LMQsYSuw8hw: Extracting video information
[youtube] LMQsYSuw8hw: Downloading MPD manifest
WARNING: Requested formats are incompatible for merge and will be merged into mkv.
[download] Resuming download at byte 11440128
[download] Destination: I Was On Japanese TV... and I F#%KING HATED IT.-LMQsYSuw8hw.f137.mp4
[download]   4.8% of 231.85MiB at 199.01KiB/s ETA 18:56^C
mohamed@Smithers:~$ ^C
mohamed@Smithers:~$ ^C
[download]   4.8% of 231.85MiB at 136.95KiB/s ETA 27:30^C
mohamed@Smithers:~$ ^C
mohamed@Smithers:~$ ^C
mohamed@Smithers:~$ ^C
mohamed@Smithers:~$ ^C
[download]   5.0% of 231.85MiB at 127.41KiB/s ETA 29:31^C
mohamed@Smithers:~$ ^C
mohamed@Smithers:~$ ^C
mohamed@Smithers:~$ ^C
mohamed@Smithers:~$ ^C
mohamed@Smithers:~$ ^C
mohamed@Smithers:~$ ^C
mohamed@Smithers:~$ ^C
mohamed@Smithers:~$ ^C
mohamed@Smithers:~$ ^C
[download]   5.0% of 231.85MiB at 111.38KiB/s ETA 33:44^C
mohamed@Smithers:~$ ^C
[download]   5.0% of 231.85MiB at 111.21KiB/s ETA 33:47^C
mohamed@Smithers:~$ ^C
[download]   5.1% of 231.85MiB at 116.77KiB/s ETA 32:09^C

[download]   5.5% of 231.85MiB at 108.71KiB/s ETA 34:24^C

[download]   5.6% of 231.85MiB at 76.68KiB/s ETA 48:41
command-line
  • 2 2 个回答
  • 6692 Views

2 个回答

  • Voted
  1. Best Answer
    Eliah Kagan
    2016-12-29T12:33:02+08:002016-12-29T12:33:02+08:00

    youtube-dl正在后台运行,但它仍在向您的终端发送输出,并产生相当多的输出以通知您其进度。有很多方法可以改变这一点,但您可能想要减少youtube-dl 输出,或者将其输出发送到文件(或完全丢弃)而不是出现在终端中。

    方式 1:运行youtube-dl -q以抑制状态消息。

    如果您不想看到进度消息,您可以将-q标志(或--quiet,它做同样的事情)传递给youtube-dl命令:

    youtube-dl -q https://www.youtube.com/watch?v=NZ-ElsvYKyo &
    

    当然,您必须用您要下载的任何内容替换该 URL。可能仍会打印一些消息,包括错误和警告。但很可能你想看到那些。

    如果您不想youtube-dl产生任何警告,则可以youtube-dl使用该--no-warnings标志运行。不过,我不建议这样做,除非你确定这是你想要的。

    youtube-dl -q --no-warnings https://www.youtube.com/watch?v=NZ-ElsvYKyo &
    

    要了解更多关于接受的命令行选项youtube-dl,您可以在线运行man youtube-dl或阅读其手册页。

    方式2:将标准输出重定向youtube-dl到文件。

    要将输出附加到dl.log当前目录中(您可以将其命名为您想要的名称,如果它不存在,它将被创建),运行:

    youtube-dl https://www.youtube.com/watch?v=NZ-ElsvYKyo >> dl.log &
    

    如果要覆盖 dl.log而不是将文本附加到末尾,请使用>而不是>>:

    youtube-dl https://www.youtube.com/watch?v=NZ-ElsvYKyo > dl.log &
    

    然后将正常输出重定向到dl.log(或您告诉它使用的任何文件)。但是,错误输出仍将显示在您的终端上。例如,当我运行该命令时,我的终端上打印了一个警告:

    ek@Io:~$ youtube-dl https://www.youtube.com/watch?v=NZ-ElsvYKyo >> dl.log &
    [1] 14456
    ek@Io:~$ WARNING: Requested formats are incompatible for merge and will be merged into mkv
    

    其他所有内容都进入日志文件:

    ek@Io:~$ cat dl.log
    [youtube] NZ-ElsvYKyo: Downloading webpage
    [youtube] NZ-ElsvYKyo: Downloading video info webpage
    [youtube] NZ-ElsvYKyo: Extracting video information
    [youtube] NZ-ElsvYKyo: Downloading MPD manifest
    [download] Destination: Lecture 1 _ Topics in String Theory-NZ-ElsvYKyo.f244.webm
    [download]  23.2% of 359.52MiB at 204.49KiB/s ETA 23:02ek@Io:~$
    

    您可以随时查看输出cat(正如我在上面所做的那样),以检查进度。

    当您在没有 的情况下运行youtube-dl时-q,它会产生主要用于终端的输出。此输出包括告诉终端删除先前进度消息的控制字符,以便可以用新的进度消息在视觉上替换它。某些查看文件的方式,例如cat dl.log,不会显示“已擦除”消息或控制字符。但是,它们仍然是文件的一部分,您可以使用其他一些实用程序查看它们;例如,view dl.log作品。

    方式2a:重定向输出以/dev/null摆脱它。

    如果您希望输出只是被丢弃而不是保存在实际文件中,那么您可以将其重定向到/dev/null:

    youtube-dl https://www.youtube.com/watch?v=NZ-ElsvYKyo > /dev/null &
    

    使用/dev/null,“覆盖” ( >) 或“追加” ( >>) 都没有关系。

    这通常是一种方便的技术,尽管对于youtube-dl. 如果您想抑制进度,则可以youtube-dl -q改为运行。

    方式3:也重定向标准错误。

    常规输出和错误输出是分开的。两者都生产是很常见的youtube-dl。上述方法仅重定向标准输出。您还可以重定向标准错误。重定向可以做很多事情,包括将两个输出流重定向到单独的文件。出于我们的目的,我将只展示如何将标准输出和标准错误发送到同一个文件:

    youtube-dl https://www.youtube.com/watch?v=NZ-ElsvYKyo &>> dl.log &
    

    当我运行它时,我的外壳只显示

    [2] 15009
    

    ...并且常规输出和错误输出都出现在dl.log:

    ek@Io:~$ cat dl.log
    [youtube] NZ-ElsvYKyo: Downloading webpage
    [youtube] NZ-ElsvYKyo: Downloading video info webpage
    [youtube] NZ-ElsvYKyo: Extracting video information
    [youtube] NZ-ElsvYKyo: Downloading MPD manifest
    WARNING: Requested formats are incompatible for merge and will be merged into mkv.
    [download] Destination: Lecture 1 _ Topics in String Theory-NZ-ElsvYKyo.f244.webm
    [download]   0.0% of 359.52MiB at 107.65KiB/s ETA 56:59ek@Io:~$
    

    上面使用的示例&>>,它附加到dl.log. 要改写文件,请使用&>(或>&,也可以使用)而不是&>>:

    youtube-dl https://www.youtube.com/watch?v=NZ-ElsvYKyo &> dl.log &
    

    方式 3a:将正常和错误输出都重定向到/dev/null.

    如果你真的想要,你可以将标准输出和标准错误都重定向到,/dev/null所以它们都被简单地丢弃了:

    youtube-dl https://www.youtube.com/watch?v=NZ-ElsvYKyo &> /dev/null &
    

    不过,您可能希望看到实际的错误消息。如果它只是您不想要的状态消息和警告,那么您不需要任何重定向。在这种情况下,您可以youtube-dl -q --no-warnings如上所述使用。(见方式 1。)

    • 6
  2. twobob
    2022-06-27T15:35:44+08:002022-06-27T15:35:44+08:00

    假设以利亚的回答没有任何建议有效或适用。

    不知道为什么图书馆似乎不支持安静的选项

    self.to_screen('由于 --no-playlist' % video_id 只下载视频 %s)

    输出正如人们可能期望的那样运行......

    这里的代码部分

    def report_download_webpage(self, video_id):
        """Report webpage download."""
        self.to_screen('%s: Downloading webpage' % video_id)
    

    in Lib\site-packages\youtube_dl\extractor\Common.py 是 self.to_screen 调用中 out 的罪魁祸首。

    如果您在使用#'s 调用的任何下载器中省略 self.to_screen 调用 - 例如 site-packages\youtube_dl\extractor\youtube.py 这将永远省略各种输出。

    • 0

相关问题

  • 如何从命令行仅安装安全更新?关于如何管理更新的一些提示

  • 如何从命令行刻录双层 dvd iso

  • 如何从命令行判断机器是否需要重新启动?

  • 文件权限如何工作?文件权限用户和组

  • 如何在 Vim 中启用全彩支持?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    如何运行 .sh 脚本?

    • 16 个回答
  • Marko Smith

    如何安装 .tar.gz(或 .tar.bz2)文件?

    • 14 个回答
  • Marko Smith

    如何列出所有已安装的软件包

    • 24 个回答
  • Marko Smith

    无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗?

    • 25 个回答
  • Martin Hope
    Flimm 如何在没有 sudo 的情况下使用 docker? 2014-06-07 00:17:43 +0800 CST
  • Martin Hope
    Ivan 如何列出所有已安装的软件包 2010-12-17 18:08:49 +0800 CST
  • Martin Hope
    La Ode Adam Saputra 无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗? 2010-11-30 18:12:48 +0800 CST
  • Martin Hope
    David Barry 如何从命令行确定目录(文件夹)的总大小? 2010-08-06 10:20:23 +0800 CST
  • Martin Hope
    jfoucher “以下软件包已被保留:”为什么以及如何解决? 2010-08-01 13:59:22 +0800 CST
  • Martin Hope
    David Ashford 如何删除 PPA? 2010-07-30 01:09:42 +0800 CST

热门标签

10.10 10.04 gnome networking server command-line package-management software-recommendation sound xorg

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve