Change Log

Change Log

Updates about obplayer and observer development, enhancements to CAP Alerting, new features, security patches and bug fixes.

Contact us if you have a specific requirement or feature that you would like to become a sponsor.


Release v5.3.2 (April 1, 2024)


🔹 new language field now using ISO-639-3 languages and showing most used languages at the top
🔹 add support for module update files
🔹 improved OB CLI tool output and added functionality (list and run updates, run cron, change user password)
🔹 config file setting for custom media verify command


🔸 improved manual installation instructions
🔸 switch back from libav-tools to ffmpeg by default
🔸 removed “results per page” setting (no longer used)
🔸 support for automatic routes generation from controller code
🔸 support for using API v2 from client-side javascript code
🔸 begin switchover to single-file-components for UI code
🔸 other code cleanup and refactoring


🔺 removed outdated installer
🔺 fixes necessary for newer PHP versions (8.1+)
🔺 numerous other fixes and quality of life improvements

Source code (tar.gz)


Release v5.3.0 (April 13, 2024)


🔹Pipewire support with Interpipe
🔹Simplify alert pipeline, add resample to prevent issues with different sample rates (fixes missing alert message audio)
🔹Alert scroll refactor, add scroll speed setting, complete alert crawl before removing
🔹Add F11 fullscreen toggle


🔸Better log filters in http admin
🔸Fade-in after voice-track, play scheduled voice-track
🔸Interpipe timestamp setting for icecast/rtmp
🔸Add option to reload http admin after 15 minutes of inactivity (resolves issue with some browsers resource leak)


🔺Pre-decode audio (workaround for stutter issue)
🔺Interpipe RTP timestamp issue
🔺Normalize audio caps, provide silent input with main on/off functions
🔺Fix attention signal volume, move temporary attention signal to ~/.openbroadcaster
🔺Fix maintenance mode enable/disable in web admin

Source code (tar.gz)


Release v5.3.1 (Nov 18, 2022)

Latest version receiving new features. This version breaks compatibility with modules due to code/API refactoring. For production environments, consider latest v5.2 release until modules are updated.

Source code (zip)

Source code (tar.gz)


small_blue_diamond API v2 using more modern RESTful implementation (alpha)
small_blue_diamond begin building automated testing via CodeCeption (alpha)
small_blue_diamond OB CLI tool (alpha) with “check install” function


small_orange_diamond include and configure PHP Code Sniffer (phpcs) / PHP Code Beautifier (phpcbf)
small_orange_diamond code refactoring for near-PSR12 adherence (a few issues remain to be resolved later)
small_orange_diamond code and database refactoring for naming consistency
small_orange_diamond include document generator in core code (tools directory)
small_orange_diamond update document generator to also define controller/method routes for API v2
small_orange_diamond begin migration to composer and npm to better manage dependencies
small_orange_diamond rename “emergency” to “alert” to better reflect feature usage
small_orange_diamond revise generalized storage method for UI settings
small_orange_diamond remove obsolete apitest tool
small_orange_diamond remove some PHP code maintaining database integrity and rely on MySQL foriegn key constaints instead
small_orange_diamond improved look/feel for documentation


small_red_triangle fix bug related to show deletion
small_red_triangle fix bug related to media “where used” information

Release v5.3.0

This version breaks compatibility with modules due to code/API refactoring. For production environments, consider latest v5.2 release until modules are updated.


small_blue_diamond update welcome screen design
small_blue_diamond when update(s) required, display notice and prevent login


small_orange_diamond update PHPMailer dependency to latest version
small_orange_diamond begin using composer for dependencies
small_orange_diamond style code tweak (remove old css –prefix, no longer required)
small_orange_diamond update “themeupdate” tool to use latest dart-sass version

Release v5.2.0

Latest feature-frozen release. Current best option for production environments. This version maintains compatibility with modules. Any incompatibility with OB-managed modules let us know so we can fix.


