yTermPlayer
yTermPlayer copied to clipboard
Stream youtube playlists as audio on linux terminal
ytTerm player (BETA)
Play youtube playlists as audio on linux terminal
About
ytTerm player is a terminal youtube music player. It's completely written in python.
UI: Made using a wrapper for curses called urwid
Player: Handled using python-mpv
Stream fetch: Audio streams from youtube are fetched using pafy
Features:
- Import and play youtube playlists on terminal
- Save playlists in library
- Use several playback modes such as repeat one, repeat list, random
- Download complete list (coming soon)
Installation
Set up a virtual environment and install the dependencies:
$ pip install -r requirements.txt
python3 pip :-
$ pip install ytermplayer
$ yterm
or Git clone :-
$ git clone https://github.com/TimeTraveller-San/yTermPlayer
$ cd yTermPlayer/yTermPlayer/
$ python __main__.py
Dependencies
Python 3
ytTerm player uses a number of open source projects to work properly:
- urwid
- python-mpv
- pafy
- python3
- mpv player (sudo pacman -S mpv) or (sudo apt-get install mpv)
ytTerm player itself is open source. Feel free to modify and distribute the code
KeyBindings
Key | Function |
---|---|
s | save current list |
enter | select option/play song at selection |
n | play next song |
p | play previous song |
h | play first song |
e | play last song |
space | pause/play song |
u | volume up |
d | volume down |
q | quit |
1 | playback mode: Repeat one |
2 | playback mode: Repeat list |
3 | playback mode: None |
r | playback mode: Random |
more features coming soon |
Screenshots
Start screen :
The UI will automatically use your terminal colors.
Working video: https://youtu.be/rQpO1qBmxlY
Working video 2: https://youtu.be/bQrNtcIcHc0
FAQ
- How to fix out of range/url not found errors?
YouTube keeps changing its structure so it's important you have installed the latest version of youtube-dl as follows:
pip install --upgrade youtube_dl
- Where are my playlists stored and how to delete playlists?
Playlists are saved in $HOME/.yTermPlayer/playlists
as plain text. You may delete or add new playlists directly here.
- How to contact me?
Email: [email protected] Twitter: https://twitter.com/timetravellertt
Known Bugs
-
~~Buggy / unexpected playback behavior~~ It was caused because of race conditions and absence of critical section among the threads. Fixed it using semaphores
-
~~If some VLC error starts showing up on the screen, just resize the terminal and it will be gone~~ Completely removed VLC and replaced it with much more minimal and faster mpv player. Thank to python-mpv by jaseg