Skip to content
AirwaveDBPublic

About

Open metadata database for internet radio stations, networks, countries, languages, categories, and related information.

Topics

Resources

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

41 Commits

Folders and files

Repository files navigation

AirwaveDB Database

Canonical station metadata for the AirwaveDB internet radio directory.

AirwaveDB is a directory of internet radio stations and their playable stream endpoints. This repository stores station identity, normalized metadata, source mappings, and indexes. Consumer applications should use AirwaveDB/api.

Data

Canonical data is stored as JSON under data/.

  • data/stations/<CC>.json — station metadata split by ISO 3166-1 alpha-2 country code
  • data/source_map.json — upstream source identifiers mapped to stable AirwaveDB station IDs
  • data/redirects.json — station ID redirects created when duplicate records are merged
  • data/countries.json — country index and station counts
  • data/languages.json — canonical language codes and station counts
  • data/language_aliases.json — legacy/equivalent language codes mapped to canonical codes
  • data/categories.json — normalized categories and station counts
  • data/index.json — build metadata, source counts, and quality counters

Unknown or unclassified countries use ZZ.

Station schema

The canonical machine-readable schema is schema/station.schema.json, using JSON Schema 2020-12.

{
  "id": "awb_c89923852f31a58c4a4c",
  "name": "Example Radio",
  "country": "JP",
  "subdivision": null,
  "languages": ["ja"],
  "categories": ["news"],
  "tags": ["news", "talk"],
  "homepage": "https://example.com/",
  "favicon": "https://example.com/logo.png",
  "type": "public",
  "sourceCount": 2,
  "updatedAt": "2026-10-13T00:00:00Z"
}

type may be public, community, college, internet, or null. Missing metadata is kept as null or an empty array rather than guessed.

Categories and station types may be enriched from explicit upstream tags using conservative phrase matching. AirwaveDB does not infer language, category, or station type from country, station name, popularity, or other weak proxies. The generated quality counters make missing metadata visible instead of hiding it with plausible defaults.

Language normalization

Station records use canonical language codes. Equivalent ISO 639-2 bibliographic/terminologic forms are normalized when there is an exact ISO 639-1 equivalent, for example:

eng -> en
deu / ger -> de
jpn -> ja
fra / fre -> fr
spa -> es

Related but distinct language codes are not collapsed. For example, cmn is not silently rewritten to zh.

data/language_aliases.json preserves the accepted aliases so the public API can remain backwards-compatible with older language URLs.

Public API

The consumer-facing JSON API is maintained in AirwaveDB/api.

Routes include:

/v1/stations/:id
/v1/countries/:code
/v1/categories/:id
/v1/languages/:code

Sources

The automated import currently uses:

Source records are normalized and de-duplicated before they are written to data/stations/. Stream endpoints are maintained separately in AirwaveDB/streams.

Updates

The database is rebuilt automatically every day. A large unexpected reduction in the upstream dataset is rejected instead of replacing a healthy snapshot.

Contributing

Read CONTRIBUTING.md before submitting station corrections or schema changes.

License

Database files are released under CC0 1.0. Station names, logos, websites, and other third-party material remain subject to their respective owners' rights.

About

Open metadata database for internet radio stations, networks, countries, languages, categories, and related information.

Topics

Resources

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages