Abrir y reproducir con emms enlaces multimedia dentro de Emacs
El navegador de Emacs, el eww mode, no puede abrir enlaces a archivos multimedia ni
reproducirlos. Esto no debemos entenderlo, en cualquier caso, como un defecto sino más
bien como una característica. Y siempre podemos optar por abrir el enlace en otro
navegador (por ejemplo en Firefox), si nos situamos en aquél y pulsamos la tecla &
. Lo
que ocurre es que se trata de una práctica que cada vez intento evitar más. Por varias
razones, que se pueden compendiar en dos: a) De un tiempo a esta parte el Firefox me da
mucha pereza arrancarlo y, siempre que pueda, prefiero quedarme en un navegador en modo
texto o en el eww-mode emacsiano, a salvo del gran colesterol de internet, que es el
javascript. Y b) A pesar de que aún albergan interesantes contenidos, evitar entrar en
páginas como la de YouTube es una prioridad para mí. Prefiero otras opciones: descargar el
vídeo directamente con utilidades como youtube-dl
o visualizarlo desde un programa
reproductor del estilo VLC y similares. Pero, ¿por qué no hacer esto también dentro de
Emacs, si queremos abrir allí un enlace multimeda? Se me ocurrió, por tanto, escribir esta
simple función, que echa mano del excelente Emacs Multimedia System, más conocido por su
acrónimo EMMS.
Antes de nada, para poder usar EMMS, es necesario contar con un mínimo de configuración. Se pueden añadir muchas variables, pero mi configuracion es bastante escueta, y casi se limita a asegurar que EMMS use el programa VLC para reproducir los archivos multimedia:
(require 'emms-setup) (emms-all) (emms-default-players) (setq emms-player-list '(emms-player-vlc))
Una vez que nuestro EMMS ya está operativo en Emacs, se puede añadir mi función para abrir los enlaces multimedia:
(defun mi-multimedia-url-emms () (interactive) (let ((url (get-text-property (point) 'shr-url))) (emms-play-url (format "%s" url))))
Para definir esta función, lo único que hice fue tomar como base la función
eww-follow-link
del eww-mode
, que requiere el paquete shr.el
, y estilizarla
bastante, pues aquí no nos abre un enlace sino el archivo multimedia de turno. Ya sólo nos
queda definir un atajo para cuando estemos navegando dentro de Emacs. En mi caso, he
optado por la letra «m» (de «multimedia»):
(with-eval-after-load 'eww (define-key eww-mode-map (kbd "m") 'mi-multimedia-url-emms))
De este modo, cuando tengamos el cursor dentro de un enlace, si pulsamos m
, lo podremos
abrir y reproducir con el EMMS de Emacs, tal y como muestro en este breve vídeo de prueba:
Abrir y reproducir con emms enlaces multimedia dentro de Emacs from Juan Manuel Macías Chaín on Vimeo.
∞
Publicado: 29/10/2019
Última actualización: 16/08/23
Esta obra está bajo una licencia de Creative Commons Reconocimiento-NoComercial 4.0 Internacional.