/SmartTubeNext

Better YouTube experience on Android TV

Primary LanguageJavaOtherNOASSERTION

SmartTubeNext

Loading Card

SmartTubeNext is an unofficial YouTube client for Android TV.

Current release features:

  • Run on Android 4.3 and above
  • Browse News, Games, Music
  • Browse Subscriptions, History, Playlists
  • Play videos
  • Like, Dislike or Subscribe for video
  • Search for videos
  • View subscribed channel content
  • Change various settings for the video player
  • Animated previews for videos
  • Android TV channels and search support

Useful links:

Screens

The browse fragment is what is used to display the browseable categories and options card. The Icon Header Item Presenter is used to setup and display the categories in the headers dock and Card Presenter is used to display the Video cards.

Main

Browse Subscriptions

The Playback Activity is used to play the video from categories. Which used the PlaybackFragment to display the playback controls over the top of the PlaybackActivity.

Video

Video Related

The Search Fragment allows users to search for video by either tags or usernames.

Search

Search with keyboard

The Header Grid Fragment is used to show a grid of videos from either a Subscriptions or History.

History grid

Custom Components

Many of the screens used some of these custom components created especially for the needs of this app:

Badge Card View

This view extends the ImageCardView class so that we add custom functionality. The functionality of this view is display a video preview of the video card that is currently in focus. It's made up of the following components:

Building

To build, install and run a debug version, run this from the root of the project:

git clone https://github.com/yuliskov/SmartTubeNext.git
cd SmartTubeNext
git submodule update --init
./gradlew buildStbetaDebug

Unit Tests

To run the unit tests for the application:

./gradlew testDebugUnitTest

User Interface Tests

To run the user interface tests for the application:

./gradlew connectedDebugAndroidTest