GithubHelp home page GithubHelp logo

dafixxer / youtube-tui Goto Github PK

View Code? Open in Web Editor NEW

This project forked from siriusmart/youtube-tui

0.0 0.0 0.0 3.75 MB

An aesthetically pleasing YouTube TUI written in Rust

Home Page: https://siriusmart.github.io/youtube-tui

License: GNU General Public License v3.0

Shell 0.46% Rust 99.01% Nix 0.52%

youtube-tui's Introduction

Read more in the user manual (including installation guide and documentation).

Overview

Written in Rust, the YouTube TUI is a lightweight and user friendly TUI for browsing YouTube content from the terminal. Works out of the box and easily to configurable.

It is like an app launcher, it launches other programs to do the heavy lifting (for example, mpv for playing videos).

It also have an embedded mpv music player, but that can be disabled in compile time.

Consider regenerating config files on updates to allow new features.

Customisable

The YouTube TUI can be customised through config files, they are located in ~/.config/youtube-tui and are in the YAML format.

Here's an example of the config file:

mouse_support: true
invidious_instance: https://vid.puffyan.us
max_watch_history: 50
allow_unicode: false
images: Sixels
refresh_after_modifying_search_filters: true
provider: YouTube
env:
  browser: firefox
  video-player: mpv
  youtube-downloader: yt-dlp
  terminal-emulator: konsole -e

Anything from layouts to colours and keybindings can be customised, more on that later.

Dependency-free*

See installation#features for more info on dependencies.

The YouTube TUI does not work on its own, it is instead like a TUI frontend for programs like mpv or yt-dlp/youtube-dl.

However, the programs to launch can be changed, and therefore the YouTube TUI does not rely on any specific dependencies to run.

Powerful

The YouTube TUI allows you to browse YouTube with (almost) all of it's features, functions including:

  • View information about channels, playlists and videos
  • Use search filters to sort and filter search results
  • Save browsing history
  • Embedded audio/music player

It also includes features like:

  • Vim-like commands
  • Mouse support
  • Extensible keybindings system
  • Offline library
  • Subscriptions

What it doesn't have

  • [URGENT] Replace the no-longer-going-to-compile typemap dependency with either a self implementation of it or a useable crate.
  • Strip down some libraries to reduce compile speed.
  • Add command section for channel main page (first priority)
  • Git like command line to improve on yt-dlp - make changes to existing downloaded playlists instead of redownloading the entire thing.

How to contribute

You will need a general knowledge of the Rust programming language, and the ability to understand my spaghetti.

  1. Open an issue to make sure nobody else is working on the same feature
  2. Write code
  3. Open a pull request
  4. Get merged?

Or just fix that typo in README -_-

youtube-tui's People

Contributors

siriusmart avatar fractal-tess avatar zaedus avatar luckyturtledev avatar msrd0 avatar jtbx avatar ruixi-rebirth avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.