youtube-dl을 사용하여 YouTube 채널의 모든 비디오 목록을 다운로드하고 정렬합니다.

youtube-dl을 사용하여 YouTube 채널의 모든 비디오 목록을 다운로드하고 정렬합니다.

YouTube 채널의 모든 동영상 목록을 다운로드하여 기간별로 정렬하고 싶습니다. 내가 시도한 것은 다음과 같습니다.유튜브-DL각기.yt-dlp:

yt-dlp --skip-download "url_to_channel" --get-duration --get-title > list

그리고 그런 것 cat list | sed '$!N;s/\n/ /g' | sort. 그러나 기간이 두 번째로 인쇄되기 때문에 작동하지 않습니다( sort -k2제목에 공백이 포함되어 있으므로 도움이 되지 않습니다).

하루가 끝나면 URL과 제목을 가져온 다음 이를 html 파일(또는 Latex -> pdf)로 파이프하여 클릭 가능한 URL과 축소판 그림이 포함된 목록을 얻고 싶습니다. (이 질문의 내용은 그게 아닙니다. , 그러나 당신은 답변을 작성할 때 이것을 생각했을 것입니다. 나는 먼저 위의 간단한 사례를 다루고 싶습니다.

편집하다

예를 들어:

yt-dlp --skip-download "https://www.youtube.com/user/emacsrocks/videos" --get-duration --get-title > list_test

밝혀지다

cat list_test

Parens of the Dead Live - Preparing for a new game, bonus stream, live on Twitch
1:06:45
Parens of the Dead Live - Improving the code 3 years later, live on Twitch
1:55:55
Emacs Rocks! Episode 17: Magit
2:39
Emacs Rocks! Episode 16: Dired
1:35
Parens of the Dead - Episode 8: The Hour of Reckoning
9:52
Parens of the Dead - Episode 7: Eaten by Zombies
3:50
Parens of the Dead - Episode 6: Quickly, hide!
9:44
Parens of the Dead - Episode 5: Re-animated
9:09
Parens of the Dead - Episode 4: Waking the Dead
4:59
Parens of the Dead - Episode 3: What Lies Beneath
9:27
Parens of the Dead - Episode 2: Frontal Assault
8:02
Parens of the Dead - Episode 1: Lying in the Ground
11:33
Emacs Rocks! Episode 15: restclient-mode
2:24
Emacs Rocks at WebRebels! Part 05: more js2-refactor
55
Emacs Rocks at WebRebels! Part 04: more js2-refactor
1:58
Emacs Rocks at WebRebels! Part 03: js2-refactor
59
Emacs Rocks at WebRebels! Part 02: multiple-cursors
41
Emacs Rocks at WebRebels! Part 01: Jumping to the next slide
2:19
Emacs Rocks! Episode 14: Paredit
3:25
Extending Emacs Rocks! Episode 08
8:10
Extending Emacs Rocks! Episode 07
11:06
Emacs Rocks! Episode 13: multiple-cursors
3:56
Emacs Rocks! Episode 12: Working with HTML
1:54
Extending Emacs Rocks! Episode 06
9:26
Emacs Rocks! Episode 11: swank-js
4:35
Extending Emacs Rocks! Episode 05
9:18
Extending Emacs Rocks! Episode 04
10:44
Extending Emacs Rocks! Episode 03
10:32
Extending Emacs Rocks! Episode 01
11:15
Extending Emacs Rocks! Episode 02
8:00
Emacs Rocks! Live at WebRebels
18:18
Emacs Rocks! Episode 10: Jumping around
2:07
Emacs Rocks! Episode 09: expand-region
2:39
Emacs Rocks! Episode 08: mark-multiple
1:30
Emacs Rocks! Episode 07: Mind. Exploded.
1:30
Emacs Rocks! Episode 06: Yeah! Snippets!
1:41
Emacs Rocks! Episode 05: Macros in style
1:31
Emacs Rocks! Episode 04: A rebind controversy
2:32
Emacs Rocks! Episode 03: A vimgolf albatross
2:15
Emacs Rocks! Episode 02: A vimgolf eagle
3:15
Emacs Rocks! Episode 01: From var to this
2:47

답변1

youtube-dl데이터 출력을 요청한 json후 처리할 수 있습니다( 플래그가 있는 필드 jq뿐만 아니라 모든 필드에 액세스할 수 있습니다 ).get-...

이 명령은 다음과 같습니다.

youtube-dl --dump-json "https://www.youtube.com/user/emacsrocks/videos" | jq -r '[.duration,.title]|@csv'

다음을 출력합니다:

4005,"Parens of the Dead Live - Preparing for a new game, bonus stream, live on Twitch"
6955,"Parens of the Dead Live - Improving the code 3 years later, live on Twitch"
159,"Emacs Rocks! Episode 17: Magit"
95,"Emacs Rocks! Episode 16: Dired"
592,"Parens of the Dead - Episode 8: The Hour of Reckoning"
230,"Parens of the Dead - Episode 7: Eaten by Zombies"
...
91,"Emacs Rocks! Episode 05: Macros in style"
152,"Emacs Rocks! Episode 04: A rebind controversy"
135,"Emacs Rocks! Episode 03: A vimgolf albatross"
195,"Emacs Rocks! Episode 02: A vimgolf eagle"
167,"Emacs Rocks! Episode 01: From var to this"

그런 다음 예를 들어 를 사용할 수 있습니다 sort.

관련 정보