npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

node-radio-mini

v0.0.4

Published

A terminal based radio streaming solution made entirely in Node.js

Downloads

18

Readme

Node.js radio mini

Description

This app is a radio streaming solution made entirely in Node.js. It features a terminal gui for the song queue, and an endpoint at which the songs are going to get streamed.

Purpose of the whole project was to have fun and experiment. Production ready radio server should use Shoutcast / Icecast or something similar.

Usage

When you clone this repository, go into the root and run npm link. This will make a node-radio-mini command available to be run from anywhere. Next you need to go into directory that contains music and run the command node-radio-mini.

> node-radio-mini

That command is going to read all mp3 files from current directory and display them on you favourite terminal, similarly like on the image below.

screenshot

There are four windows. 'Playlist' windows contains all the songs from you current directory. 'Queue' windows contains all queued up and ready to play songs. 'Now playing' windows is showing currently streamed song. 'Controls' window is just a helper for seeing available controls at that point of time.

First song is going to get automatically queued up and played. Song is streamed directly to your speakers, so you can have an idea what is currently playing. Songs are also streamed to the endpoint process.env.HOST:process.env.PORT/stream, or if you didn't set any env variables the default would be localhost:8080/stream. If you don't have any songs queued up, the last song will repeat replay.

This app is also serving single html page that will automatically connect to the streaming endpoint shown above. The page is served at localhost:8080. You can see how the page appears on the browser in the next screenshot:

screenshot

Commands

When the 'playlist' window is focused available commands are:

  • q - switch focus to 'queue' window
  • k - scroll up in the playlist
  • l - scroll down in the playlist
  • enter - enqueue selected song

When the 'queue' window is focused available commands are:

  • p - switch focus to 'playlist' window
  • k - scroll up in the queue
  • l - scroll down in the queue
  • d - dequeue selected song
  • a - move selected song up the queue
  • z - move selected song down the queue