76 lines
2.2 KiB
EmacsLisp
76 lines
2.2 KiB
EmacsLisp
;;; acdw-ytel.el --- bespoke functions for ytel -*- lexical-binding: t -*-
|
||
|
||
;;; Commentary:
|
||
|
||
;; Extra code for the ytel package:
|
||
;; https://github.com/gRastello/ytel
|
||
|
||
;;; Code:
|
||
|
||
(require 'ytel nil t)
|
||
|
||
(defun acdw/ytel-current-video-link ()
|
||
"Get the link of the video at point."
|
||
(let* ((video (ytel-get-current-video))
|
||
(id (ytel-video-id video)))
|
||
(concat "https://www.youtube.com/watch?v=" id)))
|
||
|
||
(defun acdw/ytel-watch () ; This could possibly use `browse-url'.
|
||
"Stream video at point in mpv."
|
||
(interactive)
|
||
(start-process "ytel mpv" nil
|
||
"mpv"
|
||
(acdw/ytel-current-video-link)
|
||
"--ytdl-format=bestvideo[height<=?720]+bestaudio/best")
|
||
(message "Starting streaming..."))
|
||
|
||
(defun acdw/ytel-copy-link ()
|
||
"Copy link of the video at point."
|
||
(interactive)
|
||
(let ((link (acdw/ytel-current-video-link)))
|
||
(kill-new link)
|
||
(message "Copied %s to kill-ring" link)))
|
||
|
||
|
||
;;; YTDIOUS: https://github.com/spiderbit/ytdious
|
||
;; a fork of ytel that uses table-view or w/e. looks nicer
|
||
|
||
(require 'ytdious nil t)
|
||
|
||
(defun acdw/ytdious-current-video-link ()
|
||
"Get the link of the video at point."
|
||
(let* ((video (ytdious-get-current-video))
|
||
(id (ytdious-video-id-fun video)))
|
||
(concat "https://www.youtube.com/watch?v=" id)))
|
||
|
||
(defun acdw/ytdious-watch () ; This could possibly use `browse-url'.
|
||
"Stream video at point in mpv."
|
||
(interactive)
|
||
(let ((link (acdw/ytdious-current-video-link)))
|
||
(start-process "ytdious mpv" nil
|
||
"mpv"
|
||
link
|
||
"--ytdl-format=bestvideo[height<=?720]+bestaudio/best")
|
||
(message "Streaming %s..." link)))
|
||
|
||
(defun acdw/ytdious-copy-link ()
|
||
"Copy link of the video at point."
|
||
(interactive)
|
||
(let ((link (acdw/ytdious-current-video-link)))
|
||
(kill-new link)
|
||
(message "Copied %s to kill-ring" link)))
|
||
|
||
(defun acdw/ytdious-quit ()
|
||
"Quit ytdious."
|
||
;; This corrects an error with `ytdious-quit' where it doesn't have the right
|
||
;; buffer setup.
|
||
(interactive)
|
||
(quit-window))
|
||
|
||
;;; Ignore `ytdious-show-image-asyncron' because it's buggy.
|
||
|
||
(defalias 'ytdious-show-image-asyncron #'ignore)
|
||
|
||
(provide 'acdw-ytel)
|
||
;;; acdw-ytel.el ends here
|