small_orange_diamond updated versioning and releases system


small_red_triangle small tweaks and fixes

Server Ver 5.1.1 (November 16, 2021)

– Update font awesome

– Add thumbnail option to sidebar media search

– Add number (integer) support to custom metadata (allows greater than / less than comparisons)

– Hide hidden custom metadata from advanced search options

– Sync script performance improvements and rate limit checking

– Updates file for time slots/schedule refactor

– Update upload script to allow use of app keys (requires media/save permission)

– Provide thumbnail (cover art) access to player.

– Add custom metadata and thumbnail to media details page

– Update sync script to get cover art

– Hide disabled core metadata from search results in sidebar. fix bug with genre show/hide broken in details.

– Media details hide unused (disabled) core metadata

– Add hidden metadata field for programmatic use

– Successfully saves subsonic imports to media table; also saves all returned metadata from API to metadata table.

– Add optional external SMTP server.

– Subsonic import tool can now download media files and put them in uploads directory and table with correct media info.

– Added new import script for subsonic media. Currently can use the API to iterate over all artists->albums->media and download media files.

– Updated times lots model to make all fields show up properly when viewing/editing, time slots can also be edited and deleted again. Fixed collision check for time slots.

– Fixed show edit window to make set duration, recurring interval, start, and end times show up properly.

– Prevent player sync xml from outputting empty shows (useless, potentially confuses player).

– Updated day parting model to make use of obfhelper calls instead of manually checking .

– Only get playlist/media ‘where used’ info when requested (performance issue).

– Improve show generation performance.

– Fix dynamic selection name and duration in playlist details.

– Improve sync performance by limiting playlist resolve to max duration for default playlist.

– Get show start date time object passed to playlist resolve for day parting.

– Finish day parting management ui

– Cross fade max to include next track duration also

– Add some limitations to cross fade to prevent unexpected behavior (no cross fade duration longer than track duration, no cross fade last track or if next track not audio).

– Dynamic selection cross fade.

– Improved date, time, and date time input fields.

– Add basic cross fade support to audio properties in playlist.

– Rename device to player in the code.

– Remove public API, replaced with API keys.

– Added login sessions table so users can be logged in in multiple places at once. Added update script to update database and move any previous sessions to new table.

– Added new documentation pages folder. Added documentation with examples for using app keys from remote locations.

– Finished documentation for all core models.

– Add support for custom playlist item types.

– Retrieving data about single show now works with new shows table, both recurring and non-recurring, still missing some of the details.

– Added new shows tables to test environment, using date time instead of time stamps, and merging singular and recurring shows into a single table.

– Updated models to use new array call scheme in API and ui models. Added obfhelper functions for required and optional arguments in models (saves a lot of duplicate lines).

– Replaced loading models with calling them directly in the models themselves. Fixed doc heading for day parting model.

– Improve show generation performance.

– Bug fixes related to remote schedule fix, add loading notify text to player and media inputs.

– Finish day parting restrictions.

– Day parting work, add tabs ui.

– Replace remaining date/time fields with new input widgets.

– Update remote.php xml to include full media duration (instead of subtracting cross fade). next item offset still correct start time given cross fade.

– Changes to update script to no longer rely on admin login.

– Added app key based authorization and API requests. Tested to make sure permissions are working properly, though some edge cases still need checking.

– Added app key management to individual users with the ‘manage app keys’ permission.

– Added documentation to rest of ob core classes: database, load, model, module, and user.

Player Ver 5.1.1 (November 16, 2021)

– Added error handling, and logging to the audio log uploader. A sample rate issue was also fixed.

– Switched from username/password for upload to app keys.

– Added settings to the internal audio logging. Users can now set OGG Vorbis quality, number of channels, and sample rate used.

– Added support for using a Icecast source username other than the default one.

– Fixed a issue where the la playlist buttons wasn’t loading.

– Fixed a issue with the alert trigger for Icecast stream one. After applying this fix you should be able to have Icecast stream one activate when a alert is being aired.

