From 8710ba8ab53caf11acad86c70d3f32b967d16e1e Mon Sep 17 00:00:00 2001 From: Wolfgang Müller Date: Thu, 19 Sep 2024 22:45:48 +0200 Subject: content: Add post: "List mpv(1)'s watch_later entries with later(1)" --- content/20/index.md | 58 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100644 content/20/index.md diff --git a/content/20/index.md b/content/20/index.md new file mode 100644 index 0000000..ac90ad1 --- /dev/null +++ b/content/20/index.md @@ -0,0 +1,58 @@ ++++ +date = 2024-09-19T22:45:36+02:00 +title = "List mpv(1)'s watch_later entries with later(1)" + +[taxonomies] +tags = ["projects", "later(1)"] + +[extra] +related = [] ++++ + +If you are like me then you have a basically never-ending backlog of videos to +watch. Perhaps sometimes you even watch videos so long that they're basically +impossible to finish in one sitting. Or you have about an hour left on a video, +but you should really go to sleep. + +All of these require some way to remember the timestamp where you left off. I +use [`mpv(1)`](https://mpv.io/) to watch my videos and thankfully there is a +built-in way to do this. By default, hitting `Q` will quit the video and +remember the timestamp ([among other +settings](https://mpv.io/manual/stable/#resuming-playback)) for next time you +open the file. This works regardless of whether the video exists on your +filesystem or is streamed from a URL. + +After a while of using this you might amass more than a couple of unfinished +videos that `mpv(1)` knows about, but what it sadly does not provide is an easy +way to show you which videos those are... + +This is where a shared effort between my partner +[nortti](https://ahti.space/~nortti/) and me comes in: +[`later(1)`](https://git.oriole.systems/later/about/). It is a small Python +script that parses `mpv(1)`'s [watch +later](https://mpv.io/manual/stable/#watch-later) entries and displays them in a +human-readable and pretty manner: + +``` +albatross ~$ later +Sep 19 19:50 https://www.youtube.com/watch?v=VKGtMK4CGV4 # The 2 Hour Hunt for Light Arrows - OoT Randomizer +Sep 19 22:30 /home/wolf/Mall Grab - Understand feat. Brendan Yates.webm +``` + +From here it is easy to open up the video you want to continue watching: simply +paste the path or URL printed by `later(1)` into `mpv(1)`. + +You might notice that the YouTube video is commented with its title. This is not +information that `mpv(1)` saves, but `later(1)` can help here too. Using the +`-u` or `--update-titles` flag, it will extract video titles using +[`yt-dlp(1)`](https://github.com/yt-dlp/yt-dlp) and save them in its cache for +subsequent retrieval. This should work for any site that `yt-dlp(1)` itself +supports. + +If you have a Python available, setting up and using `later(1)` is trivial: +simply copy the script into a directory in your `$PATH` (and the manual into +`$MANPATH`) or use the `Makefile`: + +``` +$ PREFIX=~/.local make install +``` -- cgit v1.2.3-2-gb3c3