
Security News
curl Shuts Down Bug Bounty Program After Flood of AI Slop Reports
A surge of AI-generated vulnerability reports has pushed open source maintainers to rethink bug bounties and tighten security disclosure processes.
raop-rtsp-server
Advanced tools
An attempt to create a RAOP (AirTunes) server in Node.js.
This project is highly work-in-progress - use it at your own risk!
Known compatibility issues:
If using this module to output raw PCM audio to STDOUT, I've found the following useful:
I've tried quite a few different audio players but I've only managed to get sox to play back to PCM audio.
Install via Homebrew:
brew install sox
FFmpeg should also be able to parse PCM audio if you like that program better.
For standalone usage, run:
npm install --global raop-rtsp-server
For programmatic usage, run:
npm install raop-rtsp-server
If the speaker module can compile on your system, you should just be
able to start the server without any arguments:
raop-rtsp-server
If you'd rather pipe the PCM audio to another player, you can so so
using the --stdout argument:
raop-rtsp-server --stdout | sox -traw -L -c2 -r44100 -b16 -e signed-integer - -tcoreaudio
For sox to be able to interpret the raw ALAC audio data, you need to
help it a little. These are the command line arguments given in the
example above:
-t raw - Set input type to raw. This means that sox shouldn't
expect any headers in the data - just raw audio-L - The audio data is formatted using native byte ordering, which
is little endian on Intel CPU's. Your system might use -B for big
endian-c 2 - Use 2 audio channels-r 44100 - Use a 44.1khz sample rate-b 16 - Use a bit-depth of 16-e signed-integer - The audio encoding type- - Set input source to STDIN-t coreaudio - Set output type to coreaudio (your system might
differ, but this must always come after your input source)To run in debug mode, use the DEBUG environment variable:
DEBUG=* raop-rtsp-server
The module can also be access programmatically:
var server = require('raop-rtsp-server')
server.sessions.on('new', function (session) {
session.on('data', function (chunk) {
console.log('received %d audio bytes on session %s', chunk.length, session.id)
})
})
server.start({ name: 'NodeTunes' })
The server.start() function takes an optional options object:
name - The name that the RAOP server (this will be shown on your
iDevices). Defaults to raop-rtsp-serverport - The port that the server should listen on. Defaults to 5000The session object emitted by the new event is a readable stream and
will output raw PCM audio data.
volume - A float between 0 and 1 representing the current volume
level (0 being muted and 1 being full volume)volumeDb - A float value representing the audio attenuation in dB.
It ranges from -30 (lowest) to 0 (highest). A special number
-144 represents mute.Besides the normal readable stream API, the session also emits the following events:
volumeEmitted when ever the client changes the volume. The value emitted is
the volume as a float value representing the audio attenuation in dB. It
ranges from -30 (lowest) to 0 (highest). A special number -144
represents mute.
MIT
FAQs
A simple RAOP server
The npm package raop-rtsp-server receives a total of 0 weekly downloads. As such, raop-rtsp-server popularity was classified as not popular.
We found that raop-rtsp-server demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Security News
A surge of AI-generated vulnerability reports has pushed open source maintainers to rethink bug bounties and tighten security disclosure processes.

Product
Scan results now load faster and remain consistent over time, with stable URLs and on-demand rescans for fresh security data.

Product
Socket's new Alert Details page is designed to surface more context, with a clearer layout, reachability dependency chains, and structured review.