– Updated sent time for the test alerts.

– Updated test alerts to all use the sender obplayer@localhost.

– Added the Joey AWS Polly voice to the list.

– Fixed a issue with AWS Polly not processing the audio. This was caused by a missing SSML closing tag.

– Changed the timing of alerts being read by AWS Polly.

– Moved the simple bilingual to be directly below the simple test option.

– Updated sync timeout to 300 seconds.

– Added a maintenance mode to the code.

– Added more video resolutions to the player.

– Added more logging for the metadata updater.

– Fixed issue with the TOS not sizing in the modal window.

– Code clean up, added station live count in the la area when remote station override is enabled.

– Added code to display album art in la.

– Fixed the audio logging upload code.

– Moved over the http port CLI flag from the WIP branch.

– Removed TOS text output in the settings file. Since this text is multi line it can’t be include in the settings file.

– Removed long pauses from alert message TTS audio.

– Fixed a alert processing issue, and added +3db of volume to the AWS Polly TTS output.

– Added new settings for title streaming to the Icecast server.

– Fixed issue with using python 3.2+ removing cgi.escape. html.escape is now used in its place.

– Fixed repeating error in logs if the remote station override module can’t connect to Icecast.

5.1.1 CAP Emergency Player (November 16, 2021)

– Auto complete SGC fields by community name

– Bilingual AWS Polly AI Voices

– Embedded dashboard media player to monitor output remotely within browser

– Improved bilingual self generated test messages

– Real time log level > Alerts only

– Cancel Alerts

– Separate alert logs >Download

– Show alert count history, by type:  Advisory, Broadcast Intrusive and Self Generated Tests.  >Alerts>Advance

5.1 (June 21, 2020)

Server Ver 5.1.0

– add support for custom playlist item types

– update copyright/license data for release

– add metadata modal window to stream widget

– left/right arrows on stream widget modal

– audio icon fallback for stream widget if no album art

– add pagination, load more and infinite scroll support to stream widget

– add info about using ffmpeg instead of libav-tools/avconv

– stream widget add album art to videojs player when playing audio

– improve ui code for opendyslexic font use (resolves issue with fontawesome copy icon not visible when editing media)

– sidebar search handling and other UI improvements

– hide media add/edit copy to all buttons if only one form

– change media add/edit copy to all buttons to icons

