Getting TV Guide Data for Milwaukee Actually Works If You Know Where to Look
I spent about three years maintaining a home media setup that pulled schedule data for a 60+ station market, and Milwaukee is one of those markets that's surprisingly straightforward once you figure out which data sources actually feed it. The key realization is that most people overcomplicate this because they assume they need to pay for cable-style guide services, when the reality is that OTA-based listings work fine for the vast majority of households here. Milwaukee is Designated Market Area 32, the 32nd largest in the United States. That matters because Nielsen rankings determine which networks build local newscasts and which stations carry affiliate-specific programming, and it also determines whether your broadcast antenna can pick up enough stations to fill out a meaningful guide. The primary data sources are the OTA broadcast signals themselves (which carry embedded program metadata via the ATSC standard), plus XMLTV feeds from providers like Schedules Direct and various open-source EPg projects. Cable and satellite subscribers get their data pushed through different pipelines, usually proprietary systems tied to the provider's infrastructure. For someone running a HDHomeRun or a similar USB tuner, the cleanest approach is connecting to Schedules Direct. They charge $4 per year, which sounds ridiculous until you realize it's less than a single cable bill surcharge, and they maintain a direct relationship with the FCC and network operators. Their guide data for Milwaukee covers all the major affiliates: WITI (CBS), WITI-TV's digital subchannels, WTMJ (NBC), WITI, WSAW (ABC), CW affiliates, FOX Wisconsin, and the full set of broadcast translators that carry PBS Wisconsin and Univision content. It refreshes daily.
The Setup I Actually Use
My current stack runs a WinTV setup on a low-power machine. I grab the XMLTV data from Schedules Direct using a simple cron job that pulls the Milwaukee ZIP code 53202 feed every morning around 3 AM. The XML file contains the channel lineup mapped to the ATSC physical channel numbers. From there, I import it into whatever media center software I'm running. Plex does this natively now with its built-in EPg module. Emby handles it similarly. Kodi still supports it through the PVR IPTV Simple Client or the XMLTV addon, though you'll need to verify the parser handles subchannel mappings correctly. For people on smart TVs directly, this is where it gets messy. Samsung and LG both have built-in EPg support, but the data quality for Milwaukee varies by model year. Newer 2022+ TVs tend to pull from Samsung's own aggregated data source, which sometimes mislabels digital subchannels. A 2019 model I helped a neighbor set up kept listing "CW Milwaukee" as a separate channel from "WBME," even though they're the same virtual station with different subchannel outputs. Firmware updates fixed it eventually, but it took six months.
Edge Case That Almost Broke My Setup
Here's a specific problem I hit that I don't see documented anywhere: WDJT (CBS Milwaukee) switched its HD signal from UHF channel 58 to channel 19 during a FCC repack transition. Schedules Direct updated their mapping, but my local guide parser at the time was hard-coded to look for the old physical channel number. This meant CBS programming appeared as blank or misaligned in the EPg for about three weeks while I figured out what was going wrong. The fix was updating the XMLTV mapping table to reflect the new ATSC3.0 physical channel assignment, then flushing the channel scan cache and re-running a manual rescan. If you're maintaining your own guide data, always verify your physical-to-virtual channel table after any FCC repack events. The NAB publishes these updates quarterly, and they're publicly available on their website. The biggest mistake I see is assuming that more antenna strength equals better guide data. It doesn't. Guide metadata comes from the digital signal's VBI (vertical blanking interval) or ATSC 3.0 metadata tables, not from signal amplitude. You can have a crystal-clear picture and still receive no EPg data if the station doesn't broadcast the metadata properly. Some smaller bilingual and religious subchannels on the Milwaukee market don't push full program metadata, which means your guide will show "TBD" or generic placeholder text for those stations. This isn't a failure on your end. It's just how some of these stations operate. Another counter-intuitive point: using a streaming-based EPg service as your primary data source can actually degrade your guide accuracy for local Milwaukee stations. Streaming EPg services rely on network press releases and affiliate schedules, which sometimes lag behind actual programming changes. A local station might swap out a repeated episode for a special broadcast, and if your guide is pulling from a weekly-distributed text feed rather than the live signal, you won't see that change until the next cycle. OTA-sourced data is always the most current for local programming.
Get the Full Details

Free Alternatives If You Don't Want to Pay
Schedules Direct costs money, but there are free XMLTV sources. The biggest is the AustralianXMLTV project, which mirrors some US data, though coverage for Milwaukee stations is spotty. There's also the tv listings .gr (Greek) project which occasionally picks up US affiliate data, but the refresh rate is unpredictable. The open-source m3u8 EPg generators on GitHub will create listings from publicly available station press pages, but maintaining that requires regular script updates. Honestly, if you're doing anything beyond casual viewing, the $4/year subscription to Schedules Direct pays for itself in reduced troubleshooting time within the first month. If you just want quick access without setting up anything, the Roku and Fire TV channels like "WatchSeries" or built-in guide apps from your provider will show Milwaukee listings, but the granularity is shallow. You'll see primetime slots and maybe a few hours of next-day content. You won't get the full week view with subchannel differentiation unless you're on a cable or satellite box.
Bottom Line
Milwaukee is a mid-sized market with solid OTA coverage across all major networks and a decent number of subchannels. The guide data is available, reliable, and largely free if you put in an hour of setup time. The biggest ongoing maintenance concern is staying current on channel reassignments after FCC repacks, and monitoring for stations that drop metadata entirely. Beyond that, the system works and stays working with minimal intervention.