The bluray_info project is a set of utilities for accessing Blu-rays:
bluray_info- display information about a Blu-ray in multiple formatsbluray_copy- copy a Blu-rays track to a file or stdoutbluray_player- a small Blu-ray player using libmpv as backendbluray_dvd_rip- a shell script to rip Blu-rays using ffmpeg-7.0 and above
- libbluray >= 1.2.0
- libaacs for decryption
- libmpv for
bluray_player - ffmpeg-7.0 or greater for
bluray_rip
cmake .
make
sudo make install
Building bluray_player requires mpv to be installed with libmpv support first.
Run --help for each program to see its options.
There are man pages for each program as well.
Decrypting Blu-ray discs is done through libaacs. Even with libaacs, you will need a KEYDB.cfg file to bypass the encryption, and can be found various places online. The best location is http://fvonline-db.bplaced.net/
libaacs by default will look for KEYDB.cfg in ~/.config/aacs/ but with these utilities, you can specify the path directly if you'd like.
The input source can be either a device name, a single file, or a directory. The program will use the default Blu-ray drive based on your OS if no path is given.
$ bluray_info $ bluray_info /dev/sr0 $ bluray_info ~/Media/BD.ADVENTURE.iso $ bluray_info ~/Media/BD.ADVENTURE_BACKUP/
If you're going to do a lot of reads on a disc drive, I'd recommend mounting it so the access can be cached -- this is especially helpful when using / testing bluray_copy a lot to get chapters, playlists, etc.
sudo mount /dev/sr0 -o ro -t udf /mnt
The applications (except bluray_player) use libbluray to determine which playlist is the main one, and doesn't calculate it itself.
libbluray has two ways to display all playlists: there are "relevant" ones where the library filters out any duplicates. However, the list of duplicates can change across locations, filesystems, systems, etc. For that reason, the bluray utilities will enable displaying all titles, not just the relvant ones. If you don't want this, use --no-duplicates option
bluray_player uses libmpv as its backend, which only only displays the "relevant" titles (most current release as of this writing is 0.40). There's no way to override this in my application, so you will need to work around it, and look at the titles using bluray_info --no-duplicates. If you feel like hacking mpv, look for TITLES_RELEVANT in its source code, and change it to TITLES_ALL, and then rebuild.
Please file any issues at https://github.com/beandog/bluray_info/issues or email me at [email protected]
Licensed under GPL-2. See https://www.gnu.org/licenses/old-licenses/gpl-2.0.txt