emacs.tv aggregates videos related to our favorite text editor GNU Emacs.
This project was born out of a collaboration between Sacha Chua and Alvaro Ramirez.
You can use the random feature at https://emacs.tv (requires Javascript), search for text in the page, or filter by tag/speaker.
If you have the MPV media player and the mpv.el package (available on MELPA and NonGNU ELPA), you can install emacstv.el from this repo:
(use-package emacstv
:vc (:url "https://github.com/emacstv/emacstv.github.io"))Then use:
M-x emacstv-background-mode: play one video after another until you disable it by callingM-x emacstv-background-modeagain. You can use>to go to the next video in the shuffled playlist or<in the MPV window to go to the previous one, or use the commandsmpv-playlist-nextandmpv-playlist-previn Emacs.M-x emacstv-play: select a video by typing in part of its title or speakersM-x emacstv-play-random: play a random videoM-x emacstv-jump-to-current-video: jump to the entry for the current video.M-x mpv-pause: pause or play the videoM-x mpv-volume-decreaseandmpv-volume-increaseto manage the volume.
You can search for videos with M-x emacstv-agenda-search. If you have org-ql, you can use M-x emacstv-org-ql-search.
You can play the video at the current line with M-x emacstv-play-at-point.
To watch YouTube videos with subtitles, you may want to add something like this to your mpv.conf (~~/.config/mpv/mpv.conf~ on my system):
ytdl-raw-options='ignore-config=,sub-langs="en,en-US",write-subs=,write-auto-subs=' sub-auto=fuzzy slang=en,eng,enUS,en-US
If you don’t want the video window to be resized for each window, you can try something like this in your mpv.conf:
force-window force-window-position no-keepaspect-window geometry=50%x50%-0-0
Help keep emacs.tv fresh and interesting by submitting new videos.
You can e-mail sacha@sachachua.com with a link to the video, or you can add videos by following these steps:
- Fork this repository.
- Add a new entry to videos.org. Be sure to add as many of the fields provided as possible and please include tags. You can either follow the example below or use
M-x emacstv-add-from-youtubehelper from emacstv.el.
For example:
* EmacsConf.org: How we use Org Mode and TRAMP to organize and run a multi-track conference :emacsconf:emacsconf2023:org:tramp:
:PROPERTIES:
:DATE: 2023-12-03
:URL: https://emacsconf.org/2023/talks/emacsconf
:MEDIA_URL: https://media.emacsconf.org/2023/emacsconf-2023-emacsconf--emacsconforg-how-we-use-org-mode-and-tramp-to-organize-and-run-a-multitrack-conference--sacha-chua--main.webm
:YOUTUBE_URL: https://www.youtube.com/watch?v=uTregv3rNl0
:TOOBNIX_URL: https://toobnix.org/w/eX2dXG3xMtUHuuBz4fssGT
:TRANSCRIPT_URL: https://media.emacsconf.org/2023/emacsconf-2023-emacsconf--emacsconforg-how-we-use-org-mode-and-tramp-to-organize-and-run-a-multitrack-conference--sacha-chua--main.vtt
:SPEAKERS: Sacha Chua
:SERIES: EmacsConf 2023
:END:
- Submit a pull request.
Right now my workflow for adding videos from a
YouTube playlist or from Vimeo search results use
Spookfox, since that lets me work with pages that
require Javascript. Once Spookfox has connected to
Firefox and I’m looking at the right page in the
current tab, I use
emacstv-insert-org-list-from-spookfox to make an
Org list for quick review/deletion. Then I select
a region and use emacstv-add-from-org to add the
videos from that list, add tags if I have time,
and then emacstv-build to sort the entries and
build the data feeds.
Many videos could really do with more tags and additional metadata. Please help us by submitting pull requests with metadata improvements.
You can search for videos with M-x emacstv-agenda-search.
If you have org-ql, you can use M-x
emacstv-org-ql-search. For example, you can
search for (and (heading "python") (not (tags
"python"))) to find videos that have “python” in
the heading but not the tags.
Mark items with m, unmark them with u, and add or remove tags from marked items with B + and B -.
You can play the video at the current line with M-x emacstv-play-at-point.