3 An Emacs interface to youtube-dl which is a fork of Christopher Wellons's version. It addes some
4 features and improvement. Mainly it support multiple process downloading.
6 # A youtube-dl download manager for Emacs
8 This package manages a video download queue for [youtube-dl][yt], which
9 serves as the back end. It manages a single youtube-dl subprocess,
10 downloading one video at a time. New videos can be queued at any time.
12 The `youtube-dl` command queues a single URL for download. Failures are
13 retried up to `youtube-dl-max-failures`. Items can be paused or set to
14 download at a slower rate (`youtube-dl-slow-rate`).
16 The `youtube-dl-playlist` command queues an entire playlist, just as if
17 you had individually queued each video on the playlist.
19 The `youtube-dl-list` command displays a list of all active video
20 downloads. From this list, items under point can be canceled
21 (<kbd>d</kbd>), paused (<kbd>p</kbd>), slowed (<kbd>s</kbd>), and have
22 its priority adjusted (<kbd>[</kbd> and <kbd>]</kbd>).
24 ![](https://i.imgur.com/wDWNsMf.png)
28 - support youtube-dl directly
29 - [improved] display download status in table list view
30 - two downloading model
31 - single-process downloading queue
32 - multiple-processes downloading
33 - support download playlist
34 - support download audio
35 - support download subtitle
36 - support pause/resume/delete/priority downloading
37 - support specifying network proxy
38 - downloading finished notifications
39 - log output to buffer `" *youtube-dl log*"`
40 - auto close download list window after finished all downloading
44 To display the size and progress, this package relies on a specific
45 output format from youtube-dl. Using an external downloader
46 (`--external-downloader`) breaks this, as can mucking around too much
47 with the command line switches (`youtube-dl-arguments`).
49 [yt]: https://rg3.github.io/youtube-dl/
54 (use-package youtube-dl
55 :load-path "~/Code/Emacs/youtube-dl"
57 :custom ((youtube-dl-program (expand-file-name "~/anaconda3/bin/yt-dlp"))
58 (youtube-dl-proxy "socks5://127.0.0.1:7890") ; ClashX
59 (youtube-dl-proxy-url-list '("youtube.com" "pornhub.com"))
60 (youtube-dl-notify t))
63 youtube-dl-download-playlist
64 youtube-dl-download-audio youtube-dl-download-subtitle youtube-dl-download-thumbnail)
66 (add-to-list 'display-buffer-alist '("^ \\*youtube-dl list\\*" . (display-buffer-below-selected display-buffer-reuse-window)))
67 (add-to-list 'display-buffer-alist '("^ \\*youtube-dl log\\*" . (display-buffer-below-selected)))
68 (add-to-list 'display-buffer-alist '("^ \\*youtube-dl vid:.*\\*" . (display-buffer-below-selected)))
70 ;; auto download whole playlist for playlist URL.
71 (add-to-list 'youtube-dl-extra-arguments "--yes-playlist" t)
72 ;; use cookies from web browser.
73 (add-to-list 'youtube-dl-extra-arguments "--cookies-from-browser" t)
74 (add-to-list 'youtube-dl-extra-arguments "chrome" t)
75 ;; load `youtube-dl-transient.el'
76 (require 'youtube-dl-transient))