Skip to content
Utility library around using YouTube inside your android app.
Branch: master
Clone or download
anirudhramanan and thekirankumar Migration to Android X (#19)
* bumping gradle version and migrating to android x

* Update .travis.yml
Latest commit deef5b4 Feb 19, 2019
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
app Migration to Android X (#19) Feb 19, 2019
gradle/wrapper Migration to Android X (#19) Feb 19, 2019
inline-youtube-view Migration to Android X (#19) Feb 19, 2019
.gitignore ignore idea files Nov 17, 2018
.travis.yml
LICENSE Fixing copyright Feb 7, 2018
PULL_REQUEST_TEMPLATE.md Create PULL_REQUEST_TEMPLATE.md Feb 5, 2018
README.md
build.gradle
gradle.properties
gradlew deleted ios and react-native, only android support Feb 8, 2018
gradlew.bat deleted ios and react-native, only android support Feb 8, 2018
settings.gradle
youtube-activity-android.gif Add files via upload Jan 24, 2018
youtube-fragment-android.gif youtube-fragment-android gif Jan 24, 2018
youtube_iframe_player.html deleted ios and react-native, only android support Feb 8, 2018

README.md

inline-youtube-view

Build Status

YouTube component for Android, iOS and React. This is a suite of utility libraries around using YouTube inside your Android, iOS or React Native app.

youtube-android

Playing Youtube on Android (specially inline) comes with some challenges :

  • YouTube SDK does not work on all devices ( where YouTube services could have been uninstalled)
  • You cannot run more than one instance of the YouTube view
  • Playing them inline where in a list you can have more than one videos in a single list.

inline-youtube-view for Android checks if the services are available and will fall back gracefully to using WebView in the event they are not.

YouTubePlayerView : The YouTubePlayerView provided by the YouTube SDK comes with a restriction that the activty hosting this needs to extend from YouTubeBaseActivity. This view removes these restrictions.

Demo Gifs

YouTubePlayer in Activity (Fullscreen Mode)

YouTube Activity

YouTubePlayer in Fragment (inline native)

YouTube Fragment

How to use ?

Add it in your root build.gradle at the end of repositories :

allprojects {
   repositories {
     ...
     maven { url "https://jitpack.io" }
   }
}

Add the dependency

dependencies {
    implementation 'com.github.flipkart-incubator:android-inline-youtube-view:1.0.3'
}

YouTubePlayer Activity

Start an YouTubeActivity intent with apiKey and videoId. This will play the youtube video in a new activity in fullscreen mode.

Intent intent = new Intent(MainActivity.this, YouTubeActivity.class);
intent.putExtra("apiKey", Constants.API_KEY);
intent.putExtra("videoId", "3AtDnEC4zak");
startActivity(intent);

Also, make sure that you add the activity in the AndroidManifest.xml file.

<activity android:name="com.flipkart.youtubeview.activity.YouTubeActivity" />

YouTubePlayer Inline

Create an instance of YouTubePlayerView inside a fragment. To initialize the player, you need to call the initPlayer method with following params:

  1. apiKey
  2. videoId
  3. webviewUrl : the link to iframe.html file (this is required when the device is not able to render native video, a fallback). By default, use 'https://cdn.rawgit.com/flipkart-incubator/inline-youtube-view/60bae1a1/youtube-android/youtube_iframe_player.html'
  4. playerType : native, webview or auto (try native, else fallback to webview)
  5. listener : callback listener
  6. fragment : fragment hosting this view
  7. imageLoader : to load thumbnail image
YouTubePlayerView playerView = new YouTubePlayerView(context);
playerView.initPlayer(Constants.API_KEY, videoId, "https://cdn.rawgit.com/flipkart-incubator/inline-youtube-view/60bae1a1/youtube-android/youtube_iframe_player.html", playerType, listener, fragment, imageLoader);

YouTube iOS Player

We have open-sourced the inline-youtube-player for iOS also.

Contributing

The easiest way to contribute is by forking the repo, making your changes and creating a pull request.

You can’t perform that action at this time.