– final improvements to tag field for now (select box drop-down for advanced search

– much improved tag input field including browse tags if input empty

– make scroll bars nicer

– tag meta field search suggestions

– theme tweaks move scss files outside of theme dir.

– improve status/updates UI to make update status and required updates more clear

– upgrade to jquery 3 add jquery migrate for compatibility. fix audio player format select.

– don’t reply on external dependencies (in case no/limited internet)

– add ID to category/genre edit which is needed for stream embed code

– add dynamic content field default/hidden option

– stream tool now generates thumbnails. update code to store stream/thumbnail version in media table –instead of separate table.

– OB now automatically translates using language set in user settings.

– Updated account settings to pull languages from translations table.

– improve password_change tool

– Updated module manager code to use obWidget instead of alerts and to remind users to refresh the page after (un)install.

– add some settings for media uploads (verify media filesize limit). stream api development.

– Moved ID3 functionality to media model.

– Fix to user permission check to allow for running scripts from command-line.

– fix last connect icon calculation error

– Added sortable by ID or name on player manager.

– Players ordered by name.

– Added alert icons when a connection to player manager has been more than an hour ago

– Added nice icons for sidebar media type.

Player Ver 5.1.0

– Fixed repeating error in logs if the remote station override module can’t connect to Icecast.

– Fixed issue with alert logs being formatted with the wrong color under debug mode.

– Added backend code to support station override count.

– Added local override stream to player modal.

– Added station override count in the LA and pushed other part of fix for sync issues.

– Fixed issue with off air logging causing crash if SDR software not installed.

– Fixed news feed loading if statement.

– Fixed a bug where if alerts was disabled the http server would error out.

– Moved log formatting into the Python code from the JS code to speed up processing.

– Added if statement to hide normal audio control when the pulse audio output is on.

– Added alerts as a log type to view in the log viewer.

– Changed the alert counter to log as alerts.

– Added the news feed override feature.

– Added more info link in the admin tab.

– Add disclaimer to experimental feature settings under the admin tab.

– Changed audio stream players To be in a modal.

– Added additional indigenous languages for feature support.

– Added hidden view for STL streaming settings.

– Added setting for hide/show SDR streaming/logging settings.

– Added the TOU ui, and backend changes to the player.

New Modules

Documentation for all modules is at

Alert Languages

– Add language alerts and phrases to servers for automatic ingest into players.

Bulk Import

– Bulk Import enables importing large libraries in a batch retaining metadata.

– Create multiple filters and Watch folders


– Add eCommerce functionality, providing monetary incentive for users to complete media creation and management tasks.

Task Manager

– Assign users and groups to tasks

Terms of Use

– On first login, user must accept TOU, created with an inline editor.  If TOU changes, user will have to agree to revised terms on next login.


– Add language translation to server framework

Version 5.0 (August 1 2019) Indigenous Language Alerting

OBPlayer Ver 5.0.0-20190801

– Added code to support Indigenous alerts

– Fixed bug preventing alerts to play

– Added Indigenous support to get_media_info

– Updated code to fix issues downloading alert data

– Added support for sync Indigenous alert audio.

– Added Indigenous folder build and alert table data

– Updated the generate_audio method

– Updated write_Indigenous_file method

– Added Feed Class and changed to Indigenous code

– Added US locations to drop down

– Check for US/CA alert and play the correct attention tone

– Added slider to control audio output volume.

– Added drop down for Indigenous languages.

– Added NWS Test Alert to the test alerts drop down for testing US alerts.

– Added a multiple info block alert for testing.

– Added AWS id, key, and region settings to admin area.

– Added support for AWS Polly voices and added a multiple info block alert to the test alert dropdown.

– Added drop-down for alert location type

– Added locations drop-down menu in alert tab

OBServer Ver 5.0.0-20190801

– move CAP-CP event grabber js snippet to tools directory since it is unrelated to OB code

– Added button for removing individual alerts. Slightly increased height of droppable fields for better usability.

– Added update/close buttons on top of view language page. Added remote.php functionality for loading all alerts for all languages.

– Added error-checking in cases where media items have been removed but are still in alerts database.

– Loading language now displays all previously assigned media alerts. Language overview shows number of alerts assigned to each language.

– Filled out JSON object for CAP-CP alert events and saved scripts in case event list gets updated.

– Added functionality for assigning media items to language alerts.

– Added minimal view for loading and dropping individual alerts.

– Added single language alert view. Started json file to include all CAP-CP events from reference.

– Added functionality for removing language from alerts overview.

– Support for adding new languages to alerts module. Added checks for unique language code. – Structured table for showing languages in module main view. Modified module install code to account for structure changes.

– add filesize / filehash to sync data

– add media type and format to alert info in remote.php

Version 5.0 (July 4 2018)

Sound Exchange Reporting Module and Meta Data Module

OBPlayer Ver 5.0.0-20180410

– added silence detection to line-in to play audio from board when signal detected

– added custom In-Camera mode message when meeting is in progress and audio from board is muted


– Fixed issue with Pelmorex servers rejecting connections without a browser User-Agent

OBServer Ver 5.0.0-20180628

– SX reporting module creates properly formatted XLSX royalty reports for digital submission to Sound Exchange

– Metadata module allows customized fields when uploading media.

– Custom Metadata Fields integrate with advanced search to create dynamic segments

– add additional fields option for royalty reporting

– use avconv to make sure audio/video uploads are properly readable (valid, not DRM encrypted, etc)

–  fix download problem where certain audio/video file types were resulting in an early exit

– remember last selected device for schedule, schedule permissions, and priority broadcasts

–  add default option to media metadata

– add custom metadata validation for bool and select fields

– switch dynamic selection default to no

– artist or title must be something other than unknown

– media_id = 0 in playlog should only be reported for fallback media

– option to set defaults for genres and categories

– remember user list sort on a per-user basis

– fix problem where my search edit was not properly initializing select fields

Version 5.0 (January 21 2018)

Rewrite of Player (Converted all references to Python3) Updated Server to support PHP7

OBPlayer Ver 5.0


– Support for CLFG Alerting 1.2

– Improved text formatting of alert messages under Python3

– Fix issue with French alert text containing html identifiers, like & pos

– Fixed bug where alert overlay was not playing on top of video

– Fixed test alert to have broadcast immediately flag set

– Fixed issue with RS232 alert trigger causing a blip on startup


– YouTube Live Channel streaming support

– Icecast video streaming

– Intersink option to streamer module. Intersink Mode is simple setup if you don’t need additional mixing to send direct from player (Gstreamer to Icecast)

– Intersink audio streaming mode supports bitrates 160 – 320 KB

– Fixed bug in Icecast streamer which caused Mono output

– Added queue to Icecast streamer pipeline

– Added Gstreamer error logging to Icecast pipeline

– Fixed Icecast not-negotiated error and added pipeline names

– Better support for streamer to work with jack. Includes audioconvert element in the pipeline to match audio formats, since jack will only output float32 formatted audio.

Audio over IP

– RTP/Livewire/Ravenna

– RTSP server to streamer module

– RTSP and SDP support, and improved RTP/Local Streamer stability

– Added aoipin, rtpin modules, RTSP client and server support

– Changed RTSP discovery setting name


– Pulse Device has controls on the dashboard to adjust input and output levels.

– Setting to purge the audio logs after 90 days. It’s disabled by default so that users don’t unexpectedly lose their audio logs.

– Audio logger was strictly using pulse to record audio. Now uses the same mode as the audio_out_mode setting to match.

– Fixed invalid format bug in mp3s uploads with png cover images

– Added no pulse audio sources/sinks present message

– Fixed bug that crashed player when pulse audio daemon not available

– Added default password error and password retype field

– can’t add users with blank passwords

– Added server version check

– Fixed issue in LA with seeking/changing tracks while paused

– LA will now automatically unpause whenever seeking or changing tracks

– Moved xrandr resolution switcher to its own module

– Automatically detects video out capabilities of video card up to 1080

– Fixed erroneous use of xrange builtin

– Added map icons

– Switched player to use uri in requests

– Moved leaflet map assets to extras

– Fixed SSL support

– Fixed pulse controls when the property is unset

–  Moved data.db reset code from loop script to python code

– Reduced the restart timeout to 6 seconds

– Pulse Audio volume controls in dashboard; (must install pulsectl through pip3)

– Fixed bug in dashboard when pulse selected but pulsectl not installed

– Mute to pulse controls and fixed bug with source audio controls

– Fixed issue obplayer #21, error saving sync tab when local_media is not blank

– Replaced some printed exceptions with simple error messages

OBServer Ver 5.0

– Support for Debian 9, PHP7

– Added password_change.php tool, which reads config.php and modifies db

– Updated dependencies and apache config in installer script

– Fix for mysql strict mode and shorttags.ini

– Limit the id3 data we return back to the browser to prevent issues with encoding/other problems (maybe resulting from thumbnail embedded in metadata)

– Added last IP to player manager display

– Accessibility – Display media sidebar left or right

– Added 60+ FN & Inuit Languages

Version 4.1.2-20160903 (September 2016)

– Included recent updates to the CLFG that include reading out info from description field

– Download local audio logs and player application logs from Dashboard status page

– Updates can be done through dashboard. To receive updates, from the Player dashboard >Check for updates>Apply>Restart player

– Fixed condition where Player will keep settings for Remote sync mode

– Separated out Inputs and Outputs into separate menu tabs

– Included a global reset to defaults

– Player reports version back to server

Version 4.1.2 (March 2016)

– Language demos now enabled by default

– Podcast assembler duration, podcast download auto update podcast track list

– Optimizations in code converts all tables to InnoDB. To prevent table locking

– Support for images contained within an alert issued by NAAD.

– new test alert that contains audio and an image

– Import and export settings feature to the new admin tab

– Unicode errors fixes

– Adds a logo to the dashboard.

– Added html template engine

– Added string translations to dashboard

– Added setting for dashboard language to the HTTP tab

– Changed dashboard colours to logo OB Blue

– Alert purge log entries are now ‘debug’ level

– Sync_freq_emerg renamed to sync_freq_priority

– Sync_freq_log renamed to sync_freq_playlog

– RS-232 trigger now defaults to /dev/ttyS0, and led sign defaults to /dev/ttyS1

– Removed passwords from export file

– Added alert file purge, maskable tabs, and python3 support

– Added import/export of settings and fixed unicode error with alerts

– Audio logging feature will log the audio for regulatory purposes. Hard coded to use Pulse Audio as the input, and it saves the audio as 22050Hz mono in .ogg format. Each hour, it will start a new audio file. These files are saved in ~/.open broadcaster/audiologs.

– Add names to the pulse devices. Set each device to ‘pulse’ instead of ‘auto’

– New map tab in player, select GPS coordinates on map. This puts station icon on servers with mapping module installed

– Emergency Tab. Added and rearranged advanced settings for settings that are rarely used to reduce clutter and make the test alerting tool more focused along the top of page

– Ability to turn on and off mapping notifications with check box

– Read only mode account allows running full screen and restart the player. Can’t save, or inject or cancel alerts

– Alerts detail popup. Click on the headline of an alert on the alerts tab for a pop up description

– Red error message in the dashboard on the status or alerts page when the server isn’t accessible

– Added line in support for Satellite source switching

– Added exception logging

– Bubble Help over emergency tabs

– Created an Advanced menu tab in Emergency to make less cluttered

– Improved dashboard, added real time logs, media summary, and audio output level meter

– Show Friendly Device Name in Browser Tab

– Fallback player will now search all subdirs in the fallback media player directory can have separate dir for audio, Image and video media.

– Updated the logging programs in the tools directory to use gstreamer 1.0

– added Live output recording automatic recording of output audio, and remove recordings after 90 days. Automatic recording on a per-show basis

OBPlayer to ICEcast Streaming:

– add “Icecast” audio output option to audio/visualization tab of OBPlayer

– additional ip/port and password options when direct streaming option is selected

– Publicly List Icecast Stream

– Icecast Stream Name, Description, Icecast URL

– Added a streaming tab to the dashboard, along with the various streaming

– Added info settings to create Icecast mount point.

– Streamer module if enabled, when the player starts, it will start that and send to Icecast with extended information.

LIVE Assist Interface

– Rounded the corners of the buttons in the button area.

– Added next/previous buttons to the live assist

– New streaming controls. << >> button at the bottom right will show/hide the streaming microphone controls with volume meters.

– Added VU meters to the Live Assist interface. One is in the lower left corner, which is the same levels shown on the status page of the player dashboard. Shows data coming out of the audio pipeline. Added one below the browser microphone controls for the microphone data.

– Local Microphone Access. HTML5 browser asks to allow access to the microphone. Firefox will ask what device you’d like to use as the input. Chrome clicking on the camera icon in the address bar on the right, it will give you a drop down menu of what devices you can use as input.

– Works with 44100 and PCM selected. A-law implemented with 22050 or 11025. Microphone works at the lower sample rates. Using 44100 + PCM, takes a lot of bandwidth and browser resources.

– A-law encoding to web audio stream (compresses audio signal by half, and the lower sample rate compresses it by half again)

– Options at the top control the audio streaming to and from the browser. Select 1) only stream the microphone data from the browser to the player 2) only stream the audio output from the player to the browser 3) stream both. Monitor audio will be up to a second delayed.

