dev6699 / rntv

RNTV is a video streaming tv/mobile application. Stream video from your sources.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

RNTV

RNTV Logo

What is RNTV?

RNTV is a video streaming application. Stream video from your sources.

Platform Support

Android Web Linux Windows iOS MacOS

Table of Contents

Flow

Made with Lunacy

Main Features

  • HLS Streaming 🌐
  • Video Download with AES-128 Encrypted Stream Support 🔒
  • Android TV Remote Control Support 📺
  • Internationalization: English and Chinese 🌍
  • Save Favorite Videos ❤️
  • Simple and Clean UI with No Ads 📱

Installation

Make sure you have setup react native environment here

Clone this repo

git clone https://github.com/dev6699/rntv.git
cd rntv

Install dependencies

yarn

Development

  1. For android
    yarn start
    
  2. For web,
    yarn web
    
    Open your web browser and go to http://localhost:19006 to access the application.

Add your video sources

  1. Add your source satisfy the following types.

    export type TVideoProvider = {
      /**
       * Called when application first boot up, showing videos in home screen
       */
      getHomeVideoList(): Promise<TVideosRec[]>;
    
      /**
       * Called when `more` button is clicked on home screen
       * @param path url to the video category
       */
      getVideoCategory(path: string): Promise<TVideosRec[]>;
    
      /**
       * Called when `more` button is clicked on category screen
       * @param path url to the video category list
       */
      getVideoCategoryList(path: string): Promise<TVideosRec[]>;
    
      /**
       * Called when video card is clicked
       * @param path url to the video
       */
      getVideoSources(path: string): Promise<TVideoSources>;
    
      /**
       * Called when video episode is clicked
       * @param path url to find the playable video url (e.g. mp4, m3u8...)
       */
      getVideoUrl(path: string): Promise<string>;
    
      /**
       * Called when video search is performed
       * @param keyword video search keyword
       */
      getVideoSearchResult(keyword: string): Promise<TVideo[]>;
    
      /**
       * Called when favourite videos are loaded from local storage
       * to ensure videos status are up to date
       * @param video favourite video stored in local
       */
      updateVideoStatus(video: TVideo): Promise<TVideo>;
    };
  2. Include the source in /src/services/tv/index.ts

    import { TVideoProvider } from './types';
    import * as sample from './sample';
    
    export * from './types';
    
    export const TVService: Record<string, TVideoProvider> = {
      sample,
    } as const;

Release build

  1. For android, find app-release.apk at /android/app/build/outputs/apk/release

    yarn build
    
  2. For desktop, find output at /desktop/out/rntv-desktop-linux-x64/rntv-desktop

    For more information on how the output may vary depending on your environment, please refer to https://www.electronforge.io/cli.

    yarn build:desktop
    

License

license

This project is licensed under the terms of the MIT license.

About

RNTV is a video streaming tv/mobile application. Stream video from your sources.

License:MIT License


Languages

Language:TypeScript 92.0%Language:JavaScript 2.1%Language:Kotlin 1.9%Language:Objective-C 1.7%Language:Ruby 1.6%Language:Objective-C++ 0.6%