Giter VIP home page Giter VIP logo

ytermusic's Introduction

YTerMusic

index

YTerMusic is a terminal based Youtube Music Player. It aims to be as fast and simple as possible.

Features

  • Play your Youtube Music Playlists and Supermix.
  • Memory efficient (Around 20MB of RAM while fully loaded)
  • Cache all downloads and store them
  • Works even without connection (if music was already downloaded)
  • Automatic background download manager

Setup

  • Download the latest version from releases, or build from source
  • Give ytermusic authentication to your account by copying out the headers
    1. Open https://music.youtube.com in your browser
    2. Open the developer tools (F12) and go to the Network tab
    3. Find the request to the music.youtube.com document / page
    4. Copy the Cookie header from the request headers (you might need to enable raw headers to get the full cookie)
    5. Create a file in the same directory as the binary called headers.txt
    6. Create an entry like this: Cookie: <cookie>
    7. Add a valid "User Agent" below the cookie, like User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/110.0.0.0 Safari/537.36
  • Then you can start ytermusic

Linux

Install the following libraries:

$ sudo apt install alsa-tools libasound2-dev libdbus-1-dev pkg-config

Screenshots

Screenshot 2022-11-23 145422 https://user-images.githubusercontent.com/16625987/163998477-0feb87a0-dfde-4940-a5d1-09807968ec6d.png

Building from source

  • Clone the repository
  • Install rust https://rustup.rs
  • Run cargo build --release
  • The executable is in target/release/ytermusic

Usage

  • Use your mouse to click in lists if your terminal has mouse support
  • Press Space to play/pause
  • Press Enter to select a playlist or song
  • Press f to search
  • Press s to shuffle
  • Press Arrow Right or > to skip 5 seconds
  • Press Arrow Left or < to go back 5 seconds
  • Press CTRL + Arrow Right or CTRL + > to go to the next song
  • Press CTRL + Arrow Left or CTRL + < to go to the previous song
  • Press + for volume up
  • Press - for volume down
  • Press Arrow down to scroll down
  • Press Arrow up to scroll up
  • Press ESC to exit the current menu
  • Press CTRL + C or CTRL + D to exit

Features and upcoming features

  • Playlist selector
  • Error message display in the TUI
  • Enable connection less music playing
  • Cache limit to not exceed some given disk space
  • A download limit to stop downloading after the queue is full
  • Mouse support
  • Search
  • Custom theming

Changelog

Alpha a0.0.11

  • Added scrollable music view
  • Added shuffle functionality
  • Fixed some crashes while resizing the app
  • Added error messages for invalid headers or cookies
  • Added error messages for expired cookies

Alpha a0.0.10

  • Speed up the download process
  • Fix the download limit
  • Fix music artists getting smashed together
  • Fix the download manager not downloading all musics
  • Improved stability
  • Improved logs and added timings to better debug

Alpha a0.0.9:

  • Progress info for downloads
  • Mouse support on time bar
  • Vertical volume bar
  • Vertical volume bar supports mouse click
  • Scroll to change volume and skip in timeline
  • Improved the scrolling action
  • Fixed the bug where the time bar would not update
  • Debouncing the search input
  • Changed the location of the cache folder to follow the XDG Base Directory Specification (By @FerrahWolfeh #20)
  • More configuration options (By @ccgauche and @FerrahWolfeh)

Alpha a0.0.8

  • Fixed scrolling
  • Fixed audio-glitches
  • Removed nightly flag use

Alpha a0.0.7

  • Major changes in the API
  • Fixed log file bloat issue

Alpha a0.0.6

  • Fix: Fix a bug where the app would crash when trying to play a song that was not downloaded
  • Fix: Improve the logger to not print the same error twice
  • Improved startup time
  • Fixed linux build
  • Changed how task are distributed to the thread pool

Alpha a0.0.5

  • Added local database cache to improve IO accesses
  • Added searching for musics in the local library
  • Greatly improved render performance and RAM usage
  • Error management and error display in specific screen

Alpha a0.0.4

  • Added menu navigation
  • Added searching for musics
  • Added new terminal backend

Alpha a0.0.3

  • Mouse support to select playlist and music
  • Download limiter
  • Connection less music playing

Alpha a0.0.2

  • Playlist selector
  • Improved error management
  • Improved TUI
  • Performance upgrade
  • Switch to Rustls instead of openSSL

ytermusic's People

Contributors

ccgauche avatar burntranch avatar alphare avatar ferrahwolfeh avatar 7ih avatar alisonjenkins avatar jaxon-teboekhorst avatar ndom91 avatar 0xflotus avatar sergious234 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.