{"id":48037789,"url":"https://github.com/swrlab/ard-eventhub","last_synced_at":"2026-04-04T14:00:38.921Z","repository":{"id":37007638,"uuid":"327929654","full_name":"swrlab/ard-eventhub","owner":"swrlab","description":"ARD system to distribute real-time (live) metadata for primarily radio broadcasts.","archived":false,"fork":false,"pushed_at":"2026-03-16T16:36:57.000Z","size":2942,"stargazers_count":9,"open_issues_count":11,"forks_count":1,"subscribers_count":5,"default_branch":"main","last_synced_at":"2026-03-17T03:48:29.746Z","etag":null,"topics":["distribution","metadata","pubsub"],"latest_commit_sha":null,"homepage":"https://swrlab.github.io/ard-eventhub","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/swrlab.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":"AGENTS.md","dco":null,"cla":null}},"created_at":"2021-01-08T14:46:11.000Z","updated_at":"2026-03-16T16:36:51.000Z","dependencies_parsed_at":"2023-11-21T10:29:31.886Z","dependency_job_id":"5c2927e0-ab61-42fc-98c8-8efdf0aa0872","html_url":"https://github.com/swrlab/ard-eventhub","commit_stats":null,"previous_names":[],"tags_count":53,"template":false,"template_full_name":null,"purl":"pkg:github/swrlab/ard-eventhub","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/swrlab%2Fard-eventhub","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/swrlab%2Fard-eventhub/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/swrlab%2Fard-eventhub/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/swrlab%2Fard-eventhub/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/swrlab","download_url":"https://codeload.github.com/swrlab/ard-eventhub/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/swrlab%2Fard-eventhub/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31402277,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-04T10:20:44.708Z","status":"ssl_error","status_checked_at":"2026-04-04T10:20:06.846Z","response_time":60,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["distribution","metadata","pubsub"],"created_at":"2026-04-04T14:00:26.915Z","updated_at":"2026-04-04T14:00:38.782Z","avatar_url":"https://github.com/swrlab.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ARD Eventhub\n\nARD system to distribute real-time (live) metadata for primarily radio broadcasts.\n\n## Active Data Suppliers\n\nThese ARD broadcasters are currently sending live metadata via ARD Eventhub:\n\n| Broadcaster      | TEST | PROD |\n| ---------------- | ---- | ---- |\n| BR               | ✅   | ✅   |\n| HR               | ✅   | ✅   |\n| MDR              | -    | ✅   |\n| NDR              | ✅   | ✅   |\n| Radio Bremen     | -    | ✅   |\n| RBB              | -    | ✅   |\n| SR               | -    | ✅   |\n| SWR              | ✅   | ✅   |\n| WDR              | ✅   | ✅   |\n| Deutschlandradio | -    | -    |\n\n## Get Started and Documentation\n\nImportant places to go ahead:\n\n- The [ard-eventhub](https://github.com/swrlab/ard-eventhub) repository\n- Our [Quickstart](docs/QUICKSTART.md) documentation\n- The full docs on [swrlab.github.io/ard-eventhub](https://swrlab.github.io/ard-eventhub/)\n- OpenAPI specification on [eventhub-ingest.ard.de/openapi](https://eventhub-ingest.ard.de/openapi)\n- Internal documentation in [Confluence](https://confluence.ard.de/x/il8uGw)\n\n## Get involved\n\n- Open an [issue](https://github.com/swrlab/ard-eventhub/issues) for problems, that you might experience\n- Join [ard-eventhub/discussions](https://github.com/swrlab/ard-eventhub/discussions) for ongoing topics about formats, etc.\n\n## Modules\n\nThis project will include two modules: Ingest and API. The first development step is to only supply the Ingest service. Each module uses their own endpoints and checks, while some parts are shared across both (`utils`). They also both have their own Dockerfiles to start the appropriate service.\n\n### Ingest\n\nThe Ingest service is responsible for receiving and publishing events and managing subscriptions. You'll find the core code in [`./src/ingest/`](./src/ingest/).\n\n## Local Setup\n\nThis project uses `bun` as package manager and runtime environment. Please note that this only applies to the package manager and CLI commands. JavaScript still uses the 'traditional' `node` runtime. Check the [Bun documentation](https://bun.sh/docs/installation) for installation instructions.\n\nTo install dependencies run:\n\n```sh\nbun install\n```\n\nTo check for minor updates:\n\n```sh\nbun update\n```\n\n## Changelog\n\nSee [CHANGELOG](CHANGELOG.md) for latest changes.\n\n## License\n\nThis project is licensed under **European Union Public License 1.2** ([`EUPL-1.2`](https://spdx.org/licenses/EUPL-1.2.html)), which can be found in [LICENSE](LICENSE.txt). Detailed information and translations to all 23 official languages of the European Union are available at [joinup.ec.europa.eu](https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12). The usage of this license does not imply any relationship to or endorsement by the European Union, the joinup initiative or other participating parties.\nA [compatibility matrix](https://joinup.ec.europa.eu/collection/eupl/matrix-eupl-compatible-open-source-licences) is also available and describes the relationships between EUPL-1.2 in upstream and downstream projects.\n\nThis source code is provided under EUPL v1.2, except for the [`spdx-exceptions`](https://www.npmjs.com/package/spdx-exceptions) package, which uses the `CC-BY-3.0` license, without adding any legal or technical restrictions guaranteed by their license.\n\n## Third-Party Components\n\n| Type    | Name                           | License                                                                                            |\n| ------- | ------------------------------ | -------------------------------------------------------------------------------------------------- |\n| Docker  | `node:22-alpine`               | [MIT](https://github.com/nodejs/node/tree/main?tab=readme-ov-file#license)                         |\n| NPM     | `@google-cloud/datastore`      | [Apache License 2.0](https://github.com/googleapis/nodejs-datastore/blob/master/LICENSE)           |\n| NPM     | `@google-cloud/pubsub`         | [Apache License 2.0](https://github.com/googleapis/nodejs-pubsub/blob/master/LICENSE)              |\n| NPM     | `@google-cloud/secret-manager` | [Apache License 2.0](https://github.com/googleapis/nodejs-secret-manager/blob/master/LICENSE)      |\n| NPM     | `@std/ulid`                    | [MIT](https://github.com/swrlab/node-utils/blob/main/LICENSE.md)                                   |\n| NPM     | `@swrlab/utils`                | [MIT](https://github.com/swrlab/node-utils/blob/main/LICENSE.md)                                   |\n| NPM     | `compression`                  | [MIT](https://github.com/expressjs/compression/blob/master/LICENSE)                                |\n| NPM     | `dd-trace`                     | [Apache-2.0 OR BSD-3-Clause](https://github.com/DataDog/dd-trace-js/blob/master/LICENSE)           |\n| NPM     | `express`                      | [MIT](https://github.com/expressjs/express/blob/master/LICENSE)                                    |\n| NPM     | `express-openapi-validator`    | [MIT](https://github.com/cdimascio/express-openapi-validator/blob/master/LICENSE)                  |\n| NPM     | `firebase-admin`               | [Apache License 2.0](https://github.com/firebase/firebase-admin-node/blob/master/LICENSE)          |\n| NPM     | `google-auth-library`          | [Apache License 2.0](https://github.com/googleapis/google-auth-library-nodejs/blob/master/LICENSE) |\n| NPM     | `jsonwebtoken`                 | [MIT](https://github.com/auth0/node-jsonwebtoken/blob/master/LICENSE)                              |\n| NPM     | `luxon`                        | [MIT](https://github.com/moment/luxon/blob/master/LICENSE.md)                                      |\n| NPM     | `slug`                         | [MIT](https://github.com/Trott/slug/blob/master/LICENSE)                                           |\n| NPM     | `swagger-ui-express`           | [MIT](https://github.com/scottie1984/swagger-ui-express/blob/master/LICENSE)                       |\n| NPM     | `winston`                      | [MIT](https://github.com/winstonjs/winston/blob/master/LICENSE)                                    |\n| NPM DEV | `@biomejs/biome`               | [MIT](https://github.com/biomejs/biome/blob/main/LICENSE-MIT)                                      |\n| NPM DEV | `@swrlab/swr-prettier-config`  | [MIT](https://github.com/swrlab/swr-prettier-config/blob/main/LICENSE.txt)                         |\n| NPM DEV | `chai`                         | [MIT](https://github.com/chaijs/chai/blob/master/LICENSE)                                          |\n| NPM DEV | `chai-http`                    | [MIT](https://github.com/chaijs/chai-http/blob/master/package.json)                                |\n| NPM DEV | `docsify-cli`                  | [MIT](https://github.com/docsifyjs/docsify-cli/blob/master/LICENSE)                                |\n| NPM DEV | `license-compliance`           | [MIT](https://github.com/tmorell/license-compliance/blob/master/LICENSE)                           |\n| NPM DEV | `mocha`                        | [MIT](https://github.com/mochajs/mocha/blob/master/LICENSE)                                        |\n| NPM DEV | `nodemon`                      | [MIT](https://github.com/remy/nodemon/blob/master/LICENSE)                                         |\n| NPM DEV | `prettier`                     | [MIT](https://github.com/prettier/prettier/blob/main/LICENSE)                                      |\n\n## Authors\n\nThis project was realized by\n\n- [Daniel Freytag](https://github.com/frytg)\n- [Rafael Mäuer](https://github.com/rafaelmaeuer)\n- [Christian Hufnagel](https://github.com/chhufnagel)\n\nat [SWR Audio Lab](https://www.swr.de/audiolab)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fswrlab%2Fard-eventhub","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fswrlab%2Fard-eventhub","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fswrlab%2Fard-eventhub/lists"}