sick of opening chrome just to stream some internet radio? i made this little terminal radio player that's saved me tons of ram
with a collection of over 700 radio stations, curated and modifiable, you can play your favorite stations all from the comfort of your terminal
inspired by poor man's radio player, pnimrp aims to extend pmrp whilst keeping familiarity.
made with asciinema
- portable: works on unix and windows
- easy to use: simple intuitive interface
- curatable stations: edit json files to add or remove stations easily
- now playing: displays the currently playing song
- lightweight: minimal dependencies, fast and efficient
- customizable themes: easily switch between themes by editing
config.json
- checked links: links get checked automatically so you dont waste your time.
pnimrp uses mpv
for audio playback. install both the mpv
player and
its development files
Linux:
- Debian/Ubuntu:
sudo apt install mpv libmpv-dev
- Fedora/CentOS/RHEL:
sudo dnf install mpv mpv-devel
(may need RPM Fusion) - Arch Linux:
sudo pacman -S mpv
(includes development headers) - openSUSE:
sudo zypper install mpv libmpv-devel
- other distros: Use your package manager; search for "mpv" and a related "dev/devel/headers" package.
Windows:
-
get mpv and development files:
- download from:
- you'll need:
- the main
mpv-dev*
matching package (* means matching)
- the main
-
extract both packages. the
dev
archive contains:libmpv*.dll
(name may vary slightly)
-
after compiling
pnimrp
:- copy
libmpv*.dll
to the same directory aspnimrp.exe
- copy
macOS X:
- Homebrew (Recommended):
brew install mpv
- MacPorts:
sudo port install mpv
FreeBSD:
sudo pkg install mpv
Termux (Android):
pkg install mpv
- unix:
curl https://nim-lang.org/choosenim/init.sh -sSf | sh
note this wouldnt work on termux, instead do
Termux (Android):
pkg install nim
-
Windows: download the latest release from choosenim.
-
FreeBSD:
pkg install nim
-
other distros: follow the official nim installation guide.
nimble install pnimrp
or compile it manually:
nim c -d:release pnimrp
./pnimrp
want a simple build? (very minimal):
nim c -d:release -d:simple pnimrp
cant/dont want emojis?: add -d:noEmoji
want to use smaller bin size?: add -d:useJsmn
key | action |
---|---|
1-9, a-m | select menu options |
r | return to the previous menu |
q | quit the application |
p | pause/resume playback |
m | mute/unmute |
+ | increase volume |
- | decrease volume |
for detailed usage instructions, see:
- ๐ doc/user.md: user guide.
- ๐ doc/installation.md: installation instructions.
here is how you can help:
- submit pull requests: fix bugs you found or propose and add new functionality.
please read our Contributing Guidelines for more details.
pnimrp is primarily licensed under the Mozilla Public License 2.0 (MPL-2.0). see the LICENSE file for details.
however, the following component is licensed with their respective original licences:
-
illwill.nim: adapted from illwill, this file is used for non-blocking input handling and is licensed under the WTFPL.
-
jsmn.nim: See More jsmn.nim this file is under original licence which is MIT.
for more information about WTFPL, see: WTFPL License. the original license text is included in the file.
- pmrp: inspiration and initial codebase ๐ก
- libmpv: playback functionality
- c2nim: wrapping objects
- illwill: async input handling
- jsmn.nim: minimal json parser impl
- GPT-3.5 Claude-3.5-Sonnet: documentation and code improvements
- DeepSeek-V3: documentation and Code improvements ๐ฅฐ
- fmstream.org and others: for providing links
- asciinema: for being able to show HD demo ๐ฅ
- you: for using and supporting this project! โค๏ธ
thank you for using pnimrp. please do share it with your minimalist friends