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 🙏

© 2026 – Pkg Stats / Ryan Hefner

omx-interface

v1.2.2

Published

An interface for omxplayer through dbus

Readme

omx-interface (Node.js)

An interface between nodejs and the omxplayer via dbus.

Syntax (Do it yourself)

var omx = require('omx-interface');

var options = {
	audioOutput:'hdmi', 
	blackBackground:true, 
	disableKeys:true, 
	disableOnScreenDisplay:true
};

omx.open('test.mp4',options); //open file

omx.onProgress(function(track){ //subscribe for track updates (every second while not paused for now)
	console.log(track.position);
	console.log(track.duration);
});

omx.setPosition(60*5); //set position to 5 minutes into the movie

Syntax (Out of the box with web-socket remote)

var omx = require('omx-interface');
omx.init_remote({port:8000}); //streams a remote on localhost:8000

The "omx-interface" package comes with an optional remote for your mobile phone. In the remote app you can browse files and control the player over your local network. Unlike other OMX middleware, GET and SET methods are supported rather than just emulating keypresses. So the current time, duration and volume are available!

Since the remote is more of a capability showcase it is optional and has to be initiated before use. calling node example.js on your pi will showcase this.

The remote can be located from any browser on the local network. The webpage can be added to the home screen for a more app like feeling. The remote address is logged to the console after initialization.

Options

general options

audioOutput: 'hdmi' | 'local' | 'both'

blackBackground: boolean, true by default

Communication options

disableKeys: boolean, false by default (true when using remote)

disableOnScreenDisplay: boolean, false by default (true when using remote)

Subtitle options

disableGhostbox: boolean, false by default

subtitlePath: string, '' or false disables subtitles as is done by default

Properties

Get duration of current track/movie in seconds

omx.getCurrentDuration();

Get position of current track/movie in seconds

omx.getCurrentPosition();

This function can be called many times per second without bothering the DBus since the position is extrapolated from the short term cached paying status.

Get volume as fraction of max (0.0 - 1.0)

omx.getCurrentVolume();

Methods

Jump to point in file/seek relative to current position (-Inf to +Inf)

omx.seek(seconds);

Jump to point in file/seek relative to start point (absolute)

omx.setPosition(seconds);

Stop playing

omx.stop();

Quit omxplayer

omx.quit();

Pause omxplayer

omx.pause();

Note: Unlike hitting the spacebar, this method pauses only when playing and remains paused when allready paused.

Resume playing

omx.play();

Note: Unlike hitting the spacebar, this method starts playing only when paused and remains playing when allready playing.

Toggle pause/play

omx.togglePlay();

Note: Same function as hitting spacebar in omxplayer.

Volume up

omx.volumeUp();

Note: Same function as "+" key in omxplayer.

Volume down

omx.volumeDown();

Note: Same function as "-" key in omxplayer.

Set volume to a fraction of the max volume (0.0 - 1.0)

omx.setVolume(vol);