Awesome
<div align="center"> <h2> play music with command line </h2>play music then continue your work on the terminal.
<img src="https://github.com/Malwarize/retro/assets/130087473/aa91f82c-7faa-4804-b8e6-42b31ce7e6d9" alt="hi" style="width: 500px;" > </div>๐บ๏ธ map
- <code>๐ฆ Installation</code>
- <code>๐ฎ Music management</code>
- <code>๐ง Playlist management</code>
- <code>๐ฆ๏ธ Controls</code>
- <code>โ๏ธ Configuration</code>
- <code>๐พ Cache</code>
- <code>๐ Update</code>
- <code>๐ License</code>
- <code>๐ข Acknowledgments</code>
๐ฆ Installation
$${\color{#AC3097}Install \space \color{#56565E}Retro}$$
wget https://github.com/Malwarize/retro/releases/download/v0.0.43/installer.tar.gz
tar -xvf installer.tar.gz
chmod +x installer.sh
./installer.sh
this installer is for linux of systemd
based systems, if you are using other systems you can install it manually by compiling the source code then run the server as you like.
$${\color{#AC3097}Uninstall \space \color{#56565E}Retro}$$
~/.local/bin/uninstall_retro.sh
๐ฎ Music Management
$${\color{#AC3097}Play \space \color{#56565E} Music}$$
retro play "Despacito - Luis Fonsi" # you can search and play music by name
play command is smart enough to play music from different sources, you can play music by name, url, file path, directory path, queue, and playlist.
retro play "https://www.youtube.com/watch?v=kJQP7kiw5Fk" # you can play music by url
retro play queue_music # you can play music from queue, you can do this with music index in the queue
retro play ~/Music/Despacito.mp3 # you can play music by file path
retro play ~/Music/ # you can play music by directory path, it will play all music in the directory
retro play queue_music # it prioritize music in queue and play it first you can do this with music index in the queue
retro play playlist_name # you can play music from playlist
$${\color{#AC3097}Status \space \color{#56565E} Music}$$
retro status # ๐ต check the queue status tasks downloading|searching, playing|paused, songs in queue
$${\color{#AC3097}Pause/Resume \space \color{#56565E}Music}$$
retro pause # โธ๏ธ
retro resume # โถ ๏ธ
$${\color{#AC3097}Next/Previous \space \color{#56565E}Music Queue}$$
retro next # โญ๏ธ๏ธ
retro prev # โฎ๏ธ๏ธ
$${\color{#AC3097} Remove \space \color{#56565E}Music from Queue}$$
retro remove music_name #๐๏ธ
you can remove music from queue by name or index retro remove 1
$${\color{#AC3097}Adjust \space \color{#56565E}Volume}$$
retro vol 50 # ๐๏ธ set volume to 50%
retro vol 0 # ๐ mute volume Adjust
$${\color{#AC3097}Stop \color{#56565E}Music Queue}$$
retro stop # ๐
๐ง Playlist Management
$${\color{#AC3097}Create \space \color{#56565E}Playlist}$$
retro list create my_playlist # ๐
$${\color{#AC3097}Add \space \color{#56565E}Music to Playlist}$$
retro list add my_playlist "Despacito - Luis Fonsi" # โ search and add song to playlist
retro list add my_playlist "https://www.youtube.com/watch?v=kJQP7kiw5Fk" # โ add song to playlist by url
retro list add my_playlist queue_music # โ add music from queue
you can add music to playlist by name, url, queue (index|nameretro list add my_playlist music_index
) and file path
$${\color{#AC3097}Remove \space \color{#56565E}Music from Playlist}$$
retro list remove my_playlist "Despacito - Luis Fonsi" # โ remove song from playlist
retro list remove my_playlist 1 # โ remove song from playlist by index
$${\color{#AC3097}Show \space \color{#56565E}Playlist}$$
retro list my_playlist # ๐ show all songs in playlist
$${\color{#AC3097}Play \space \color{#56565E}Playlist}$$
retro list play my_playlist # ๐ add all songs in playlist to queue
$${\color{#AC3097}Delete \space \color{#56565E}Playlist}$$
retro list remove my_playlist # ๐ delete playlist
๐ฆ Controls
$${\color{#AC3097}Logs \space \color{#56565E}Control}$$
retro logs # ๐ show all logs #last 200 lines
retro logs info # ๐ข show all info logs
retro logs error # ๐ซ show all error logs
retro logs warn # โ ๏ธ show all warning logs
$${\color{#AC3097}Changing \space \color{#56565E}Theme}$$
retro theme pink #๐งผ
retro theme purple #๐ฎ
retro theme blue #๐
# TODO: retro theme custom
$${\color{#AC3097}Command \space \color{#56565E}Help}$$
retro help #โ show all commands
retro help play #โ show play command help
๐พ Cache
$${\color{#AC3097}Cache \space \color{#56565E}Control}$$
retro cache # ๐พ show all cached data
retro cache clear # ๐งน clear all cache
๐ง Configuration
$${\color{#AC3097}Config \space \color{#56565E}File}$$
the config file is located by default in ~/.retro/config.json
if not found, you can create it manually by
mkdir -p ~/.retro
touch ~/.retro/config.json
$${\color{#AC3097}Default \space \color{#56565E}Config}$$
{
"retro_path": "~/.retro/",
"path_ytldpl": "yt-dlp",
"path_ffmpeg": "ffmpeg",
"path_ffprobe": "ffprobe",
"search_timeout": 60000000000,
"theme": "pink",
"db_path": "~/.retro/retro.db",
"discord_rpc": false,
"log_file": "~/.retro/retro.log",
"server_port": "3131"
}
you can change the config manually, easy to understand and modify.
$${\color{#AC3097}Note \space \color{#56565E}that}$$
- โ ๏ธ if you change the config file, its recommended to restart the retro service.
with
systemctl --user restart retro
- โ ๏ธ the config file will override the default values.
- ๐ค please make sure to setup the autocompletion script to have a better experience with retro. see
retro completion
๐ Update
$$\color{#AC3097}Retro \space \color{#56565E}Update$$
to update retro to the latest version on github you can use the following command
retro update
๐ License
This project is licensed under the MIT License - see the LICENSE file for details