Crates.io | bckplayer |
lib.rs | bckplayer |
version | 0.1.0 |
created_at | 2025-09-24 19:06:28.607743+00 |
updated_at | 2025-09-24 19:06:28.607743+00 |
description | A cross-platform CLI media player interface for VLC |
homepage | |
repository | |
max_upload_size | |
id | 1853625 |
size | 344,640 |
A cross-platform CLI media player interface for VLC with a clean, minimalistic TUI (Text User Interface).
Before using BCK Player, you need to install:
VLC Media Player (including development libraries) - The media player engine
choco install vlc
sudo apt install vlc libvlc-dev
sudo pacman -S vlc
sudo dnf install vlc vlc-devel
brew install --cask vlc
yt-dlp (optional, for YouTube support)
pip install yt-dlp
sudo apt install yt-dlp
or pip install yt-dlp
brew install yt-dlp
or pip install yt-dlp
Rust (for building from source)
git clone https://github.com/yourusername/bckplayer.git
cd bckplayer
cargo build --release
The binary will be available at target/release/bckplayer
(or bckplayer.exe
on Windows).
Copy the binary to a directory in your PATH or add the target/release directory to your PATH.
# Launch BCK Player
bckplayer
# Play a local file
bckplayer /path/to/video.mp4
# Play a URL
bckplayer "https://example.com/stream.m3u8"
# Play a YouTube video (requires yt-dlp)
bckplayer "https://www.youtube.com/watch?v=dQw4w9WgXcQ"
# Start with specific volume and speed
bckplayer --volume 50 --speed 1.5 /path/to/video.mp4
# Start in windowed mode
bckplayer --windowed /path/to/video.mp4
Usage: bckplayer [OPTIONS] [MEDIA]
Arguments:
[MEDIA] Media source to play (file path or URL)
Options:
-w, --windowed Start in windowed mode instead of fullscreen
-v, --volume <VOLUME> Set initial volume (0-100)
-m, --muted Start muted
-s, --speed <SPEED> Set playback speed [default: 1.0]
-d, --debug Enable debug logging
-h, --help Print help
-V, --version Print version
ytcache
: Show YouTube cache statisticsytclear
: Clear YouTube cacheytdownload <url>
: Download YouTube video without playingBCK Player supports direct YouTube URL playback with intelligent caching. See YOUTUBE.md for detailed information.
# Play a YouTube video directly
bckplayer "https://www.youtube.com/watch?v=example"
# Configure YouTube settings
bckplayer # Press 'c' for config, navigate to YouTube section
The TUI consists of several sections:
BCK Player uses the VLC media player engine through the vlc-rs crate, providing full runtime control over media playback. Unlike FFplay-based solutions, VLC offers:
BCK Player creates a configuration file at:
%APPDATA%\bckplayer\config.json
~/.config/bckplayer/config.json
~/Library/Application Support/bckplayer/config.json
{
"default_volume": 100.0,
"default_speed": 1.0,
"fullscreen_by_default": false,
"keybindings": {
"play_pause": "Space",
"stop": "s",
"volume_up": "Up",
"volume_down": "Down",
"mute": "m",
"seek_forward": "Right",
"seek_backward": "Left",
"speed_up": "=",
"speed_down": "-",
"reset_speed": "r",
"toggle_fullscreen": "f",
"quit": "q",
"help": "h"
},
"ui": {
"update_interval_ms": 100,
"volume_step": 5.0,
"seek_step": 10.0,
"speed_step": 0.1,
"show_milliseconds": false
}
}
BCK Player supports all media formats that VLC can handle, including:
"ffplay not found"
--ffplay-path
to specify custom ffplay locationAudio/Video playback issues
TUI display issues
Enable debug logging with the -d
flag:
bckplayer -d /path/to/video.mp4
Contributions are welcome! Please feel free to submit issues, feature requests, or pull requests.
# Clone and build
git clone https://github.com/yourusername/bckplayer.git
cd bckplayer
cargo build
# Run tests
cargo test
# Run with debug logging
RUST_LOG=debug cargo run -- --debug
This project is licensed under the MIT License - see the LICENSE file for details.