{"id":13571630,"url":"https://github.com/oddnetworks/oddworks","last_synced_at":"2025-04-04T08:31:50.724Z","repository":{"id":100611590,"uuid":"52802668","full_name":"oddnetworks/oddworks","owner":"oddnetworks","description":"[MIRROR]","archived":false,"fork":false,"pushed_at":"2019-04-22T18:22:00.000Z","size":1334,"stargazers_count":290,"open_issues_count":21,"forks_count":60,"subscribers_count":33,"default_branch":"master","last_synced_at":"2024-11-05T04:34:13.721Z","etag":null,"topics":["android-tv","apple-tv","fire-tv","javascript","oddworks","roku","tv","tv-apps","video"],"latest_commit_sha":null,"homepage":"https://gitlab.com/oddnetworks/oddworks/core","language":"JavaScript","has_issues":false,"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/oddnetworks.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2016-02-29T15:42:35.000Z","updated_at":"2024-09-03T02:27:41.000Z","dependencies_parsed_at":"2023-04-12T06:48:44.194Z","dependency_job_id":null,"html_url":"https://github.com/oddnetworks/oddworks","commit_stats":null,"previous_names":[],"tags_count":69,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oddnetworks%2Foddworks","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oddnetworks%2Foddworks/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oddnetworks%2Foddworks/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oddnetworks%2Foddworks/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/oddnetworks","download_url":"https://codeload.github.com/oddnetworks/oddworks/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247147453,"owners_count":20891704,"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":["android-tv","apple-tv","fire-tv","javascript","oddworks","roku","tv","tv-apps","video"],"created_at":"2024-08-01T14:01:04.066Z","updated_at":"2025-04-04T08:31:45.708Z","avatar_url":"https://github.com/oddnetworks.png","language":"JavaScript","readme":"# Oddworks\n\n[![pipeline status](https://gitlab.com/oddnetworks/oddworks/core/badges/master/pipeline.svg)](https://gitlab.com/oddnetworks/oddworks/core/commits/master)\n[![Dependency Status](https://david-dm.org/oddnetworks/oddworks.svg)](https://david-dm.org/oddnetworks/oddworks)\n\n__Oddworks__ is an open source video distribution platform built to destroy the barriers to streaming television. Use it to:\n\n* Deliver your video content to TV connected platforms like Apple TV and Roku.\n* Proxy, cache, and bend the space time continuum between your content management system and existing online video platform (Vimeo, YouTube, Ooyala, Brightcove).\n* Aggregate usage metrics from your video apps to expand viewership and create custom viewing experiences.\n* Distribute content from multiple sources out to your social channels.\n\n_Become your own video distribution channel!_\n\n## Table of contents\n\n* [Documentation](#documentation)\n* [Platform](#platform)\n* [Platform SDKs](#platform-sdks)\n* [Technology](#technology)\n* [Versioning](#versioning)\n* [Motivation](#motivation)\n* [Community](#community)\n* [License](#license)\n\n## Documentation\n\nOddworks is made up of several loosely coupled services. All of these services are automatically installed as dependencies when you install Oddworks. Oddworks uses [NPM](https://www.npmjs.com/) for dependency and package management (see [Technology](#technology) below).\n\n### [stores](https://gitlab.com/oddnetworks/oddworks/core/tree/master/lib/stores)\n\nThe content server is also database agnostic in which you can store your entities in whatever database engine you like or a combination of any.\n\nCurrently Oddworks has support for the following:\n\n- memory (best used for development and testing)\n- redis\n- redis-search (a full text search implementation based on the N-gram algorithm)\n- DynamoDB\n\nThe implementation of these can be found in the `./lib/stores` directory.\n\n### [services](https://gitlab.com/oddnetworks/oddworks/core/tree/master/lib/services)\n\n- [catalog](https://gitlab.com/oddnetworks/oddworks/core/blob/master/lib/services/catalog) (responsible for views, collections, and videos)\n- [identity](https://gitlab.com/oddnetworks/oddworks/core/blob/master/lib/services/identity) (responsible for channels, platforms, viewers, authentication, and entitlements)\n- [server](https://gitlab.com/oddnetworks/oddworks/core/blob/master/lib/services/identity) (a Node.js HTTP server)\n\nThe implementation of these can be found in the `./lib/services` directory.\n\n### middleware\n\nThe available middleware is used when setting up an [Express.js](http://expressjs.com/) HTTP server.\n\nThe implementation of these can be found in the `./lib/middleware` directory.\n\n## Platform\n\nThe Oddworks Platform consists of two main concepts:\n\n1. The __Oddworks Content Server__ which maintains a database of your content and provides it to your apps via a strictly specified [JSON API](http://jsonapi.org/).\n2. The __Oddworks platform SDKs__ which are designed to consume the content from the Oddworks Content Server as well as report usage data back to it.\n\n### Using oddworks\n\n#### Installing\n\n```\n\u003e npm install @oddnetworks/oddworks\n```\n\nIn your server script:\n\n```\nconst oddworks = require('@oddnetworks/oddworks');\n```\n\n### CLI\n\nThe [Oddworks CLI](https://gitlab.com/oddnetworks/oddworks/core-cli) is also available\n\n```\n\u003e npm install -g @oddnetworks/oddworks-cli\n```\n\n### Example Content Server Implementations\n\nCurrent example content server implementations can be found (with their instructions) here:\n\n- [example-single-process](https://github.com/oddnetworks/example-single-process)\n- [example-multi-process](https://github.com/oddnetworks/example-multi-process)\n\n## platform SDKs\n\n* [Apple iOS \u0026 tvOS SDK](https://gitlab.com/oddnetworks/oddworks/core-ios-tvos-sdk) Used for iPhone, iPad, and Apple TV.\n* [Android SDK](https://gitlab.com/oddnetworks/oddworks/core-android-sdk) Used for mobile, tablet, Android TV, and Fire TV.\n* [Roku SDK](https://github.com/oddnetworks/odd-roku-sdk)\n* [JavaScript SDK](https://github.com/oddnetworks/odd-javascript-sdk) for use in [Windows Universal](https://msdn.microsoft.com/en-us/windows/uwp/get-started/universal-application-platform-guide) and web applications.\n\nIn addition to the SDKs there are plans to have open source sample apps which leverage the SDKs available to you as well. You could use these as reference implementations, a hobby project, or make some tweaks and ship your own streaming channel!\n\nAlthough the source repositories are not open source yet there are some [downloads available now](https://www.oddnetworks.com/documentation/sampleapps/) from the website.\n\n## Technology\n\nThe Oddworks Platform is written for the [Node.js](https://nodejs.org/) runtime, and uses the well known [Express.js](http://expressjs.com/) framework for HTTP communication.\n\nOddworks is designed to be database agnostic so long as the underlying database can support JSON document storage, including some RDMSs like PostgreSQL. Currently the only supported and tested database is Redis.\n\nAlthough communication between the platforms and the REST API is typically done in a synchronous way, the inner guts of the system is designed to communicate via asynchronous message passing. This makes it easier to extend the platform with plugins and other loosely coupled modules without worrying about upstream changes like you would in tightly coupled platforms.\n\n## Versioning\n\nFor transparency into our release cycle and in striving to maintain backward compatibility, Oddworks is maintained under [the Semantic Versioning guidelines](http://semver.org/).\n\n## Motivation\n\nThe Oddworks Platform was designed and developed by [Odd Networks](https://www.oddnetworks.com/) to lower the barrier for developers and content owners to create your own streaming content channel. Based on our experience in video gaming we thought that TV could use a big improvement. We believe in the future of television and, with the Oddworks open source platform, we hope you'll make that future a reality.\n\nWe proudly stand behind our open source work and, in addition to maintaining the Oddworks project, Odd Networks also provides hosted services, a Pro Dashboard, a Live Stream Generator, and a Recommendation Service.\n\nCheck out [www.oddnetworks.com](https://www.oddnetworks.com/)\n\n## Community\n\nGet updates on Odd Networks's development and chat with the project maintainers and community members.\n\n* [Contribute] (http://github.com/oddnetworks/oddworks/tree/master/CONTRIBUTING.md)\n* Follow [@oddnetworks on Twitter](https://twitter.com/Oddnetworks).\n* Submit an [issue](https://gitlab.com/oddnetworks/oddworks/core/issues).\n* Read and subscribe to [The Odd Networks Tech Blog](http://oddcast.oddnetworks.com/).\n\n## More Information\n\nFor additional help getting [up and running with Oddworks have a look at this blog post](https://medium.com/@OddNetworks/up-and-running-with-the-oddworks-server-199c897c4224#.n0pes4t1n)\n\n## [Changelog](http://github.com/oddnetworks/oddworks/tree/master/CHANGELOG.md)\n\n## License\n\nApache 2.0 © [Odd Networks](http://oddnetworks.com)\n","funding_links":[],"categories":["JavaScript","HarmonyOS"],"sub_categories":["Windows Manager"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Foddnetworks%2Foddworks","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Foddnetworks%2Foddworks","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Foddnetworks%2Foddworks/lists"}