YouTube Android API is experimental
"The YouTube Android Player API is an experimental API version, which means it is still in development, though we do not expect major interface changes. Until the experimental label is removed, the Deprecation Policy for YouTube APIs won't apply to this version as discussed in the API Terms of Service."- Users need to run version 4.2.16 of the mobile YouTube app (or higher) to use the API.
- Change API Key before compiling & running source code.
Step 1 : Download YouTube Android API : download
Step 2 : Create Android Project named "YouTubeAPIDemo" using eclipse.
Step 3 : Register this demo to get API key
https://developers.google.com/youtube/android/player/register
Step 3 : Unzip YouTube Android API.
Go to folder -> libs
Copy "YouTubeAndroidPlayerApi.jar"
Paste in Android Project : YouTubeAPIDemo->libs
Right click on YouTubeAndroidPlayerApi.jar -> Build Path -> Add to build path.
Step 4 : Add YouTube Video Player View in activity_main.xml, player view display in bold.
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity" >
<TextView
android:id="@+id/textView1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:background="#C0C0C0"
android:text="Enter Only Video ID in below EditText example : https://www.youtube.com/watch?v=fhWaJi1Hsfo"
android:textAppearance="?android:attr/textAppearanceLarge" />
<EditText
android:id="@+id/eturl"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentRight="true"
android:layout_below="@+id/textView1"
android:hint="Enter YouTube URL and Press Enter"
android:text="fhWaJi1Hsfo"
android:singleLine="true"
android:imeOptions="actionGo" >
</EditText>
<com.google.android.youtube.player.YouTubePlayerView
android:id="@+id/youtubeplayer"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_below="@+id/eturl"
>
</com.google.android.youtube.player.YouTubePlayerView>
</RelativeLayout>
Step 5 : Let's modify main activity code
package com.kpbird.youtubeapidemo;
import android.os.Bundle;
import android.view.KeyEvent;
import android.view.inputmethod.EditorInfo;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.TextView.OnEditorActionListener;
import android.widget.Toast;
import com.google.android.youtube.player.YouTubeBaseActivity;
import com.google.android.youtube.player.YouTubeInitializationResult;
import com.google.android.youtube.player.YouTubePlayer;
import com.google.android.youtube.player.YouTubePlayer.Provider;
import com.google.android.youtube.player.YouTubePlayerView;
public class MainActivity extends YouTubeBaseActivity
implements YouTubePlayer.OnInitializedListener,OnEditorActionListener {
private YouTubePlayerView ytpv;
private YouTubePlayer ytp;
private EditText et;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ytpv = (YouTubePlayerView) findViewById(R.id.youtubeplayer);
ytpv.initialize("AIzaSyC-R09MYt2HS82nxKuFCzvNgC60DnxFcqM", this);
et = (EditText) findViewById(R.id.eturl);
et.setOnEditorActionListener(this);
}
@Override
public void onInitializationFailure(Provider arg0,YouTubeInitializationResult arg1) {
Toast.makeText(this, "Initialization Fail", Toast.LENGTH_LONG).show();
}
@Override
public void onInitializationSuccess(Provider provider, YouTubePlayer player,boolean wasrestored) {
ytp = player;
Toast.makeText(this, "Initialization Success", Toast.LENGTH_LONG).show();
}
@Override
public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
if(actionId == EditorInfo.IME_ACTION_GO ){
if(ytp !=null){
ytp.loadVideo(et.getText().toString());
}
}
return false;
}
}
- Extends class with YouTubeBaseActivity
- Implements YouTubePlayer.OnInitializedListener
- Call initialize method with API key and class object
- YouTubePlayer.loadVideo(<video id>)
Download Demo : Click
[ File->Download to download entire zip file]
Reference
- https://developers.google.com/youtube/android/player/
- https://developers.google.com/youtube/android/player/register
- https://developers.google.com/youtube/android/player/register



I am asking this question to everywhere I come accross.
ReplyDeleteIn all the blog posts and tutorials, they are saying that there is a possibility that we can display ads in Youtube Player API. How can we do that? I am displayin a youtube video that has ads in it in desktop environment but not in my Android application. Besides I want to display video ads. How can we do those?
Hello Said,
ReplyDeleteIf you want to display ads inside YouTubePlayer same as Desktop, I don't think It is possible right now but You can integrate Google AdMob in Android application and place admob layout below your YouTubePlayerView.
For more information you can contact to Reto Meier, He is right guy to ask inside questions - https://plus.google.com/111169963967137030210/about
Of course I can integrate admob ads. Even in the official blog post of Youtube Player API, they have mentioned about the ads in YoutubeplayerView. But the did not mention anything about how to do that.
ReplyDeleteThere is a problem in the intialization ots not working
ReplyDeletei am getting error like:An error occurred while intializing the YouTube Player
ReplyDeletePlease post your error. so I can help you better
ReplyDeletedo you know how i can get the title of the video ?
ReplyDeleteHello Pishty Agha,
ReplyDeleteAccording to Classes & Interface list, I don't think YouTubePlayer API provide title of video. Reference : https://developers.google.com/youtube/android/player/reference/com/google/android/youtube/player/YouTubePlayerView
YouTube provide data api , web service, You can fetch title and all other information using data api. https://developers.google.com/youtube/v3/
Initialization Success but video not show up
ReplyDeleteInitialization Succes but why cant load youtube ?
ReplyDeleteHey,
ReplyDeleteis it correct, that the youtube api required the youtube app? my app shows me the message: "An error occurred while intializing the YouTube Player". now i have downloaded the youtube app an it works....