diff options
author | Yuchen Pei <id@ypei.org> | 2025-08-31 23:01:05 +1000 |
---|---|---|
committer | Yuchen Pei <id@ypei.org> | 2025-08-31 23:01:05 +1000 |
commit | 6a04e26d72850f794dbe608b5f03cc2b449bfdc3 (patch) | |
tree | a3228146f2a7561de3a66720f6cdbfbb43bb148d | |
parent | ca5e376eac234dadc936afeb885e717e24bf8085 (diff) |
-rw-r--r-- | emacs/.emacs.d/lisp/my/my-media-segment.el | 10 | ||||
-rw-r--r-- | emacs/.emacs.d/lisp/my/my-ytdl.el | 19 |
2 files changed, 17 insertions, 12 deletions
diff --git a/emacs/.emacs.d/lisp/my/my-media-segment.el b/emacs/.emacs.d/lisp/my/my-media-segment.el index 9431624..c8326a7 100644 --- a/emacs/.emacs.d/lisp/my/my-media-segment.el +++ b/emacs/.emacs.d/lisp/my/my-media-segment.el @@ -134,11 +134,7 @@ Uses `my-media-segment-max-inflight' to limit number of inflight tasks." (interactive (list (read-file-name "Choose media file: ") (read-file-name - "Choose description file (.info.json or .description): " - ;; nil - ;; (file-name-with-extension media-file-name ".info.json") - ;; t - ))) + "Choose description file (.info.json or .description): "))) (let* ((dir (file-name-sans-extension (expand-file-name media-file-name))) (info (my-get-media-segments info-file-name)) (total (length info)) @@ -187,7 +183,9 @@ Uses `my-media-segment-max-inflight' to limit number of inflight tasks." (seq-map (lambda (ch) (let-alist ch - (list :title (my-make-filename .title) :start (format "%s" .start_time) + ;; .title: ytdl; .tags.titile: .m4b + (list :title (my-make-doc-file-name (or .title .tags.title)) + :start (format "%s" .start_time) :end (format "%s" .end_time)))) (alist-get 'chapters info)))) diff --git a/emacs/.emacs.d/lisp/my/my-ytdl.el b/emacs/.emacs.d/lisp/my/my-ytdl.el index 5676101..7cdda43 100644 --- a/emacs/.emacs.d/lisp/my/my-ytdl.el +++ b/emacs/.emacs.d/lisp/my/my-ytdl.el @@ -76,12 +76,19 @@ ('audio my-ytdl-audio-download-dir) ('music my-ytdl-music-download-dir) (_ (error "Unsupported type: %s" type))) - (apply 'my-start-process-with-torsocks - (append - (list no-tor (format "ytdl-%s" urls) (format "*ytdl-%s*" urls) - my-ytdl-program) - (if (eq type 'video) my-ytdl-video-args my-ytdl-audio-args) - (split-string urls))))) + (set-process-sentinel + (apply 'my-start-process-with-torsocks + (append + (list no-tor (format "ytdl-%s" urls) (format "*ytdl-%s*" urls) + my-ytdl-program) + (if (eq type 'video) my-ytdl-video-args my-ytdl-audio-args) + (split-string urls))) + (lambda (proc event) + (let ((status (process-exit-status proc))) + (if (eq status 0) + (progn + (message "ytdl-%s %s: DONE" type urls)) + (message "ytdl-%s %s FAILED: %s" type urls event))))))) (defun my-ytdl-video-info (url) "Given a video URL, return an alist of its properties." |