{"id":21905349,"url":"https://github.com/openanime/watch-together-socket","last_synced_at":"2025-04-15T23:37:52.979Z","repository":{"id":238024625,"uuid":"657992815","full_name":"OpenAnime/watch-together-socket","owner":"OpenAnime","description":"Watch together socket server that powers watch together feature in OpenAnime","archived":false,"fork":false,"pushed_at":"2025-03-01T19:38:44.000Z","size":2769,"stargazers_count":9,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-03-29T02:41:43.715Z","etag":null,"topics":["nodejs","socketio","typescript","uwebsocketsjs"],"latest_commit_sha":null,"homepage":"https://openani.me","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/OpenAnime.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":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-06-24T12:38:39.000Z","updated_at":"2025-03-01T19:38:47.000Z","dependencies_parsed_at":null,"dependency_job_id":"303e055a-b059-4d9c-95a9-46e9008be520","html_url":"https://github.com/OpenAnime/watch-together-socket","commit_stats":null,"previous_names":["openanime/watch-together-socket"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OpenAnime%2Fwatch-together-socket","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OpenAnime%2Fwatch-together-socket/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OpenAnime%2Fwatch-together-socket/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OpenAnime%2Fwatch-together-socket/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/OpenAnime","download_url":"https://codeload.github.com/OpenAnime/watch-together-socket/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":249173059,"owners_count":21224481,"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":["nodejs","socketio","typescript","uwebsocketsjs"],"created_at":"2024-11-28T16:32:58.787Z","updated_at":"2025-04-15T23:37:52.972Z","avatar_url":"https://github.com/OpenAnime.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003ca name=\"readme-top\"\u003e\u003c/a\u003e\n\n\u003cbr /\u003e\n\u003cdiv align=\"center\"\u003e\n  \u003ca href=\"https://github.com/OpenAnime/site\"\u003e\n    \u003cimg src=\"/favicon512.png\" alt=\"OpenAnime Logo\" width=\"128\" height=\"128\"\u003e\n  \u003c/a\u003e\n\n  \u003ch3 align=\"center\"\u003eOpenAnime Watch Together Server\u003c/h3\u003e\n\n  \u003cp align=\"center\"\u003e\n    Watch together socket server that powers watch together feature in OpenAnime\n    \u003cbr /\u003e\n    \u003cbr /\u003e\n    \u003ca href=\"https://openani.me\"\u003eWebsite\u003c/a\u003e\n    ·\n    \u003ca href=\"https://github.com/OpenAnime/watch-together-socket/issues\"\u003eReport Bug\u003c/a\u003e\n    ·\n    \u003ca href=\"https://github.com/OpenAnime/watch-together-socket/issues\"\u003eRequest Feature\u003c/a\u003e\n  \u003c/p\u003e\n\u003c/div\u003e\n\n\u003c!-- TABLE OF CONTENTS --\u003e\n  \u003csummary\u003eTable of Contents\u003c/summary\u003e\n  \u003col\u003e\n    \u003cli\u003e\n      \u003ca href=\"#about-openanime\"\u003eAbout OpenAnime\u003c/a\u003e\n      \u003cul\u003e\n        \u003cli\u003e\u003ca href=\"#built-with\"\u003eBuilt With\u003c/a\u003e\u003c/li\u003e\n      \u003c/ul\u003e\n    \u003c/li\u003e\n    \u003cli\u003e\n      \u003ca href=\"#getting-started\"\u003eGetting Started\u003c/a\u003e\n      \u003cul\u003e\n        \u003cli\u003e\u003ca href=\"#prerequisites\"\u003ePrerequisites\u003c/a\u003e\u003c/li\u003e\n        \u003cli\u003e\u003ca href=\"#installation-and-local-deployment\"\u003eInstallation and local deployment\u003c/a\u003e\u003c/li\u003e\n      \u003c/ul\u003e\n    \u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"#contributing\"\u003eContributing\u003c/a\u003e\u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"#license\"\u003eLicense\u003c/a\u003e\u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"#acknowledgments\"\u003eAcknowledgments\u003c/a\u003e\u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"#contributors\"\u003eContributors\u003c/a\u003e\u003c/li\u003e\n  \u003c/ol\u003e\n\n\u003c!-- ABOUT THE PROJECT --\u003e\n\n## About OpenAnime\n\n[![OpenAnime Homepage][OpenAnime-ss]](https://openani.me)\n\nIn March 2022, we founded OpenAnime with the mission of enhancing your anime viewing experience. OpenAnime boasts real-time anime upscaling powered by your GPU, a synchronized 'watch together' feature, personalized playlists, the ability to craft and share your own clips with friends, an immersive offline anime viewing experience directly in your browser, a customizable theme feature, a meticulously crafted video player, and an aesthetically pleasing user interface.\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n### Built With\n\n[![Socket.io][Socket.io]][Socket.io-url]\n[![TypeScript][TypeScript]][TypeScript-url]\n[![Prettier][Prettier]][Prettier-url]\n[![ESLint][ESLint]][ESLint-url]\n[![Vite][Vite]][Vite-url]\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n\u003c!-- GETTING STARTED --\u003e\n\n## Getting Started\n\nThis is an example of how you may give instructions on setting up your project locally.\nTo get a local copy up and running follow these simple example steps.\n\n### Prerequisites\n\n-   Node.js LTS versions 16, 18 and 20 (22 support not yet implemented)\n\n### Installation and local deployment\n\n1. Clone the repo\n    ```sh\n    git clone https://github.com/OpenAnime/watch-together-socket.git\n    ```\n2. Go into the repo directory\n    ```sh\n    cd watch-together-socket\n    ```\n3. Install NPM packages\n    ```sh\n    npm i\n    ```\n4. Create an .env file using .env.example\n\n5. Run locally\n    ```sh\n    npm run dev\n    ```\n    \u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n## Contributing\n\nContributions are what make this community such an amazing place to learn, inspire, and create. Any contributions you make are **greatly appreciated**.\n\nIf you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag \"enhancement\".\nDon't forget to give the project a star! Thanks again!\n\n1. Fork the Project\n2. Create your Feature Branch (`git checkout -b feature/AmazingFeature`)\n3. Commit your Changes (`git commit -m 'Add some AmazingFeature'`)\n4. Push to the Branch (`git push origin feature/AmazingFeature`)\n5. Open a Pull Request\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n\u003c!-- LICENSE --\u003e\n\n## License\n\nDistributed under the Business Source License 1.1. See [license file](https://github.com/OpenAnime/licenses/blob/main/BSL.txt) for more information.\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n\u003c!-- ACKNOWLEDGMENTS --\u003e\n\n## Acknowledgments\n\nWe're grateful to the inspiring projects and individuals who shaped our endeavor. Without them, our project wouldn't be what it is today.\n\n-   [@uNetworkingAB](https://github.com/uNetworkingAB)'s [uWebSockets.js](https://github.com/uNetworking/uWebSockets.js)\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n\u003c!-- ALL CONTRIBUTORS HERE --\u003e\n\n## Contributors\n\n\u003c!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section --\u003e\n\u003c!-- prettier-ignore-start --\u003e\n\u003c!-- markdownlint-disable --\u003e\n\u003ctable\u003e\n  \u003ctbody\u003e\n    \u003ctr\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://spongebed.xyz\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/56435044?v=4?s=100\" width=\"100px;\" alt=\"SpongeBed\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eSpongeBed\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"#code-SpongeBed81\" title=\"Code\"\u003e💻\u003c/a\u003e \u003ca href=\"#content-SpongeBed81\" title=\"Content\"\u003e🖋\u003c/a\u003e \u003ca href=\"#ideas-SpongeBed81\" title=\"Ideas, Planning, \u0026 Feedback\"\u003e🤔\u003c/a\u003e \u003ca href=\"#projectManagement-SpongeBed81\" title=\"Project Management\"\u003e📆\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://hanzy.dev\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/77491112?v=4?s=100\" width=\"100px;\" alt=\"Emirhan\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eEmirhan\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"#infra-hanzydev\" title=\"Infrastructure (Hosting, Build-Tools, etc)\"\u003e🚇\u003c/a\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n  \u003c/tbody\u003e\n\u003c/table\u003e\n\n\u003c!-- markdownlint-restore --\u003e\n\u003c!-- prettier-ignore-end --\u003e\n\n\u003c!-- ALL-CONTRIBUTORS-LIST:END --\u003e\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n\u003c!-- MARKDOWN LINKS \u0026 IMAGES --\u003e\n\u003c!-- https://www.markdownguide.org/basic-syntax/#reference-style-links --\u003e\n\n[TypeScript]: https://img.shields.io/static/v1?style=for-the-badge\u0026message=TypeScript\u0026color=3178C6\u0026logo=TypeScript\u0026logoColor=FFFFFF\u0026label=\n[TypeScript-url]: https://www.typescriptlang.org/\n[Socket.io]: https://img.shields.io/static/v1?style=for-the-badge\u0026message=Socket.io\u0026color=010101\u0026logo=Socket.io\u0026logoColor=FFFFFF\u0026label=\n[Socket.io-url]: https://socket.io\n[Vite]: https://img.shields.io/static/v1?style=for-the-badge\u0026message=Vite\u0026color=646CFF\u0026logo=Vite\u0026logoColor=FFFFFF\u0026label=\n[Vite-url]: https://vitejs.dev/\n[Prettier]: https://img.shields.io/static/v1?style=for-the-badge\u0026message=Prettier\u0026color=222222\u0026logo=Prettier\u0026logoColor=F7B93E\u0026label=\n[Prettier-url]: https://prettier.io/\n[ESLint]: https://img.shields.io/static/v1?style=for-the-badge\u0026message=ESLint\u0026color=4B32C3\u0026logo=ESLint\u0026logoColor=FFFFFF\u0026label=\n[ESLint-url]: https://eslint.org/\n[OpenAnime-ss]: /website.png\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopenanime%2Fwatch-together-socket","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fopenanime%2Fwatch-together-socket","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopenanime%2Fwatch-together-socket/lists"}