Live Assist Source Switching:

– added button to LA to turn streaming on/off

– added button to LA to switch between mic / line in / player output

Live Assist – Live Event Broadcasting:

– capture local device audio and send it to OBPlayer to broadcast

RS232 GPIO Trigger

– When enabled and an alert cycle starts, the serial port will be opened and the DTR line will be set. After the alert cycle has completed, the DTR line will be cleared and the serial port will be closed. When DTR is set, it will output a positive voltage, and when cleared, it will output a negative voltage.

– “Trigger RS-232 DTR on Alerts” checkbox, when checked, will show the “RS-232 Device Filename” option. Device filename should be /dev/ttyS0, or /dev/ttyUSB0 if using a USB-to-Serial adaptor.

– “Trigger ICEcast Stream on Alerts” setting will start and stop the ICEcast streamer module (in the streaming tab) the same as the serial port. In addition to this setting, you must also uncheck the “Play Stream on Startup” option on the streaming tab, or else the streamer will start playing when obplayer starts.

– “Lead-In Delay (in seconds)”. Number of seconds of silence that will be inserted at the beginning of each alert cycle before the first alert starts playing, but after the DTR/Icecast stream notifies that an alert cycle has started. Default is 1 second. Setting this to 5 or so seconds will give time for buffering to occur, need to use trial and error to find the ideal value for this. “Lead-Out Delay (in seconds)” setting, adds a pause to the end of the alert cycle to give time for the buffers to empty before the stream disappears.

