Mcaster1CastIt
A Windows broadcast streaming control panel and real-time statistics monitor for Shoutcast, Icecast2, SteamCast, and Mcaster1DNAS streaming servers. Originally built as CastIt (~2005) for CasterClub by Dave St. John with mentorship from Ed Zalesky (EdcastDSP / Oddsock). Revived and modernized in 2026 as part of the Mcaster1 open-source internet radio platform.
What Mcaster1CastIt Does
Mcaster1CastIt polls Shoutcast, Icecast2, SteamCast, and Mcaster1DNAS streaming servers in real time and displays live statistics in a resizable native Windows application. It logs all stats to a MariaDB/MySQL database, generates HTML status pages using a configurable template substitution engine, and can upload those pages to a web host via FTP or SFTP.
CasterClub is credited as the original creator of CastIt. This is a Mcaster1 reimagining — new identity, modern toolchain (VS2022 v143, vcpkg), expanded roadmap, and full rebranding from CastIt to Mcaster1CastIt.
3-Column Server List
Clean main window showing Server URL / Station Name / Current Song for all registered servers. Resizable with full maximize support (WS_THICKFRAME + ResizableLib anchors).
Monitor Tabs (Right-Click)
Right-click any server row and select Monitor Server to open a dedicated live-stats tab for that mount. Column schema varies by server type. Tabs persist across app restarts via mcaster1castit.ini.
Monitor Detail Dialog
Double-click any row in a Monitor Tab to open a full-detail popup with an embedded WebBrowser (IE11/Trident) rendering a dark-theme HTML5/CSS3 stats card. Fully resizable. Open-in-Browser button.
MariaDB Stats Logging
Logs all polled statistics to a MariaDB/MySQL database (5-table schema). Tables created automatically via the Configuration dialog. Configurable song history retention period.
HTML Template Generation
Generates HTML status pages via a configurable template substitution engine with 30+ tag tokens (listeners, current song, bitrate, stream URL, etc.). HTML5/CSS3 dark-theme templates included.
FTP & SFTP Upload
Uploads generated HTML pages to a web host via FTP (libcurl) or SFTP with SSH key authentication (libssh2). Optional HTTP callback on stat updates. Configurable upload interval.
Add Server Wizard
Step-by-step wizard for adding or editing streaming server entries. Handles credentials for all server types, URL encoding for DNAS auth, and SFTP key path configuration.
System Tray
Minimizes to the Windows system tray. Runs silently in the background while polling servers. Tray icon restores the main window on double-click.
Monitor Tab Column Schemas
Each server type exposes a different set of statistics. Monitor Tab columns are automatically configured based on the detected server type when a monitor is opened.
| Server Type | Columns |
|---|---|
| SHOUTcast (0) | Station Name, Current Song, Listeners, Peak, Max, Reported, Bitrate, Avg Time, Stream Type |
| Icecast2 (1) / Mcaster1DNAS (3) | Station Name, Mountpoint, Current Song, Listeners, Peak, Connections, Bitrate, Audio, Description, Stream Type |
| Steamcast (2) | Station Name, Current Song, Listeners, Max, Bitrate, Avg Time, Stream Hits, Stream Type |
Server URL Format
The Server URL column in the main list displays the url/mountpoint combination:
https://dnas.mcaster1.com:9443/livehttp://stream.example.com:8000/radiohttp://sc.example.com:8000(Shoutcast v1 — no mount)
Build Requirements & Dependencies
Visual Studio 2022
Community / Professional / Enterprise. Desktop development with C++ workload. MFC for x86 required (MFC 14.3 via the toolset install).
MSVC v143 / Win32
Toolset v143, Platform Win32 (x86), Windows SDK 10.0. Target: Windows 7+ for broadest compatibility.
vcpkg (C:\vcpkg)
x86-windows triplet. All runtime DLLs auto-deployed to Release\ by MSBuild vcpkg app-local integration — no manual copying required.
vcpkg Dependencies
| Library | Version | Purpose | vcpkg Triplet |
|---|---|---|---|
| libcurl | 8.18.0 | HTTP polling, FTP upload, URL callbacks | curl:x86-windows |
| libxml2 | 2.15.1 | XML response parsing (Shoutcast/Icecast) | libxml2:x86-windows |
| libmariadb | 3.4.8 | MariaDB/MySQL statistics logging | libmariadb:x86-windows |
| OpenSSL | 3.6.1 | TLS for libcurl and MariaDB SSL connections | openssl:x86-windows |
| libssh2 | 1.11.1 | SFTP upload, SSH key authentication | libssh2:x86-windows |
| libyaml | 0.2.5 | YAML config (runtime Phase 9+) | libyaml:x86-windows |
| ResizableLib | latest | Resizable MFC dialog framework | external/ResizableLib/ (source) |
Database Setup
- Create a MariaDB/MySQL database (e.g.
mcaster1castit_stats) - Create a user with full access to that database
- Launch Mcaster1CastIt.exe → Configuration → fill in Hostname, Username, Password, Database
- Click Create Tables — all 5 tables created automatically
- Tables:
shoutcast_serverinfo,songinfo,shoutcast_history,icecast2_history,icecast2_serverinfo
Development Phases
All 15 phases are complete as of v0.9.7.
Phase 1 — v0.1.0
VS2022 Build Fix — v143 toolset, Win10 SDK, VC6→VS2022 source compat fixes
Phase 2 — v0.2.0
Rebrand CastIt → Mcaster1Castit (classes, dialogs, INI file, window titles, URLs)
Phase 3 — v0.1.0
Dependency migration via vcpkg (curl, libxml2, mariadb, openssl, libssh2, libyaml)
Phase 4 — v0.3.0
Repository cleanup — .gitignore, git init, initial commit
Phase 5 — v0.4.0
Dialog & UI modernization — all dialogs resizable (CResizableDialog), Segoe UI 9pt
Phase 6 — v0.5.0
SFTP + SSH key file authentication (libssh2)
Phase 7 — v0.6.0
Secure MariaDB/MySQL with SSL/TLS connections
Phase 8 — v0.7.0
Mcaster1 platform integration — Mcaster1DNAS server type, ICY metadata push, libyaml prep
Phase 9 — v0.8.0
SSL/SSH key generation — OpenSSL EVP_RSA_gen, auto-fill paths
Phase 10 — v0.9.0
5-tab ConfigDialog, AddServer wizard, DNAS XML fix
Phase 11 — v0.9.2
DNAS credential URL encoding fix
Phase 12 — v0.9.2
AddServer wizard credential fix (scastd.cpp)
Phase 13 — v0.9.3
Simplified 3-column server list
Phase 14 — v0.9.4
Monitor Tabs (right-click) + HTML5/CSS3 templates + DNAS tags
Phase 15 — v0.9.5–0.9.7
Monitor Detail Dialog + embedded WebBrowser + dark-theme HTML + dialog resize fixes + server URL url/mountpoint format
Credits & Lineage
- David St. John — Original developer of CastIt (~2005), stream-hosting pioneer, Mcaster1 platform maintainer
- Ed Zalesky (EdcastDSP / Oddsock) — Original mentorship on streaming server architecture
- CasterClub (casterclub.com) — Original home of CastIt (~2005); credited as the founding creators of this software
- Re-release planned under MIT or GPLv3
Mcaster1CastIt
The scheduling and monitoring hub of the Mcaster1 open-source internet radio platform. Part of the broader ecosystem alongside Mcaster1DNAS, Mcaster1DSPEncoder, and Mcaster1TagStack.