GithubHelp home page GithubHelp logo

itvlab / subchannel Goto Github PK

View Code? Open in Web Editor NEW
6.0 3.0 0.0 14.34 MB

Videos from various subreddits that can be played through the Live Channels App, on Android TV

License: MIT License

Java 100.00%
subreddit video android-tv live-channels

subchannel's Introduction

SubChannel

Videos from various subreddits that can be played through the Live Channels App, on Android TV

Download the app from Google Play.

You can also sign up for the beta.

Background

Reddit is a popular source for curated content. Users are able to pick what submissions are the best. This content can be found in the "top" or "hot" sections of Reddit.

What this app does is integrates this hot content with the TV Input Framework. A JobService runs periodically to pull the top content from each selected Subreddit, extract all of the videos, and place them into the program guide.

At this moment, only YouTube videos are playable. Some good examples of Subreddits are /r/YouTubeHaiku and /r/lectures. A variety of good subreddits to add are provided in the app itself.

How Does This Work?

Since the standard Android YouTube SDK doesn't work for video playback, this uses a WebView and loads the YouTube URLs. Then, playback is controlled through JavaScript. The code for doing so is available as a separate library, the YouTube TV Player.

DVR

If your Android TV is running Android 7.0 and up, you will have access to the DVR feature. This will allow certain programs to be saved. Programs are not stored on the device. It is more like a bookmark, where the metadata is saved. Playing that video will start playing the YouTube video.

Compiling

If you encounter any issues in getting the app to build and compile on a device, try running Clean Project first. Then building should work. You'll still see a number of errors but they're benign.

Contributing

If you have any feedback, feel free to write an issue or contribute to the codebase. Pull requests are welcomed.

Known Issues

  • Program guide doesn't match what's playing
    • Yes, I currently don't have the duration of each video, so the guide may be out of sync. However, I do pull from that same guide to get every video.
  • General playback issues
    • Yes, the YouTube Tv Player is still buggy. Refer to that project for issues and upadtes.

subchannel's People

Contributors

amgarera avatar fleker avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

subchannel's Issues

Allow Predefined List or Manual Input

For subreddit choices allow a small list of video based subreddits to choose from such as /r/videos etc; and/or allow manual keyboard input. Possibly all their own separate channel per subreddit, combined if a multireddit.

Fix EPG Data

Right now EPG is bad. It shoves a bunch of improperly timed items.

Let's put this data into a panel that can appear on-screen. The EPG can be made generic.

Shuffle programs in subreddit

Right now programs are inserted but are always linear. You pick up in the same spot. Maybe we should pull into memory and then perform a shuffle to give the user fresh content.

Sanitize user input

App crashes because they tried to pull http://www.reddit.com/r/r%2FChannelWatch/hot.json?&limit=100&show=all. You don't need the /r/ but it happened anyway.

Sanitize user inputs.

Also try/catch these requests so app handles gracefully.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.