– New dependency package ‘python-serial’ in order to use the RS-232 feature.

– Direct RS-232 ports on computers these days are rare, but USB-to-Serial adapters also work with this code.

– Added initial deassertion of serial DTR trigger on startup

– Added error messages for alert RS232 trigger

– Added alert lead-out time setting

– Added alert cycle triggers for RS-232 DTR and Icecast streamer

PEX – Module

– Valid authentication string (api-key) required to access OB from the API

– Media download link (image/alt text) via API

– Download counts (by program/series/episode) via API

– List of recent uploads via API

– Free-form theme keywords (tags) for simple, non-hierarchical categorization (searchable)

– Ability to aggregate media as program/series/episode (~ album/side/track)

– Additional metadata fields and logo/image (recording date, recording location, topicality, credits, track list)

– PAL (Parental Advisory Label) for media content

– Interactive MAPL tool for CanCon track list creation

LED Sign Support

– Single line Alpha Protocol scrolling sign support

– Hooks up with a single 50′ data cable and AC power.

– Standalone alert player displays normal text, time and date status is Green, Moderate CAP advisories come across as Amber. Broadcast Intrusive CAP Messages, immediately display on the sign in Red.

– When used as part of a radio playout box, current Song Title, Artist, Show and Description scroll in Multi Colour rainbow effect.

