Skip to main content

xk library

Project description

lb: opinionated media library

Requires ffmpeg

Install

pip install xklb

Quick Start

Step 1. Extract Metadata

lb extract tv.db ./video/folder/

lb extract --audio podcasts.db ./your/music/or/podcasts/folder/

Step 2. Watch / Listen

wt tv.db  # the default post-action is to do nothing after viewing

wt --post-action delete tv.db  # delete file after viewing

lt --post-action=ask podcasts.db  # ask to delete or not after each file

Repeat!

lt -u random         # listen to ONE random song
lt --repeat 5        # listen to FIVE songs
lt -l inf            # listen to songs indefinitely
lt -s infinite       # listen to songs from the band infinite

If that's confusing you could always use your shell:

function repeat
    while $argv
        and :
    end
end

repeat lt -s finite  # listen to finite songs infinitely

Example Usage

Watch longest videos

wt tv.db --sort duration desc

Watch specific video series in order

wt tv.db --search 'title of series' --play-in-order

There are multiple strictness levels of --play-in-order. If things aren't playing in order try adding more Os:

wt tv.db --search 'title of series' -O    # default
wt tv.db --search 'title of series' -OO   # slower, more complex algorithm
wt tv.db --search 'title of series' -OOO  # most strict

I usually use the following:

lt -cast -s '  ost'      # for listening to OSTs on my chromecast groups
wt -u priority -w sub=0  # for exercising and watching YouTube
wt -u duration --print -s 'video title'  # when I want to check if I've downloaded something before

Advanced Features

If you want to specify more than one directory you will need to make the db file explicit:

$ lb extract --filesystem fs.db one/ two/

Searching filesystem

You can also use lb for any files:

$ lb extract -fs ~/d/41_8bit/

$ lb fs fs.db -p a -s mario luigi
╒═══════════╤══════════════╤══════════╤═════════╕
│ path      │   sparseness │ size     │   count │
╞═══════════╪══════════════╪══════════╪═════════╡
│ Aggregate │            1 │ 215.0 MB │       7 │
╘═══════════╧══════════════╧══════════╧═════════╛

$ lb fs -p -s mario -s luigi -s jpg -w is_dir=0 -u 'size desc'
╒═══════════════════════════════════════╤══════════════╤═════════╕
│ path                                  │   sparseness │ size    │
╞═══════════════════════════════════════╪══════════════╪═════════╡
│ /mnt/d/41_8bit/roms/gba/media/images/ │      1.05632 │ 58.2 kB │
│ Mario & Luigi - Superstar Saga (USA,  │              │         │
│ Australia).jpg                        │              │         │
├───────────────────────────────────────┼──────────────┼─────────┤
│ /mnt/d/41_8bit/roms/gba/media/box3d/M │      1.01583 │ 44.4 kB │
│ ario & Luigi - Superstar Saga (USA,   │              │         │
│ Australia).jpg                        │              │         │
╘═══════════════════════════════════════╧══════════════╧═════════╛

Project details


Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

xklb-1.12.25.tar.gz (24.6 kB view hashes)

Uploaded Source

Built Distribution

xklb-1.12.25-py3-none-any.whl (25.6 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page