{
    "meta": {
        "lookup": "09270.d259.da0.fm.radiodns.org",
        "bearer": "fm:da0.d259.09270",
        "gcc": "da0",
        "pi": "d259",
        "mhz": 92.7,
        "station": {
            "call": "K224CJ",
            "pi": "d259",
            "mhz": "92.70",
            "facility": "6445",
            "city": "PHOENIX",
            "state": "AZ",
            "kind": "translator"
        },
        "checked_at": "2026-10-21T05:28:11+00:00",
        "fqdn": "radiodns.hubbardradio.com",
        "name": "Where the 60s and 70s Live!"
    },
    "verdict": {
        "level": "fail",
        "headline": "1 problem found"
    },
    "counts": {
        "pass": 18,
        "warn": 8,
        "fail": 1,
        "info": 8
    },
    "sections": [
        {
            "title": "What is being checked",
            "steps": [
                {
                    "status": "info",
                    "title": "K224CJ - PHOENIX, AZ",
                    "detail": "From the NRSC list: 92.70 MHz, PI code D259, FCC facility 6445.",
                    "fix": ""
                },
                {
                    "status": "info",
                    "title": "RadioDNS lookup name",
                    "detail": "09270.d259.da0.fm.radiodns.org  (frequency 92.70 MHz, PI D259, country code da0)",
                    "fix": ""
                }
            ],
            "extra": []
        },
        {
            "title": "1. RadioDNS registration",
            "steps": [
                {
                    "status": "pass",
                    "title": "Registered",
                    "detail": "09270.d259.da0.fm.radiodns.org points to the station's authoritative domain: radiodns.hubbardradio.com",
                    "fix": ""
                }
            ],
            "extra": []
        },
        {
            "title": "2. Service discovery (SRV records)",
            "steps": [
                {
                    "status": "pass",
                    "title": "_radiospi._tcp.radiodns.hubbardradio.com published",
                    "detail": "priority 10, weight 5, port 443 -> radiodns.hubbardradio.com  [target is an alias of dcmqfs8ti5c7m.cloudfront.net]",
                    "fix": ""
                },
                {
                    "status": "warn",
                    "title": "SRV target radiodns.hubbardradio.com is a CNAME alias",
                    "detail": "DNS rules (RFC 2782) say an SRV record should point at a name that has address records directly, not at an alias. Many resolvers cope, some do not.",
                    "fix": "Give radiodns.hubbardradio.com its own A/AAAA record (or point the SRV record at the real host name)."
                },
                {
                    "status": "pass",
                    "title": "_radioepg._tcp.radiodns.hubbardradio.com published",
                    "detail": "priority 10, weight 5, port 80 -> radiodns.hubbardradio.com  [target is an alias of dcmqfs8ti5c7m.cloudfront.net]",
                    "fix": ""
                },
                {
                    "status": "warn",
                    "title": "SRV target radiodns.hubbardradio.com is a CNAME alias",
                    "detail": "DNS rules (RFC 2782) say an SRV record should point at a name that has address records directly, not at an alias. Many resolvers cope, some do not.",
                    "fix": "Give radiodns.hubbardradio.com its own A/AAAA record (or point the SRV record at the real host name)."
                },
                {
                    "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": "HTTPS endpoint https://radiodns.hubbardradio.com/radiodns/spi/3.1/SI.xml answered",
                    "detail": "54 ms, 174,831 bytes",
                    "fix": ""
                },
                {
                    "status": "pass",
                    "title": "The HTTPS certificate is valid",
                    "detail": "",
                    "fix": ""
                },
                {
                    "status": "pass",
                    "title": "Content type is application/xml",
                    "detail": "",
                    "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": "warn",
                    "title": "The file does not strictly follow the official SI schema (3.1)",
                    "detail": "line 2: Element 'radiodns': This element is not expected. Expected is one of ( serviceGroupMember, ##other* ).\nline 2: Element 'radiodns': This element is not expected. Expected is one of ( serviceGroupMember, ##other* ).\nline 2: Element 'radiodns': This element is not expected. Expected is one of ( serviceGroupMember, ##other* ).\nline 2: Element 'radiodns': This element is not expected. Expected is one of ( serviceGroupMember, ##other* ).\nline 2: Element 'radiodns': This element is not expected. Expected is one of ( serviceGroupMember, ##other* ).\nline 2: Element 'radiodns': This element is not expected. Expected is one of ( serviceGroupMember, ##other* ).\nline 2: Element 'radiodns': This element is not expected. Expected is one of ( serviceGroupMember, ##other* ).\nline 2: Element 'radiodns': This element is not expected. Expected is one of ( serviceGroupMember, ##other* ).\nline 2: Element 'radiodns': This element is not expected. Expected is one of ( serviceGroupMember, ##other* ).\nline 2: Element 'radiodns': This element is not expected. Expected is one of ( serviceGroupMember, ##other* ).\nline 2: Element 'radiodns': This element is not expected. Expected is one of ( serviceGroupMember, ##other* ).\nline 2: Element 'radiodns': This element is not expected. Expected is one of ( serviceGroupMember, ##other* ).\n(62 more not shown)",
                    "fix": "Many receivers are forgiving, but strict ones may ignore a file that does not match the schema. RadioDNS's SI tool (si.radiodns.org) can rebuild a correct file."
                },
                {
                    "status": "pass",
                    "title": "HTTP endpoint http://radiodns.hubbardradio.com/radiodns/spi/3.1/SI.xml answered",
                    "detail": "9 ms, 174,831 bytes",
                    "fix": ""
                },
                {
                    "status": "pass",
                    "title": "Content type is application/xml",
                    "detail": "",
                    "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": "warn",
                    "title": "The file does not strictly follow the official SI schema (3.1)",
                    "detail": "line 2: Element 'radiodns': This element is not expected. Expected is one of ( serviceGroupMember, ##other* ).\nline 2: Element 'radiodns': This element is not expected. Expected is one of ( serviceGroupMember, ##other* ).\nline 2: Element 'radiodns': This element is not expected. Expected is one of ( serviceGroupMember, ##other* ).\nline 2: Element 'radiodns': This element is not expected. Expected is one of ( serviceGroupMember, ##other* ).\nline 2: Element 'radiodns': This element is not expected. Expected is one of ( serviceGroupMember, ##other* ).\nline 2: Element 'radiodns': This element is not expected. Expected is one of ( serviceGroupMember, ##other* ).\nline 2: Element 'radiodns': This element is not expected. Expected is one of ( serviceGroupMember, ##other* ).\nline 2: Element 'radiodns': This element is not expected. Expected is one of ( serviceGroupMember, ##other* ).\nline 2: Element 'radiodns': This element is not expected. Expected is one of ( serviceGroupMember, ##other* ).\nline 2: Element 'radiodns': This element is not expected. Expected is one of ( serviceGroupMember, ##other* ).\nline 2: Element 'radiodns': This element is not expected. Expected is one of ( serviceGroupMember, ##other* ).\nline 2: Element 'radiodns': This element is not expected. Expected is one of ( serviceGroupMember, ##other* ).\n(62 more not shown)",
                    "fix": "Many receivers are forgiving, but strict ones may ignore a file that does not match the schema. RadioDNS's SI tool (si.radiodns.org) can rebuild a correct file."
                }
            ],
            "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": "74 services in the file",
                    "detail": "",
                    "fix": ""
                },
                {
                    "status": "pass",
                    "title": "Station found: Oldies 92.7",
                    "detail": "Matched on bearer fm:da0.d259.09270",
                    "fix": ""
                },
                {
                    "status": "pass",
                    "title": "Short name: KAZGAM",
                    "detail": "",
                    "fix": ""
                },
                {
                    "status": "pass",
                    "title": "Medium name: Oldies 92.7",
                    "detail": "",
                    "fix": ""
                },
                {
                    "status": "pass",
                    "title": "Long name: Where the 60s and 70s Live!",
                    "detail": "",
                    "fix": ""
                },
                {
                    "status": "pass",
                    "title": "Short description present",
                    "detail": "60s and 70s Oldies for the Valley of the Sun. With local legend Steve Goddard in the afternoon.",
                    "fix": ""
                },
                {
                    "status": "info",
                    "title": "No long description",
                    "detail": "Optional (up to 1200 characters).",
                    "fix": ""
                },
                {
                    "status": "pass",
                    "title": "Keywords present",
                    "detail": "Oldies, Steve Goddard, Beatles, Motown, 60s and 70s, Classic Hits, Supremes, Gold,",
                    "fix": ""
                },
                {
                    "status": "pass",
                    "title": "1 link",
                    "detail": "Homepage https://oldies927az.com",
                    "fix": ""
                },
                {
                    "status": "pass",
                    "title": "The <radiodns> element matches the registration",
                    "detail": "fqdn radiodns.hubbardradio.com, service identifier phxk224cj20",
                    "fix": ""
                }
            ],
            "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": "fail",
                    "title": "5 of 5 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": "https://radiodns.hubbardradio.com/radiodns/spi/3.1/radiodns/spi/3.1/img/a8b119041fcd036d8e7419cdb4f8174c.png",
                        "declared": "600x600",
                        "actual": "",
                        "bytes": 0,
                        "ok": false,
                        "note": "HTTP 404",
                        "preview": null
                    },
                    {
                        "url": "https://radiodns.hubbardradio.com/radiodns/spi/3.1/radiodns/spi/3.1/img/b667ff8e80e8b0473fca67f766da8ed5.png",
                        "declared": "320x240",
                        "actual": "",
                        "bytes": 0,
                        "ok": false,
                        "note": "HTTP 404",
                        "preview": null
                    },
                    {
                        "url": "https://radiodns.hubbardradio.com/radiodns/spi/3.1/radiodns/spi/3.1/img/4900482522f8df990fb9988b091a6bbc.png",
                        "declared": "128x128",
                        "actual": "",
                        "bytes": 0,
                        "ok": false,
                        "note": "HTTP 404",
                        "preview": null
                    },
                    {
                        "url": "https://radiodns.hubbardradio.com/radiodns/spi/3.1/radiodns/spi/3.1/img/1c9e7c0d44daf2b57ee3fbe2c41233e3.png",
                        "declared": "?",
                        "actual": "",
                        "bytes": 0,
                        "ok": false,
                        "note": "HTTP 404",
                        "preview": null
                    },
                    {
                        "url": "https://radiodns.hubbardradio.com/radiodns/spi/3.1/radiodns/spi/3.1/img/4a3e80c416c0ffa83122b16cc548f69e.png",
                        "declared": "?",
                        "actual": "",
                        "bytes": 0,
                        "ok": false,
                        "note": "HTTP 404",
                        "preview": null
                    }
                ]
            }
        },
        {
            "title": "6. Transmitters and streams",
            "steps": [
                {
                    "status": "pass",
                    "title": "FM bearer fm:da0.d259.09270",
                    "detail": "cost 10, offset 0 ms",
                    "fix": ""
                },
                {
                    "status": "info",
                    "title": "Other bearer: hd:292.0192d",
                    "detail": "Not checked by this tool.",
                    "fix": ""
                },
                {
                    "status": "warn",
                    "title": "Stream OK: https://playerservices.streamtheworld.com/api/livestream-redirect/KAZGAMAAC.aac?dist=hubbard&source=hubbard-web&ttag=radiodns",
                    "detail": "audio/aacp, 64 kbps, offset 25000 ms\nThe file says audio/aac but the stream answers audio/aacp.",
                    "fix": ""
                },
                {
                    "status": "pass",
                    "title": "Stream OK: https://playerservices.streamtheworld.com/api/livestream-redirect/KAZGAM.mp3?dist=hubbard&source=hubbard-web&ttag=radiodns",
                    "detail": "audio/mpeg, 96 kbps, offset 25000 ms",
                    "fix": ""
                }
            ],
            "extra": []
        }
    ]
}