Project Name | Stars | Downloads | Repos Using This | Packages Using This | Most Recent Commit | Total Releases | Latest Release | Open Issues | License | Language |
---|---|---|---|---|---|---|---|---|---|---|
Pytify | 738 | 1 | 2 years ago | 23 | October 03, 2019 | 5 | mit | Python | ||
A CLI application for controlling Spotify | ||||||||||
Lyricsgenius | 726 | 15 | 13 | 6 months ago | 46 | April 18, 2021 | 36 | mit | Python | |
Download song lyrics and metadata from Genius.com 🎶🎤 | ||||||||||
Music Dl | 429 | 17 hours ago | 44 | October 09, 2022 | mit | PHP | ||||
Music Searcher and Downloader. - 音乐搜索下载器。 | ||||||||||
Gmusicproxy | 317 | 3 years ago | 15 | gpl-3.0 | Python | |||||
Google Play Music Proxy - "Let's stream Google Play Music using any media-player" | ||||||||||
Pms | 229 | 4 months ago | 1 | April 22, 2021 | 27 | mit | Go | |||
Practical Music Search is an interactive Vim-like console client for the Music Player Daemon. | ||||||||||
Playx | 180 | 3 years ago | 3 | mit | Python | |||||
Search and play any song from terminal | ||||||||||
Lyrics.ovh | 157 | 10 months ago | 10 | gpl-3.0 | JavaScript | |||||
Source of lyrics.ovh and API to search for lyrics of a song | ||||||||||
Showcase Songs Search | 121 | 8 months ago | apache-2.0 | JavaScript | ||||||
A site to instantly search 32M songs from the MusicBrainz songs database, using Typesense Search (an open source alternative to Algolia / ElasticSearch) ⚡ 🎵 🔍 | ||||||||||
Chorus | 104 | 5 days ago | 50 | gpl-3.0 | JavaScript | |||||
Clone Hero-friendly Organized Repository of User-provided Songs | ||||||||||
Tuijam | 100 | 3 years ago | 40 | January 06, 2020 | 11 | mit | Python | |||
A fancy TUI client for Google Play Music |
Play any songs that come in your mind.
Hoping to make it an awesome music assistant
For Arch Linux users, it is available in AUR with the name playx.
For others, it can be installed manually.
Make sure all the dependencies are installed.
Run the following command in the root directory to install playx.
pip install -e .
Or install using setup.py as:
python setup.py install
Python3.x
pip3
MPV
Get MPV (website) from here.
Get MPV (github) from here.
Note: These dependencies in linux can be installed in other variants.
For arch linux, you can use pacman package manager accordingly. Numpy is used for Markov-Chain based playlist.
mpv
For now, the application is in development phase.
usage: playx [-h] [-rsearch [RSEARCH [RSEARCH ...]]] [-p] [-n] [-a] [-d] [-r] [-k] [-c] [--sync-pl PLAYLIST] [-l] [--shuffle] [--repeat [NUMBER]] [--pl-start START] [--pl-end END]
[--level LEVEL] [--disable-file] [--list-level]
[song [song ...]]
playx - Search and play any song that comes to your mind. If you have any issues, raise an issue in the github (https://github.com/NISH1001/playx) page
positional arguments:
song Name or youtube link of song to download
optional arguments:
-h, --help show this help message and exit
-rsearch [RSEARCH [RSEARCH ...]], --rsearch [RSEARCH [RSEARCH ...]]
Play based on terms provided
-p, --play-cache Play all songs from the cache. The cache is located at [~/.playx/songs/] by default
-n, --no-cache Don't download the song for later use.
-a, --auto Auto generate playlist
-d, --skip-cached Don't search the song in the cache.
-r, --no-related Disable playing related songs extracted from YouTube
-k, --disable-kw Disable addition of keywords while searching the song on YouTube.
-c, --clean Clean(fix) broken references
--sync-pl PLAYLIST Sync the playlists. Pass the name as arguement. If all the playlists are to be synced, just pass [All].
-l, --lyrics Show lyircs of the song.
--shuffle Shuffle the playlist in case it is one, else the option will have no effect.
--repeat [NUMBER] Put the passed entity on repeat , be it a playlist or a song. If an arg is not passed, infinite loop is considered. (default = Infinite)
--pl-start START Start position in case a playlist is passed. If passed without a playlist it has no effect.
--pl-end END End position in case a playlist is passed. If passed without a playlist it has no effect.
Logger:
--level LEVEL The level of the logger that will be used while verbosing. Use `--list-level` to check available options.
--disable-file Disable logging to files
--list-level List all the available logger levels.
Play by song name
playx man sold world nirvana
This plays the song titled "The man who sold the world by Nirvana"
Play by youtube link
playx https://www.youtube.com/watch?v=4zLfCnGVeL4
This plays the song The Sound of Silence.
Play by soundcloud links
playx https://api.soundcloud.com/tracks/232673157
This plays soundcloud track
Play from youtube playlist
playx https://www.youtube.com/playlist?list=PLwg22VSCR0W6cwuCKUJSkX72xEvYXS0Zx
This plays the songs from my personal (and public) playlist named Chilld and Wisdom.
Play from a Billboard Chart
playx hot-100
This plays the songs from Billboards hot-100 chart. The billboard charts can be found here
Play from spotify playlist
playx https://open.spotify.com/playlist/37i9dQZF1DX5Ozry5U6G0d
This plays the songs from Spotify Summer Party playlist.
Play from soundcloud playlist
playx https://soundcloud.com/devintracy/sets/goodafternoon
This plays the songs from SoundCloud playlist
Play from JioSaavn playlist
playx https://www.jiosaavn.com/featured/magical-amit-trivedi/IGYxX3V4T7w_
This plays songs from the JioSaavn playlist
Play from YouTube Music Playlist
playx https://music.youtube.com/playlist?list=PL4fGSI1pDJn4pTWyM3t61lOyZ6_4jcNOw
This plays songs from this playlist
Play from local playlist
The local playlist should have an extension .playx
in order for us to recognize it as a playlist.
playx example.playx
This plays a playlist named example.playx
For a playlist every line is considered an entry. Refer to example.playx.
Auto-Generate Playlist
playx --auto
This will automatically generate a playlist by using the frequency of songs played that has been logged in the log file.
Term-Based Search
playx --rsearch pink floyd
This will automatically generate a playlist of cached songs containing the provided terms.
By default, playx
creates a directory in the home as ~/.playx
(which is a hidden folder).
Structure is like:
.playx
|- songs/
|- logs/
|- playlist/
|- playxlist/
songs: This stores all the songs downloaded by playx
logs: This stores the log for user activities of songs that are searched and played with creation date. This will be used for recommendation of songs in future version
playlist: This stores all the cached playlists files.
playxlist: Stores all the playxlist files.
youtube-dl is the core through which we fetch stream urls for any song or any YT playlist.
So, update it first
pip install -U youtube-dl
youtube-dl keeps on rolling out updates actively because the YouTube keeps on updating its internals for html. So, the parser/crawler should be updated periodically.
playx --clean
Chances are you have a url in the urls.json
but the local mp3 might not exist in ~/.playx/songs/
.
So, cleaning and running the playx might mitigate that.
Log is found at logs/partial_log
Files can be found inside playlist/
. Chances are there might be empty links or names.
Maybe you don't have the chromedriver that's required to crawl.
One example of how we use chromedriver is here.
Not having proper setup of the driver may result in empty playlists, especially related playlist one.
Contributions are warmly welcome. Please do go through CONTRIBUTING.
This is generated using pydeps. The codebase is kinda messy, isn't it? :D
playx
. It's neat (and cool)