{"id":36760243,"url":"https://github.com/dev6699/rntv","last_synced_at":"2026-01-12T12:54:12.274Z","repository":{"id":158513402,"uuid":"516933387","full_name":"dev6699/rntv","owner":"dev6699","description":"RNTV is a video streaming tv/mobile application. Stream video from your sources.","archived":false,"fork":false,"pushed_at":"2025-12-19T13:48:56.000Z","size":27765,"stargazers_count":6,"open_issues_count":0,"forks_count":2,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-12-22T05:36:53.934Z","etag":null,"topics":["android-tv","hls-stream","react-native","react-native-video","video","video-downloader"],"latest_commit_sha":null,"homepage":"","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/dev6699.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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2022-07-23T01:59:30.000Z","updated_at":"2025-12-19T13:49:00.000Z","dependencies_parsed_at":"2024-07-25T14:44:31.779Z","dependency_job_id":null,"html_url":"https://github.com/dev6699/rntv","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/dev6699/rntv","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dev6699%2Frntv","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dev6699%2Frntv/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dev6699%2Frntv/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dev6699%2Frntv/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dev6699","download_url":"https://codeload.github.com/dev6699/rntv/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dev6699%2Frntv/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28338990,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-12T12:22:26.515Z","status":"ssl_error","status_checked_at":"2026-01-12T12:22:10.856Z","response_time":98,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: 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":["android-tv","hls-stream","react-native","react-native-video","video","video-downloader"],"created_at":"2026-01-12T12:54:11.432Z","updated_at":"2026-01-12T12:54:12.265Z","avatar_url":"https://github.com/dev6699.png","language":"TypeScript","readme":"# RNTV\n\n\u003cp align=\"center\"\u003e\n    \u003cpicture \u003e\n      \u003cimg alt=\"RNTV Logo\" src=\"./docs/rntv-logo.png\" width=\"200\"\u003e\n    \u003c/picture\u003e    \n\u003c/p\u003e\n\n## What is RNTV?\n\nRNTV is a video streaming application. Stream video from your sources.\n\n#### Platform Support\n\n| Android | Web | Linux | Windows | MacOS | IOS |\n| :-----: | :-: | :---: | :-----: | :---: | :-: |\n|   ✅    | ✅  |  ✅   |   ✅    |   ✅  |  ❓ |\n\n## Table of Contents\n\n- [What is RNTV?](#what-is-rntv)\n- [Table of Contents](#table-of-contents)\n- [Flow](#flow)\n- [Main Features](#main-features)\n- [Installation](#installation)\n- [Development](#development)\n- [Add your video sources](#add-your-video-sources)\n- [Release build](#release-build)\n- [License](#license)\n\n## Flow\n\nMade with _[Lunacy](https://icons8.com/lunacy)_\n\n\u003cimg src=\"./docs/flow.png\" width=\"100%\" height=\"100%\"\u003e\n\n## Main Features\n\n- Built in web browser for downloading videos from websites 📥\n- HLS Streaming 🌐\n- Video Download with AES-128 Encrypted Stream Support 🔒\n- Android TV Remote Control Support 📺\n- Internationalization: English and Chinese 🌍\n- Save Favorite Videos ❤️\n- Simple and Clean UI with No Ads 📱\n\n## Installation\n\nMake sure you have setup react native environment [here](https://reactnative.dev/docs/environment-setup)\n\nClone this repo\n\n```bash\ngit clone https://github.com/dev6699/rntv.git\ncd rntv\n```\n\nInstall dependencies\n\n```bash\nnpm i\n```\n\n## Development\n\n**NOTE:**\nTo build your project for TV, you should change your package.json imports to import react-native as follows, so that this package is used instead of the core react-native package. [More information](https://github.com/react-native-tvos/react-native-tvos?tab=readme-ov-file#react-native-tvos)\n```\n\"react-native\": \"npm:react-native-tvos@\u003cversion\u003e\"\n```\n\n1. For android\n   ```\n   npm run start\n   npm run android\n   ```\n2. For web,\n   ```\n   npm run web\n   ```\n   Open your web browser and go to http://localhost:8081 to access the application.\n\n### Add your video sources\n\n- Sample source can be found at [/src/services/tv/sample.ts](/src/services/tv/sample.ts)\n\n1. Add your source satisfy the following [types](/src/services/tv/types.ts).\n\n   ```typescript\n   export type TVideoProvider = {\n     /**\n      * Called when application first boot up, showing videos in home screen\n      */\n     getHomeVideoList(): Promise\u003cTVideosRec[]\u003e;\n\n     /**\n      * Called when `more` button is clicked on home screen\n      * @param path url to the video category\n      */\n     getVideoCategory(path: string): Promise\u003cTVideosRec[]\u003e;\n\n      /**\n      * Called when reached the end of category screen\n      * @param path url to the video category list\n      * @param page next page to load\n      */\n      getVideoCategoryMore(path: string, page: number): Promise\u003cTVideosRec\u003e\n\n     /**\n      * Called when video card is clicked\n      * @param path url to the video\n      */\n     getVideoSources(path: string): Promise\u003cTVideoSources\u003e;\n\n     /**\n      * Called when video episode is clicked\n      * @param path url to find the playable video url (e.g. mp4, m3u8...)\n      */\n     getVideoUrl(path: string): Promise\u003cstring\u003e;\n\n     /**\n      * Called when video search is performed\n      * @param keyword video search keyword\n      */\n     getVideoSearchResult(keyword: string): Promise\u003cTVideo[]\u003e;\n\n     /**\n      * Called when favourite videos are loaded from local storage\n      * to ensure videos status are up to date\n      * @param video favourite video stored in local\n      */\n     updateVideoStatus(video: TVideo): Promise\u003cTVideo\u003e;\n   };\n   ```\n\n2. Include the source in [/src/services/tv/index.ts](/src/services/tv/index.ts)\n\n   ```typescript\n   import { TVideoProvider } from './types';\n   import * as sample from './sample';\n\n   export * from './types';\n\n   export const TVService: Record\u003cstring, TVideoProvider\u003e = {\n     sample,\n   } as const;\n   ```\n\n## Release build\n\n1. For android, find `app-release.apk` at [/android/app/build/outputs/apk/release](/android/app/build/outputs/apk/release)\n\n   ```\n   npm run build\n   ```\n\n2. For desktop, find output at [/desktop/out/rntv-desktop-linux-x64/rntv-desktop](/desktop/out/rntv-desktop-linux-x64/rntv-desktop)\n\n   For more information on how the output may vary depending on your environment, please refer to https://www.electronforge.io/cli.\n\n   ```\n   npm run build:desktop\n   ```\n\n## License\n\n[![license](https://img.shields.io/badge/license-MIT-green.svg)](https://github.com/dev6699/rntv/blob/main/LICENSE)\n\nThis project is licensed under the terms of the [MIT license](/LICENSE).\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdev6699%2Frntv","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdev6699%2Frntv","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdev6699%2Frntv/lists"}