03/07/2026 Added widescreen as default output, randomized music, and expand guide data compatiability for other programs like xTeVe, Telly, Threadfin, Plex, Jellyfin ect.
Please update/install your WS4KP container to use the following variable:
WSQS_settings_wide_checkbox=true
Pull ws4kp container.
docker pull ghcr.io/netbymatt/ws4kp:latestRun ws4kp container.
docker run -d \
--name ws4kp \
--restart unless-stopped \
-p 9090:8080 \
-e WSQS_settings_wide_checkbox=true \
ghcr.io/netbymatt/ws4kp:latestPlease note that this variable goes in the WS4KP container not this ws4channels container.*
Use the :latest tag for these changes.
A Dockerized Node.js application to stream WeatherStar 4000 data into Channels DVR using Puppeteer and FFmpeg.
- 850MB availabe RAM
- Docker installed
- WS4KP running and installed with the WSQS_settings_wide_checkbox=true variable. https://github.com/netbymatt/ws4kp
Build and run the container:
Step 1: Pull the Docker Image
docker pull ghcr.io/rice9797/ws4channels:latestStep 2: Run the Container
Next, run the container using the following command. This will start the container in detached mode and set the required environment variables.
docker run -d \
--name ws4channels \
--restart unless-stopped \
--memory="1096m" \
--cpus="1.0" \
-p 9798:9798 \
-e ZIP_CODE=your_zip_code \
-e WS4KP_HOST=ws4kp_host \
-e WS4KP_PORT=ws4kp_port \
http://ghcr.io/rice9797/ws4channels:latestExample:
--memory="1096m" --cpus="1.0" -p 9798:9798 -e ZIP_CODE=63101 -e WS4KP_PORT=8080 -e WS4KP_HOST=192.168.1.152
-1096m=the amount of maximum ram the container can use in mb
-1.0= maximum amount of cpu cores the container can use. Default is 1 core
-63101= enter your zip code
-WS4KP_PORT= this is the port you set up WeatherStar4000 container with if you didn’t choose another port that container defaults to 8080.
-WS4KP_HOST= the ip of the machine that WeatherStar4000 container runs on.
Environment Variables
• ZIP_CODE: Your ZIP code (default: 90210)
• WS4KP_HOST: Host running WS4KP (default: localhost)
• WS4KP_PORT: Port for WS4KP (default: 8080)
• --cpus: CPU limit (default: 1.0)
• --memory: RAM limit in MB (default: 1096)
• FRAME_RATE: Stream frame rate (default: 10)
• CHANNEL_NUMBER: Sets the channel number (default: 275)
• SHUFFLE_MUSIC: Randomize the order in which detected mp3s are played (default: false)
• PERMALINK_URL: Pass configuration parameters via permalink generated from ws4kp
Update!! Currently hardware encoding and Multi Arch are not supported. I'm leaving these instructions up in case I can get them working or if those images from the past are still working for others.
This project supports hardware-accelerated video encoding using ffmpeg. To enable it, override the VIDEO_OPTIONS environment variable when running the container.
--device=/dev/dri \
-e VIDEO_OPTIONS="-c:v h264_qsv -b:v 1000k"--gpus all \
-e VIDEO_OPTIONS="-c:v h264_nvenc -b:v 1000k"Update!! Currently hardware encoding and Multi Arch are not supported.
Docker containers must have access to GPU devices (--gpus all or --device=/dev/dri).
M3U Playlist:
http://<ip.of.pc.running.ws4channels>:9798/playlist.m3u
Example: http://192.168.1.131:9798/playlist.m3u In Channels DVR, use MPEG-TS format with this URL.
Guide Data XMLTV Guide:
http://<ip.of.pc.running.ws4channels>:9798/guide.xml
Example: http://192.168.1.131:9798/guide.xml
Latest additions 6/21/25 Update:
-
The application plays MP3 files from the
musicfolder in the project root. -
Default tracks included:
- 01 Weatherscan Track 26.mp3
- 02 Weatherscan Track 3.mp3
- 03 Tropical Breeze.mp3
- 04 Late Nite Cafe.mp3
- 05 Care Free.mp3
- 06 Weatherscan Track 14.mp3
- 07 Weatherscan Track 18.mp3
-
To customize, add your own MP3 files to the
musicfolder. Only.mp3files are included in the stream. -
If no MP3s are found, the default tracks are used.
-
After adding your mp3 tracks to the music folder restart the container so the app will pick up the new music.
Prior Updates:
-Includes seven looping jazz tracks as background music.
-Provides an XMLTV guide with hourly “Local Weather” entries.
-Added guide logo
-Optimized cropping for a clean video feed by removing white bars.
-Changed default cpu and memory limits to 1 cpu core and 1gb ram. Adjust if your system requires.
About:
A nostalgic weather streaming solution for Channels DVR, built with Node.js, Puppeteer, and FFmpeg.