{"id":16016216,"url":"https://github.com/quetzacoalt91/dvbrouter","last_synced_at":"2026-05-03T02:35:33.149Z","repository":{"id":21464354,"uuid":"92437606","full_name":"Quetzacoalt91/dvbrouter","owner":"Quetzacoalt91","description":"Proxy and manager of mumudvb instances","archived":false,"fork":false,"pushed_at":"2023-04-03T18:27:34.000Z","size":1093,"stargazers_count":1,"open_issues_count":2,"forks_count":2,"subscribers_count":3,"default_branch":"master","last_synced_at":"2024-04-13T23:54:12.052Z","etag":null,"topics":["dvb","hapijs","mumudvb","nodejs"],"latest_commit_sha":null,"homepage":null,"language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Quetzacoalt91.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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}},"created_at":"2017-05-25T19:33:39.000Z","updated_at":"2022-09-24T11:57:09.000Z","dependencies_parsed_at":"2024-10-08T16:00:50.435Z","dependency_job_id":"eb807a94-a48e-4e8f-8cfe-dc9c654328b1","html_url":"https://github.com/Quetzacoalt91/dvbrouter","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Quetzacoalt91%2Fdvbrouter","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Quetzacoalt91%2Fdvbrouter/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Quetzacoalt91%2Fdvbrouter/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Quetzacoalt91%2Fdvbrouter/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Quetzacoalt91","download_url":"https://codeload.github.com/Quetzacoalt91/dvbrouter/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247281655,"owners_count":20913213,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["dvb","hapijs","mumudvb","nodejs"],"created_at":"2024-10-08T16:00:39.959Z","updated_at":"2026-05-03T02:35:33.123Z","avatar_url":"https://github.com/Quetzacoalt91.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# dvbrouter\n\nProxy and manager of mumudvb instances\n\n## Introduction\n\nForwarding DVB signal to a network can be done thanks to tools like [Mumudvb](https://mumudvb.net/). Following the documentation, one instance of it allows to retrieve the channels of one [multiplex](https://en.wikipedia.org/wiki/Multiplex_(television)).\n\nTo broadcast additional channels that are on another multiplex, tutorials recommends to use a dual channel DVB receiver and to start another process of the same software.\nThis case works if the system has as many tuners as multiplexes to use.\n\nTo avoid having to choose between multiplexes, this project has been created:\n- It creates a playlist of channels on startup from a group of configuration files,\n- It starts automatically mumudvb instances once a client opens a request to one the channel present in the playlist,\n- It forwards the client to the stream once ready,\n- It closes the process when no more clients watch an existing multiplex.\n\n## Configuration\n\nThe configuration file can be found in `config/app.json`.\n\n```js\n{\n  \"version\": 1,\n  \"server\": {\n    \"port\": 3001, // Port to listen to\n    \"routes\": { \"cors\": true },\n    \"labels\": [\"socket\"]\n  },\n  \"mumudvb\": {\n    \"host\": \"rapberrytv.local\",\n    \"path\": \"../config/multiplexes/\", // Folder where configuration files are stored\n    \"channels\": 2, // Number of tuners available on the system\n    \"filters\": [\n      \"ADULT\"\n    ]\n  },\n  \"storage\": {\n    \"destPath\": \"/mnt/Storage/records/\"\n  }\n}\n```\n\n## Installation for production\n\n```\nnpm run build\nnpm run serve\n```\n\nThe user running this project will be the owner of the mumudvb processes. It must run with a user that belongs to the `video` group or `root`.\n\n## Routes\n\n```\nGET: /\n```\n\nWhen the project is ready to receive requests, the root page will great you with a successful message.\n\n```\nGET: /status\n```\n\nThis endpoints provides some details about the channels that have ben scanned.\n\n```\nGET: /playlist\n```\n\nDownload the playlist in M3U format\n\n```\nGET: /stream/\u003cID\u003e\n```\n\nStart the streaming of a given channel (ID to be found in the playlist).\n\n## Development\n\n```\nnpm run start\n```\n\nAny change in the project will restart `dvbrouter`.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fquetzacoalt91%2Fdvbrouter","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fquetzacoalt91%2Fdvbrouter","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fquetzacoalt91%2Fdvbrouter/lists"}