| Crates.io | classi-cine |
| lib.rs | classi-cine |
| version | 0.5.1 |
| created_at | 2023-11-01 08:22:18.644091+00 |
| updated_at | 2025-08-16 12:45:26.4676+00 |
| description | A tool that builds smart video playlists by learning your preferences through Bayesian classification. |
| homepage | |
| repository | https://github.com/mason-larobina/classi-cine |
| max_upload_size | |
| id | 1020720 |
| size | 273,987 |

Stop scrolling through thousands of videos. Classi-Cine is like autocomplete for video selection - it predicts what you want to watch next based on your feedback, helping you rapidly build the perfect playlist for your current mood.
You have a large video collection but finding what matches your current mood is tedious:
Classi-Cine plays 20-questions with your video collection to rapidly zero in on what you want:
Perfect for:
# Install
cargo install classi-cine
# Start building a playlist - the AI will suggest additions
classi-cine build my-playlist.m3u ~/Videos ~/Movies
# The TUI shows AI predictions ranked by relevance
# Press Enter to preview in VLC
# Stop (s) to accept and add to playlist, pause (space) to reject
# Watch suggestions get smarter with each decision!
Like autocomplete for text, Classi-Cine learns patterns from your video collection and predicts what you want next:
Simple VLC Integration:
VLC is required for video playback.
Ensure you have Rust and Cargo installed. If not, you can install them using rustup.
# Build from the cargo.io crate registry.
$ cargo install classi-cine
# Clone this repository
$ git clone https://github.com/mason-larobina/classi-cine.git
# Go into the repository
$ cd classi-cine
# Build and install it locally
$ cargo install --path=.
Usage: classi-cine [OPTIONS] <COMMAND>
Commands:
build Build playlist through interactive classification
score Score files using trained classifiers without interactive classification
list-positive List classified files
list-negative
move Move playlist to a new location and rebase paths
help Print this message or the help of the given subcommand(s)
Options:
--log-level <LOG_LEVEL> [default: info]
-h, --help Print help
Build a playlist through interactive VLC classification:
classi-cine build [OPTIONS] <PLAYLIST> [DIRS]...
Arguments:
<PLAYLIST> M3U playlist file
[DIRS]... Directories to scan for video files
Options:
--video-exts <VIDEO_EXTS> Video file extensions to scan for [default: avi,flv,mov,f4v,flv,m2ts,m4v,mkv,mpg,webm,wmv,mp4]
--windows <WINDOWS> [default: 5]
--file-size-bias <FILE_SIZE_BIAS> Bias scoring based on file sizes (log base, > 1.0). Negative reverses bias
--file-size-offset <FILE_SIZE_OFFSET> Offset to add to file size before log scaling [default: 1048576]
--dir-size-bias <DIR_SIZE_BIAS> Bias scoring based on directory sizes (log base, > 1.0). Negative reverses bias
--dir-size-offset <DIR_SIZE_OFFSET> Offset to add to directory size before log scaling [default: 0]
--file-age-bias <FILE_AGE_BIAS> Bias scoring based on file age (log base, > 1.0). Negative reverses bias
--file-age-offset <FILE_AGE_OFFSET> Offset to add to file age in seconds before log scaling [default: 86400]
--fullscreen Fullscreen VLC playback
--vlc-timeout <VLC_TIMEOUT> Timeout in seconds for VLC startup [default: 60]
--vlc-poll-interval <VLC_POLL_INTERVAL> Polling interval in milliseconds for VLC status checks [default: 100]
--batch <BATCH> Number of entries to classify in each batch iteration [default: 1]
--random-top-n <RANDOM_TOP_N> Select next entry randomly from top-n scored entries
-h, --help Print help
Score files using trained classifiers without interactive classification:
classi-cine score [OPTIONS] <PLAYLIST> [DIRS]...
Arguments:
<PLAYLIST> M3U playlist file
[DIRS]... Directories to scan for video files
Options:
--video-exts <VIDEO_EXTS> Video file extensions to scan for [default: avi,flv,mov,f4v,flv,m2ts,m4v,mkv,mpg,webm,wmv,mp4]
--windows <WINDOWS> [default: 5]
--file-size-bias <FILE_SIZE_BIAS> Bias scoring based on file sizes (log base, > 1.0). Negative reverses bias
--file-size-offset <FILE_SIZE_OFFSET> Offset to add to file size before log scaling [default: 1048576]
--dir-size-bias <DIR_SIZE_BIAS> Bias scoring based on directory sizes (log base, > 1.0). Negative reverses bias
--dir-size-offset <DIR_SIZE_OFFSET> Offset to add to directory size before log scaling [default: 0]
--file-age-bias <FILE_AGE_BIAS> Bias scoring based on file age (log base, > 1.0). Negative reverses bias
--file-age-offset <FILE_AGE_OFFSET> Offset to add to file age in seconds before log scaling [default: 86400]
--include-classified Include already classified files in the score listing
--no-header Skip header output for machine-readable format
--include-size Include file size in bytes in output
--json Output results in JSON format
--reverse Reverse output order (lowest scores first)
--by-dir Group results by directory and aggregate scores
--absolute Display absolute paths instead of relative to current directory
-h, --help Print help
List positively or negatively classified files:
classi-cine list-positive [OPTIONS] <PLAYLIST>
classi-cine list-negative [OPTIONS] <PLAYLIST>
Arguments:
<PLAYLIST> M3U playlist file
Options:
--absolute Display absolute paths instead of relative to current directory
-h, --help Print help
Move playlist to a new location and rebase paths:
classi-cine move <ORIGINAL> <NEW>
Arguments:
<ORIGINAL> Original M3U playlist file
<NEW> New M3U playlist file location
Options:
-h, --help Print help
For developers and ML enthusiasts, Classi-Cine uses several sophisticated techniques:
Multi-Classifier Architecture:
Advanced Tokenization:
Performance Optimizations:
VLC Integration:
We're open to contributions! Enhancements, bug fixes, documentation improvements, and more are all welcome.
This project is licensed under the MIT License. See LICENSE for details.
Made with ❤️ and Rust.