Я работаю 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
youtube-dl
работает в фоновом режиме, но это все еще отправляет вывод на Ваш терминал и производит довольно многое из него для информирования Вас о его прогрессе. Существует много способов изменить это, но Вы, вероятно, или захотите сделать youtube-dl
произведите менее вывод или заставьте его вывод быть отправленным в файл (или отброшенным в целом) вместо того, чтобы появиться в Вашем терминале.
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
или прочитанный его страница руководства онлайн.
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
работы.
/dev/null
избавиться от него.Если Вы хотите, чтобы вывод просто был отброшен, а не сохранен в фактическом файле, то можно перенаправить его к /dev/null
:
youtube-dl https://www.youtube.com/watch?v=NZ-ElsvYKyo > /dev/null &
С /dev/null
, не имеет значения, если Вы "перезаписываете" (>
) или "добавьте" (>>
).
Это - удобная техника в целом, хотя, вероятно, ненужный с youtube-dl
. Если Вы хотите подавить прогресс, можно просто работать youtube-dl -q
вместо этого.
Регулярный вывод и вывод ошибок являются отдельными. Это характерно для 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 &
/dev/null
.Если Вы действительно хотите, можно перенаправить и стандартный вывод и стандартную погрешность к /dev/null
таким образом, это все просто отбрасывается:
youtube-dl https://www.youtube.com/watch?v=NZ-ElsvYKyo &> /dev/null &
Вы, вероятно, хотите видеть фактические сообщения об ошибках, все же. Если это - просто сообщения о состоянии и предупреждения, Вы не хотите, то Вам не нужно никакое перенаправление. В этом случае можно использовать youtube-dl -q --no-warnings
как описано выше. (См. Путь 1.)