{
    "meta": {
        "lookup": "09590.8f9d.8a0.fm.radiodns.org",
        "bearer": "fm:8a0.8f9d.09590",
        "gcc": "8a0",
        "pi": "8f9d",
        "mhz": 95.9,
        "station": {
            "call": "WWIN-FM",
            "pi": "8f9d",
            "mhz": "95.90",
            "facility": "54710",
            "city": "GLEN BURNIE",
            "state": "MD",
            "kind": "full-service"
        },
        "checked_at": "2026-10-22T01:28:42+00:00",
        "fqdn": "r1dns.com",
        "name": "Baltimore"
    },
    "verdict": {
        "level": "fail",
        "headline": "1 problem found"
    },
    "counts": {
        "pass": 10,
        "warn": 6,
        "fail": 1,
        "info": 11
    },
    "sections": [
        {
            "title": "What is being checked",
            "steps": [
                {
                    "status": "info",
                    "title": "WWIN-FM - GLEN BURNIE, MD",
                    "detail": "From the NRSC list: 95.90 MHz, PI code 8F9D, FCC facility 54710.",
                    "fix": ""
                },
                {
                    "status": "info",
                    "title": "RadioDNS lookup name",
                    "detail": "09590.8f9d.8a0.fm.radiodns.org  (frequency 95.90 MHz, PI 8F9D, country code 8a0)",
                    "fix": ""
                }
            ],
            "extra": []
        },
        {
            "title": "1. RadioDNS registration",
            "steps": [
                {
                    "status": "pass",
                    "title": "Registered",
                    "detail": "09590.8f9d.8a0.fm.radiodns.org points to the station's authoritative domain: r1dns.com",
                    "fix": ""
                }
            ],
            "extra": []
        },
        {
            "title": "2. Service discovery (SRV records)",
            "steps": [
                {
                    "status": "info",
                    "title": "_radiospi._tcp.r1dns.com: not published",
                    "detail": "",
                    "fix": ""
                },
                {
                    "status": "pass",
                    "title": "_radioepg._tcp.r1dns.com published",
                    "detail": "priority 0, weight 100, port 80 -> r1dns.com",
                    "fix": ""
                },
                {
                    "status": "warn",
                    "title": "Only the older _radioepg record is published",
                    "detail": "",
                    "fix": "Add _radiospi._tcp.r1dns.com on port 443 as well, so receivers that use HTTPS can find the SI file."
                },
                {
                    "status": "info",
                    "title": "_radiovis._tcp: not published",
                    "detail": "Slideshow/visuals (STOMP) - optional, only needed for a live slideshow service.",
                    "fix": ""
                },
                {
                    "status": "info",
                    "title": "_radiopush._tcp: not published",
                    "detail": "Slideshow/visuals (Server-Sent Events) - optional, only needed for a live slideshow service.",
                    "fix": ""
                },
                {
                    "status": "info",
                    "title": "_radiovis-http._tcp: not published",
                    "detail": "Slideshow/visuals (HTTP) - optional, only needed for a live slideshow service.",
                    "fix": ""
                }
            ],
            "extra": []
        },
        {
            "title": "3. Service Information file (SI.xml)",
            "steps": [
                {
                    "status": "pass",
                    "title": "HTTP endpoint http://r1dns.com/radiodns/spi/3.1/SI.xml answered",
                    "detail": "91 ms, 42,549 bytes",
                    "fix": ""
                },
                {
                    "status": "pass",
                    "title": "Content type is text/xml",
                    "detail": "Accepted. (RadioDNS's own guide shows application/xml.)",
                    "fix": ""
                },
                {
                    "status": "warn",
                    "title": "SI file has no caching headers",
                    "detail": "",
                    "fix": "Add Cache-Control: max-age (for example 86400 for 24 hours). Without it, receivers guess - and some ignore the content."
                },
                {
                    "status": "pass",
                    "title": "The file follows the official SI schema (3.1)",
                    "detail": "Validated against the schema published by WorldDAB/RadioDNS.",
                    "fix": ""
                }
            ],
            "extra": {
                "links": [
                    [
                        "Make an SI file accessible (PDF)",
                        "https://radiodns.org/wp-content/uploads/2014/02/HOWTO-MakeSIandXSIfilesaccessibletoRadioDNSHybridRadiodevices.pdf"
                    ],
                    [
                        "Build an SI file with RadioDNS's tool",
                        "https://si.radiodns.org/"
                    ]
                ]
            }
        },
        {
            "title": "4. Your station in the file",
            "steps": [
                {
                    "status": "info",
                    "title": "36 services in the file",
                    "detail": "",
                    "fix": ""
                },
                {
                    "status": "pass",
                    "title": "Station found: Baltimore",
                    "detail": "Matched on bearer fm:8a0.8f9d.09590",
                    "fix": ""
                },
                {
                    "status": "pass",
                    "title": "Short name: WWIN-FM",
                    "detail": "",
                    "fix": ""
                },
                {
                    "status": "pass",
                    "title": "Medium name: Baltimore",
                    "detail": "",
                    "fix": ""
                },
                {
                    "status": "info",
                    "title": "No long name",
                    "detail": "Optional.",
                    "fix": ""
                },
                {
                    "status": "pass",
                    "title": "Short description present",
                    "detail": "Baltimore",
                    "fix": ""
                },
                {
                    "status": "info",
                    "title": "No long description",
                    "detail": "Optional (up to 1200 characters).",
                    "fix": ""
                },
                {
                    "status": "info",
                    "title": "No keywords",
                    "detail": "Optional.",
                    "fix": ""
                },
                {
                    "status": "info",
                    "title": "No links",
                    "detail": "Optional: a website or contact link.",
                    "fix": ""
                },
                {
                    "status": "warn",
                    "title": "No <radiodns> element",
                    "detail": "",
                    "fix": "Add <radiodns fqdn=\"r1dns.com\" serviceIdentifier=\"...\"/> so receivers can find your other RadioDNS services."
                }
            ],
            "extra": []
        },
        {
            "title": "5. Logos",
            "steps": [
                {
                    "status": "warn",
                    "title": "Not all five standard logo sizes are listed",
                    "detail": "Missing: 32x32, 112x32",
                    "fix": "RadioDNS asks for either no logos or at least the five standard sizes, so every receiver finds one that fits."
                },
                {
                    "status": "warn",
                    "title": "Logos have no caching headers",
                    "detail": "",
                    "fix": "Add Cache-Control: max-age (for example 86400 for 24 hours). Without it, receivers guess - and some ignore the content."
                },
                {
                    "status": "fail",
                    "title": "2 of 3 logos have problems",
                    "detail": "See the table below.",
                    "fix": "Every logo URL must return a real PNG or JPEG of the declared size."
                }
            ],
            "extra": {
                "logos": [
                    {
                        "url": "http://r1dns.com/logos/WWWIN-FM_32x32.png",
                        "declared": "?",
                        "actual": "",
                        "bytes": 0,
                        "ok": false,
                        "note": "HTTP 404",
                        "preview": null
                    },
                    {
                        "url": "http://r1dns.com/logos/WWIN-FM_112x32.png",
                        "declared": "?",
                        "actual": "112x32",
                        "bytes": 2304,
                        "ok": true,
                        "note": "",
                        "preview": "data:image/png;base64,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"
                    },
                    {
                        "url": "http://r1dns.com/logos/WWIN-FM_600x600.png",
                        "declared": "128x128",
                        "actual": "600x600",
                        "bytes": 662870,
                        "ok": false,
                        "note": "real size differs from the declared 128x128; 663 kB (under 50 kB recommended)",
                        "preview": null
                    }
                ]
            }
        },
        {
            "title": "6. Transmitters and streams",
            "steps": [
                {
                    "status": "pass",
                    "title": "FM bearer fm:8a0.8f9d.09590",
                    "detail": "cost 10",
                    "fix": ""
                },
                {
                    "status": "warn",
                    "title": "Stream OK: https://r1-streams.s3.amazonaws.com/bal/wwin/wwinfm.m3u8",
                    "detail": "application/vnd.apple.mpegurl\nThe file says application/x-mpegURL but the stream answers application/vnd.apple.mpegurl.\nThe bearer has no bitrate.\nNo offset set (optional): if the stream runs behind the broadcast, an offset in milliseconds lets receivers line the two up.",
                    "fix": ""
                }
            ],
            "extra": []
        }
    ]
}