단일 재생목록의 경우 n번 다운로드한 후 --playlist-end NUMBER
종료 할 수 있다는 것을 알고 있습니다 youtube-dl
.
그러나 내 문제는 배치 파일을 사용하고 있다는 것입니다.
batch-file.txt
처럼 보인다
https://www.youtube.com/playlist?list=PLUiueC0kTFqLvpFk_Zg55geh_TBTKnbnA
https://www.youtube.com/playlist?list=PL11ZiN8vMsDpdgDscEZZrCfR5vQT_EzvG
https://www.youtube.com/playlist?list=PLgCYzUzKIBE_ZuZzgts135GuLQNX5eEPk
테스트 실행은 다음과 같습니다.
$ youtube-dl -i -c --no-warnings --console-title --batch-file='batch-file.txt' -s -o '%(playlist_title)s/%(title)s.%(ext)s'
[youtube:tab] PLUiueC0kTFqLvpFk_Zg55geh_TBTKnbnA: Downloading webpage
[download] Downloading playlist: Testing Flutter Apps
[youtube:tab] playlist Testing Flutter Apps: Downloading 6 videos
[download] Downloading video 1 of 6
[youtube] eLMa2jgp_bw: Downloading webpage
[youtube] eLMa2jgp_bw: Downloading MPD manifest
[download] Downloading video 2 of 6
[youtube] nuMqDNUb7f0: Downloading webpage
[youtube] nuMqDNUb7f0: Downloading MPD manifest
[download] Downloading video 3 of 6
[youtube] Vfi0uyDWIuM: Downloading webpage
[youtube] Vfi0uyDWIuM: Downloading MPD manifest
[download] Downloading video 4 of 6
[youtube] 225MFHjQokw: Downloading webpage
[youtube] 225MFHjQokw: Downloading MPD manifest
[download] Downloading video 5 of 6
[youtube] uB5_REsREtU: Downloading webpage
[youtube] uB5_REsREtU: Downloading MPD manifest
[download] Downloading video 6 of 6
[youtube] YjtGT7Cccd0: Downloading webpage
[youtube] YjtGT7Cccd0: Downloading MPD manifest
[download] Finished downloading playlist: Testing Flutter Apps
[youtube:tab] PL11ZiN8vMsDpdgDscEZZrCfR5vQT_EzvG: Downloading webpage
[download] Downloading playlist: Funny Readings
[youtube:tab] playlist Funny Readings: Downloading 7 videos
[download] Downloading video 1 of 7
[youtube] EShUeudtaFg: Downloading webpage
[download] Downloading video 2 of 7
[youtube] 15nNY7uofNw: Downloading webpage
[download] Downloading video 3 of 7
[youtube] 4nxsCZ2SEcQ: Downloading webpage
[download] Downloading video 4 of 7
[youtube] lhLHXjZyr8I: Downloading webpage
[download] Downloading video 5 of 7
[youtube] NmnGt4LBxcQ: Downloading webpage
ERROR: Private video
Sign in if you've been granted access to this video
[download] Downloading video 6 of 7
[youtube] feXHNClEZdI: Downloading webpage
[download] Downloading video 7 of 7
[youtube] GH5M4trXnTU: Downloading webpage
[youtube] GH5M4trXnTU: Downloading player b2e56c01
[download] Finished downloading playlist: Funny Readings
[youtube:tab] PLgCYzUzKIBE_ZuZzgts135GuLQNX5eEPk: Downloading webpage
[download] Downloading playlist: UI Testing for Beginners
[youtube:tab] playlist UI Testing for Beginners: Downloading 20 videos
[download] Downloading video 1 of 20
[youtube] j8jQq-kYgDU: Downloading webpage
[youtube] j8jQq-kYgDU: Downloading MPD manifest
[download] Downloading video 2 of 20
[youtube] NTBj_0tIlQc: Downloading webpage
[youtube] NTBj_0tIlQc: Downloading MPD manifest
[download] Downloading video 3 of 20
[youtube] zJuFYqnBcgQ: Downloading webpage
[youtube] zJuFYqnBcgQ: Downloading MPD manifest
[download] Downloading video 4 of 20
[youtube] GDTJHaR5yIs: Downloading webpage
[youtube] GDTJHaR5yIs: Downloading MPD manifest
[download] Downloading video 5 of 20
[youtube] ZpFgY6qc_ZY: Downloading webpage
[youtube] ZpFgY6qc_ZY: Downloading MPD manifest
[download] Downloading video 6 of 20
[youtube] KOC_wC3LAoA: Downloading webpage
[youtube] KOC_wC3LAoA: Downloading MPD manifest
[download] Downloading video 7 of 20
[youtube] VuPU6yG0uwg: Downloading webpage
[youtube] VuPU6yG0uwg: Downloading MPD manifest
[download] Downloading video 8 of 20
[youtube] QmH-B_UYIyA: Downloading webpage
[youtube] QmH-B_UYIyA: Downloading MPD manifest
[download] Downloading video 9 of 20
[youtube] CpQQ6-vo5bw: Downloading webpage
[youtube] CpQQ6-vo5bw: Downloading MPD manifest
[download] Downloading video 10 of 20
[youtube] xxO0Z9GzcBU: Downloading webpage
[youtube] xxO0Z9GzcBU: Downloading MPD manifest
[download] Downloading video 11 of 20
[youtube] HRRn6m5hUoA: Downloading webpage
[youtube] HRRn6m5hUoA: Downloading MPD manifest
[download] Downloading video 12 of 20
[youtube] L037q8MGkGA: Downloading webpage
[youtube] L037q8MGkGA: Downloading MPD manifest
[download] Downloading video 13 of 20
[youtube] IaxMgpKwRFY: Downloading webpage
[youtube] IaxMgpKwRFY: Downloading MPD manifest
[download] Downloading video 14 of 20
[youtube] A88735Xv108: Downloading webpage
[youtube] A88735Xv108: Downloading MPD manifest
[download] Downloading video 15 of 20
[youtube] _96FT7E6PL4: Downloading webpage
[youtube] _96FT7E6PL4: Downloading MPD manifest
^[[B[download] Downloading video 16 of 20
[youtube] BPlHmKjQUWo: Downloading webpage
[youtube] BPlHmKjQUWo: Downloading MPD manifest
[download]
첫 번째 재생목록에는 6개의 동영상이 있고, 두 번째 재생목록에는 7개의 동영상이 있으며, 세 번째 재생목록에는 20개의 동영상이 있습니다.
총 18개의 비디오를 다운로드했는데 다운로드를 종료하고 싶습니다.
이 3개의 재생목록에는 총 33개의 동영상이 있는 것으로 나타났습니다. Downloading video
표준 출력에서는 33번 나타납니다.
$ youtube-dl -i -c --no-warnings -s --console-title -o '%(playlist_title)s/%(title)s.%(ext)s' --batch-file='batch-file.txt' | grep -o "Downloading video" | wc -l
33
Downloading video
따라서 19번째 발생 시 다운로드를 종료 하면 성공합니다.
나확립된저것:
특정 출력을 제공한 후 프로세스를 종료하려면 다음을 사용할 수 있습니다.
mylongrunningtool | stdbuf -o0 egrep '(term1|term2)' >&-
하지만 이 코드에는 문제가 있습니다. 표준 출력을 표시하지 않습니다.
내 생각엔 내가 뭔가를 해야 할 것 같아다음과 같은:
var=0
my_program | while read line ; do
if echo "$line" | grep "Downloading video"
then
((i=i+1))
fi
if var=20 exit my_program
done
또는다음과 같은도움이 될 수도 있습니다:
my_program | awk 'BEGIN{s=0} /error message/{s=1} 1; END{exit(s)}'
하지만 어떻게 해야할지 모르겠습니다. 어떡해?
답변1
귀하의 질문에 대한 의견에 따르면 youtube-dl
총 다운로드 수를 제한하는 특정 옵션이 있습니다.
--max-downloads NUMBER
NUMBER개 파일 이후 다운로드가 중단되었습니다.
질문의 명령 및 배치 파일 사용:
youtube-dl -i -c --max-downloads=18 --no-warnings --console-title \
--batch-file='batch-file.txt' -o '%(playlist_title)s/%(title)s.%(ext)s
첫 번째 재생 목록에서 6개 파일, 두 번째 재생 목록에서 6개 파일(그 중 하나는 "오류: 비공개 비디오"로 인해 실패함), 세 번째 재생 목록에서 6개 파일을 다운로드했습니다. 총 18개.