{"id":36362,"date":"2016-06-24T17:30:20","date_gmt":"2016-06-24T12:00:20","guid":{"rendered":"http:\/\/www.tothenew.com\/blog\/?p=36362"},"modified":"2016-12-19T15:02:55","modified_gmt":"2016-12-19T09:32:55","slug":"youtube-player-integration-in-android","status":"publish","type":"post","link":"https:\/\/www.tothenew.com\/blog\/youtube-player-integration-in-android\/","title":{"rendered":"YouTube Player Integration in Android"},"content":{"rendered":"<p>YouTube allows you to play it&#8217;s <a title=\"Video Application Development\" href=\"http:\/\/www.tothenew.com\/mobile-smart-tv-application-development\">video in your app<\/a> using the\u00a0youtube player. It also provides data APIs to put like, dislike, or rate comments on a video.<\/p>\n<p>To integrate youtube player you need API key from google console and you can get it using following steps:<\/p>\n<p>1. Get SHA1 fingerprint first by executing &#8220;keytool -list -v -keystore ~\/.android\/debug.keystore -alias androiddebugkey -storepass android -keypass android&#8221; command on terminal.<\/p>\n<p>2. Now visit the\u00a0<a title=\"google console\" href=\"https:\/\/console.developers.google.com\/\">Developer console<\/a> and create credential -&gt; API key under the credentials section.<\/p>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"alignnone size-full wp-image-36557\" src=\"\/blog\/wp-ttn-blog\/uploads\/2016\/06\/console2.png\" alt=\"console2\" width=\"1300\" height=\"707\" \/><\/p>\n<p>3. Get Android API key by passing your package name and SHA1 fingerprint that you got in step 1.<\/p>\n<p>Now download the zip file available at this link <a title=\"Youtube Player\" href=\"https:\/\/developers.google.com\/youtube\/android\/player\/downloads\/\">Download Youtube Player<\/a>.<br \/>\nExtract youtubeAndroidplayer.jar from the\u00a0zip folder and put that in the libs folder of your project.<\/p>\n<p>Open your activity class (let&#8217;s say YoutubeVideoPlayerActivity.java), the activity should extend\u00a0from YouTubeBaseActivity, which will be present in YouTubeAndroidPlayerApi.jar. This activity also contains few initialization listener methods to know the status of the youtube player.<\/p>\n<p>[sourcecode language=&#8221;java&#8221;]<\/p>\n<p>public class YouTubePlayerActivity extends YouTubeBaseActivity implements YouTubePlayer.OnInitializedListener {<\/p>\n<p>private static final int RECOVERY_REQUEST = 1;<br \/>\nprivate YouTubePlayerView youTubeView;<br \/>\nVideoView videoView;<br \/>\nprivate String videoId;<\/p>\n<p>@Override<br \/>\nprotected void onCreate(Bundle savedInstanceState) {<br \/>\nsuper.onCreate(savedInstanceState);<br \/>\nsetContentView(R.layout.activity_main);<\/p>\n<p>videoId = &quot;fhWaJi1Hsfo&quot;;<\/p>\n<p>youTubeView = (YouTubePlayerView) findViewById(R.id.youtube_view);<br \/>\nyouTubeView.initialize(Config.YOUTUBE_API_KEY, this);<br \/>\n}<\/p>\n<p>@Override<br \/>\nprotected void onActivityResult(int requestCode, int resultCode, Intent data) {<br \/>\nif (requestCode == RECOVERY_REQUEST) {<br \/>\n\/\/ Retry initialization if user performed a recovery action<br \/>\ngetYouTubePlayerProvider().initialize(Config.YOUTUBE_API_KEY, this);<br \/>\n}<br \/>\n}<\/p>\n<p>private YouTubePlayer.Provider getYouTubePlayerProvider() {<br \/>\nreturn youTubeView;<br \/>\n}<\/p>\n<p>@Override<br \/>\npublic boolean onCreateOptionsMenu(Menu menu) {<br \/>\nreturn super.onCreateOptionsMenu(menu);<br \/>\n}<\/p>\n<p>@Override<br \/>\npublic boolean onOptionsItemSelected(MenuItem item) {<br \/>\nreturn super.onOptionsItemSelected(item);<br \/>\n}<\/p>\n<p>@Override<br \/>\npublic void onInitializationSuccess(YouTubePlayer.Provider provider, YouTubePlayer youTubePlayer, boolean wasRestored) {<br \/>\nif (!wasRestored) {<br \/>\nyouTubePlayer.cueVideo(videoId); \/\/ Plays https:\/\/www.youtube.com\/watch?v=fhWaJi1Hsfo<br \/>\n}<br \/>\n}<\/p>\n<p>@Override<br \/>\npublic void onInitializationFailure(YouTubePlayer.Provider provider, YouTubeInitializationResult errorReason) {<\/p>\n<p>if (errorReason.isUserRecoverableError()) {<br \/>\nerrorReason.getErrorDialog(this, RECOVERY_REQUEST).show();<br \/>\n} else {<br \/>\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 String error = String.format(getString(R.string.player_error), errorReason.toString());<br \/>\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Toast.makeText(this, error, Toast.LENGTH_LONG).show();<br \/>\n}<\/p>\n<p>}<\/p>\n<p>}<\/p>\n<p>[\/sourcecode]<\/p>\n<p>In the above activity, you need to replace YOUTUBE_API_KEY with your API key you got from your console and <span style=\"color: #000000\">videoId <\/span>with the id of the\u00a0video you want to play in your player.<\/p>\n<p>In your XML file put YouTubePlayerView to play video:<\/p>\n<p>[sourcecode language=&#8221;java&#8221;]<br \/>\n&lt;com.google.android.youtube.player.YouTubePlayerView<br \/>\nandroid:id=&quot;@+id\/youtube_view&quot;<br \/>\nandroid:layout_width=&quot;match_parent&quot;<br \/>\nandroid:layout_height=&quot;wrap_content&quot;\/&gt;;<br \/>\n[\/sourcecode]<\/p>\n<p>Also, you will need internet permission in your manifest file<\/p>\n<p>[sourcecode language=&#8221;java&#8221;]<br \/>\nuses-permission android:name=&quot;android.permission.INTERNET&quot;;<br \/>\n[\/sourcecode]<\/p>\n<p>After running the app, your youtube player will look like:<\/p>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"alignnone size-full wp-image-36582\" src=\"\/blog\/wp-ttn-blog\/uploads\/2016\/06\/scrrenshot_youtube1.png\" alt=\"scrrenshot_youtube\" width=\"1280\" height=\"720\" \/><\/p>\n<p><strong>To like and dislike a video you need to call the following &#8216;GET&#8217; youtube APIs.<\/strong><\/p>\n<p>To like a video-<br \/>\n<span style=\"text-decoration: underline\"><br \/>\n<\/span><\/p>\n<p>To dislike a video-<br \/>\n<span style=\"text-decoration: underline\"><br \/>\n<\/span><\/p>\n<p>Further, to get video statistics such as total number of likes, dislikes, or view count:<br \/>\n<span style=\"text-decoration: underline\"><br \/>\n<\/span><\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>YouTube allows you to play it&#8217;s video in your app using the\u00a0youtube player. It also provides data APIs to put like, dislike, or rate comments on a video. To integrate youtube player you need API key from google console and you can get it using following steps: 1. Get SHA1 fingerprint first by executing &#8220;keytool [&hellip;]<\/p>\n","protected":false},"author":156,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"iawp_total_views":0},"categories":[518],"tags":[4845,2591,1494],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/www.tothenew.com\/blog\/wp-json\/wp\/v2\/posts\/36362"}],"collection":[{"href":"https:\/\/www.tothenew.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.tothenew.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.tothenew.com\/blog\/wp-json\/wp\/v2\/users\/156"}],"replies":[{"embeddable":true,"href":"https:\/\/www.tothenew.com\/blog\/wp-json\/wp\/v2\/comments?post=36362"}],"version-history":[{"count":0,"href":"https:\/\/www.tothenew.com\/blog\/wp-json\/wp\/v2\/posts\/36362\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.tothenew.com\/blog\/wp-json\/wp\/v2\/media?parent=36362"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.tothenew.com\/blog\/wp-json\/wp\/v2\/categories?post=36362"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.tothenew.com\/blog\/wp-json\/wp\/v2\/tags?post=36362"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}