– Emergency messages always take priority.

Priority Barix signaling

– OBPlayer will create an on demand Icecast mount point when an alert cycle starts.

– Setting on the audio/visual tab to disable the test signal. In order to make the priority stream work, so that OBPlayer just outputs the alerts and nothing else, you have to disable the scheduler, fallback player, audio in, and the test signal

Version 4.1.0 (July 2014)


– Ad Manager module to create time based campaigns that auto archive.

– UI Contributor Module to manage a basic interface for contributors less clutter.

– Dynamic Selection allows playing all contents in a loop.

– Wav and MP4 Audio File Support.


– System Update Script and upgrade workflow

– Parent\Child in Devices to clone child schedules, media to parent

– OBPlayer > Clear Cache

Stability and Bug Fixes

– server js tweaks (calendar)

– server previewing/transcoding improvements

– server UI tweaks (media/playlist search, media type column)

– safari support (preview function)

– improved module support for JS in server component (hook/callback system in JS framework)

– upload system revamp using custom code (cleans up code considerably)

– drag/drop files to upload (Chrome)

– OBPlayer tweaks (cleaning out old show data)

– OBPlayer improved video playing support

– add slow SQL logging feature (for debugging purposes)

– update Ob2Ob to handle revised upload system

– add automatic table optimization system in cron


