July 19th, 2024

CLI tools to build, browse, and blend your media library

The "library" GitHub repository is a media toolkit for managing local and online media, supporting Linux, Windows, and Mac OS. It offers features for metadata extraction, playback control, and database management.

Read original articleLink Icon
CLI tools to build, browse, and blend your media library

The GitHub repository named "library" is a media toolkit designed for managing and curating extensive media libraries, encompassing both local files and online video playlists, such as those from YouTube. It is primarily recommended for Linux users but also supports Windows and Mac OS, with installation via the command `pip install xklb`. The toolkit requires dependencies like `ffmpeg` and is optimized for use with tools such as `mpv`, `fd-find`, and `fish`.

Key features include local media management, which allows users to extract metadata and manage playback options, and online media management, enabling the downloading of metadata from YouTube playlists and direct media access. Users can create and manage multiple databases for various media types, merge databases, and deduplicate entries. Playback control features allow for commands to watch, listen, pause, stop, and seek through media files. Additionally, the toolkit offers tab management for organizing browser tabs and data analysis capabilities for exploratory data analysis (EDA) on media databases.

Examples of usage include adding local media with `library fsadd`, watching online media with `library watch`, and updating online media with `library tube-update`. The toolkit also provides a variety of subcommands for tasks like merging folders and checking media integrity, and it supports integration with other tools to enhance its media management capabilities. For further details, users can consult the repository's README.

Related

Ready Player Mode

Ready Player Mode

A new Emacs package, ready-player-mode, enhances media management within Emacs. Users can view images, play audio/video files, navigate, display metadata, and choose playback location. Available on GitHub for testing and feedback.

Show HN: Mandala – Automatically save, query and version Python computations

Show HN: Mandala – Automatically save, query and version Python computations

The Python library "mandala" on GitHub streamlines ML experiment tracking with tools like `@op` decorator and `ComputationFrame` for recording function details, version control, querying, and structuring code executions. Inquire for support.

A personal music streaming server that works

A personal music streaming server that works

Koel is a modern, open-source music streaming platform with FLAC support, smart playlists, and seamless integrations. It prioritizes speed, user-friendly design, and offers a free Community version with premium Koel Plus enhancements.

Real Player Mode Now on Melpa

Real Player Mode Now on Melpa

Real Player Mode, a new feature on MELPA for Emacs, allows users to open and preview media files easily. It supports various playback options and customization, along with media thumbnails and metadata rendering. The author is also launching a blogging service at lmno.lol for single-file blog creation. Early adopters can inquire for details.

A (not so) small library for terminal based game development

A (not so) small library for terminal based game development

The GitHub repository hosts "pygamelib," a Python library for terminal-based game development. It prioritizes algorithm development, making it suitable for beginners and experts. Installation is easy via PyPI. Constraints include single-player support and performance limitations.

Link Icon 2 comments
By @SuperNinKenDo - 9 months
Very cool project, I've been procrastinating for months on making something like this (overengineering everything in my brain) to replace a filesystem based, Bash solution I cooked up years ago.

This is way nicer than what I'm currently doing.

While I'm at it, forgive me for treating this like a support thread, but I set up an idle mpv window with a socket, and expected that the `--mpv-socket` option would allow me to send videos to the player instance tied to that socket, but that's not how it's working. (It opens a new window instead.) Is this as expected? Is there a way to set up what I'm trying to do some other way? Videos come in all shapes and sizes, and with Wayland not able to remember previous window positions, it's currently completely unworkable to play videos and do work at the same time.

By @leshokunin - 9 months
This seems powerful. What would be interesting use cases? I can dl youtube with yt-dl, but this seems to do more.