8000 GitHub - bloomingchad/pnimrp: ๐Ÿ“ป scalably stream your fav radios at the comfort of your terminal. no bloat allowed
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

๐Ÿ“ป scalably stream your fav radios at the comfort of your terminal. no bloat allowed

License

Notifications You must be signed in to change notification settings

bloomingchad/pnimrp

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

pnimrp Icon

โ™ชโ™ซ pnimrp - Poor Man's Radio Player in Nim โ™ซโ™ช

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.

Windows Debian AntiX
Ubuntu Termux
FreeBSD NetBSD
OpenIndiana
Haiku

๐ŸŽฅ demo

pnimrp demo

made with asciinema

๐ŸŒŸ key features

  • 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.

โฌ‡๏ธ installation

step 1: install mpv (might need development build/files)

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:

  1. get mpv and development files:

  2. extract both packages. the dev archive contains:

    • libmpv*.dll (name may vary slightly)
  3. after compiling pnimrp:

    • copy libmpv*.dll to the same directory as pnimrp.exe

macOS X:

  • Homebrew (Recommended): brew install mpv
  • MacPorts: sudo port install mpv

FreeBSD: sudo pkg install mpv

Termux (Android): pkg install mpv

step 2: install the nim compiler:

  • unix:
    curl https://nim-lang.org/choosenim/init.sh -sSf | sh

note this wouldnt work on termux, instead do Termux (Android): pkg install nim

step 3: install pnimrp:

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

(back to top)

๐ŸŽฎ controls

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

๐Ÿ“– documentation

for detailed usage instructions, see:

  • ๐Ÿ“„ doc/user.md: user guide.
  • ๐Ÿ“„ doc/installation.md: installation instructions.

๐Ÿค contributing

here is how you can help:

  1. submit pull requests: fix bugs you found or propose and add new functionality.

please read our Contributing Guidelines for more details.

๐Ÿ“œ license

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.

๐Ÿ™ credits

  • 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! โค๏ธ

๐ŸŽถ happy listening!

thank you for using pnimrp. please do share it with your minimalist friends

(back to top)

0