Previously referred as “Remote Application”

Re-factored and optimized for efficiency with a touch screen controller that runs on Mobile HTML5.  Reduces resources needed to run app by making operation headless requiring no GUI. Headless remote acts as a client on server to create a source mount point on ICEcast2 media servers. Provisioning and deployment all from CLI not requiring a desktop.

– Touch screen interface, to run live radio shows including a button box player

– LIVE ASSIST MODE Added a menu tab to enable this interface on http. <IP>:23456

– LA allows creating PL of jingles that are turned into columns of hot buttons on OBPlayer

– LA PL and Media are created and scheduled on OBServer

– All menus and configuration are now done 100% via http admin

– Improved logging to obremote.log including a view from menu tabs in http admin

– Support for JACK and PULSE streaming

– Version reporting to server

– Line in switching of Satellite feed over scheduled programming.

obplayer -d prints log messages to console

obplayer -H for running in headless operation (audio only)

obplayer -m minimize startup switch

Ver 0.4c1 (January 28, 2013)

– “bash obplayer” used to start

– “bash obplayer_loop”  runs in an infinite loop. Restart via  http admin, restarts in loop

– obplayer -h for help (command-line options).

– obplayer -f or obplayer –fullscreen. (obplayer_loop -f also works)

– Toggle full screen graphic mode on/off in the http admin.

OBPlayer Enhancements

– Full screen display cursor hides after 1 second of being in full screen, or 3 seconds after mouse move.

– Refinements in the remote settings UI — browse/select folders instead of just typing in a path.

– Misc cleanup runaway script causing memory issue.

– Code improvements having to do with network stability.

– Restores the last known schedule database into memory.

– Fallback Media Mode. If nothing is playing and nothing is about to play, then play random from the fallback media directory.

Ver 0.4b1 (May 19, 2012)

– Install Script for server and Deb package for OBPlayer application

– Ebusker module to send electronic money using smart phones

– Smart phone audio recorder into OB Server library

– Ob2Ob communications to be able to swap media between installations

– Module support – An environment to create added functionality

– What’s playing module metacasting engine to send info to RDS encoder and display on smartphone

– Text to Speech interactive tutorial

– Theme support – Create a skin for the OB Server

– Dead air email alerts from managing server

– Breaking up and prioritizing sync processes

– Create and modify genres and categories

– Mouse hover over schedule to display enhanced data

– Right click on media and playlists from sidebar > Advanced usage details

– Better workflow of user management

– Client Option to set message of the day on initial log in screen

– Personalized setting for media and playlist results per page

Ver 0.4a1 (September 7, 2011)

– Dynamic Segments and Play lists created from global search results

– Permissions Matrix to assign users and groups to media and time slots

– Uploading multiple content with enhanced metadata capture and bulk editing

– Scheduling content and permissions to the second

– Logging mode for OBPlayer in GMT

– OBPlayer Default PL and localized station ID

– Complete system API with FaceBook “What’s Playing” plugin

– Emergency Broadcasting for all media with transponding reports

– Ajax optimization eliminates page refreshes, loads application into your browser

– Video and Image Preview Support and “to be approved” que with archiving

– HTML 5 eliminates the need for multimedia plugins and codec

– Internationalization so that foreign text can be saved ie: Sanskrit, Chinese, etc

– Centralized server administration of all devices operating in a cloud environment

– GTK Audio\Visual OBPlayer application runs on Ubuntu box at studio