i am new to the google cast development. Currently i've successfully developed an app that can cast online media (e.g. this mp3) by using the RemoteMediaPlayer class.
Now i have tried to cast an YouTube video (this video) by using the same technique but it won't start casting. The callback of GoogleApiClient.load() says that the operation was not successful.
So, is it possible to cast a YouTube video (or another streaming platform videos such as vimeo) by using the RemoteMediaPlayer class?
You need to have a link to the media, and media should be in one of the formats that is payable on Chromecast (see our documentation for accepted formats). Otherwise you will not be possible. For YouTube specifically, you don't have access to the mp4 files (at least not through YouTube APIs) so you cannot play a YT content in your app's receiver; some have tried using the embedded iframe but it is not always successful and it is limited.
Related
I want to implement a simple livestream to my iOS and android apps.
I can use youtube.com to record the livestream, and broadcast it as a regular video in my apps. I don't want to implement heavy SDKs or build a platform to do so.
What is the best choice?
Have come across - kickflip.io, livestreamsdk.com, ustream.tv, etc.
With the first 2, you have to setup the whole thing. While I was thinking if I can simply embed like a Youtube player which will show the broadcast.
The YouTube Live Streaming API lets you create, update and manage live events on YouTube. The Live Streaming API is actually comprised of components of the YouTube Data API and the YouTube Content ID API.
Before you start:
You need a Google Account to access the Google Developers Console, request an API key and register your app.
Register your app https://developers.google.com/youtube/registering_an_application with Google so that it can submit API request.
After registering your app, select the YouTube Data API as one of the services that your app uses.
Here's a demo app which shows how to use liveBroadcasts, liveBroadcast is a resource represents an event that will streamed via live video on YouTube:
https://github.com/youtube/api-samples/blob/master/python/create_broadcast.py
Made a way out using Youtube Player. Tried both using youtube embed in webview and youtube player using SDK, and it worked just fine. Some manual controls were required to be added to better handle for the live streaming purpose, but the rest worked smooth.
Used Wirecast for streaming the media (broadcasting) to Youtube, and youtube's rtmp handles the rest nearly.
I want to play youtube videos in my Android TV APP.
I am also working on a Android phone/tablet APP and I was able to use Youtube Android API to play videos.
But when I try to use the same API on Android TV it gives me an error ("This app won't work unless you update the YouTube"), but my youtube is updated.
I found this issue in the YouTube Android Player API issue tracker, it is the same problem that I am facing here, so I want to know if someone have a solution, or know another version of the API that may work. I am using YouTube Player Android API v1.2.2.
I know that I can open youtube via Intent, but I need to use the YouTube API to show videos.
The YouTube playback API may not work on Android TV, but you can always implement your own playing mechanism in-app. Take a look at YouTube's web player API: https://developers.google.com/youtube/iframe_api_reference
You can load a WebView in your app and from there add an iframe and JS logic to integrate with your controller.
To interface between your JS and Java code, take a look at a project like this: https://github.com/Fleker/WebGameBridge.js for how to use the WebView APIs.
In terms of getting data, there are also web APIs for this that you can access through your WebView.
I've created YoutubeTV library, a wrapper for YouTube Player API Reference for iframe Embeds
It provides a YoutubeTvView that embeds a Webview with Youtube iframe with all Javascript API available from this view.
Also, YoutubeTvFragment holds a YoutubeTvView with a media control bar (PlaybackOverlayFragment)
I have the same understanding with you. YouTube API works only smartphone YouTube app and not for Android TV YouTube app.
I think if you are thinking of publishing Android TV app, you cannot use YouTube Player Android API except Intent for now. Because you should expect user installs Android TV YouTube app.
For reference,
Current behavior of YouTube Android Player API is summarized here.
Source code which uses YouTube Intent to play YouTube video in Android TV.
What is the best way to play a Youtube Video in my Android app ? I want to play the video in my app, and not in youtube's app.
I make some search with the VideoView, but it seems that it's obsolete now...
Have you some examples ?
Thanks
Download the Youtube Api Demo App, it shows how to use the Youtube Player API and the different ways to reproduce videos (using a YouTubePlayerView, using YoutubePlayerFragment, etc). However, it only shows how to display a video when you already know the id of the video.
If you want to search for a video and then display it. Then you need to learn how to use the Youtube Data Api. Here is an example of a request which returns a JSON response (just click "execute").
To use the Data Api from Android, you can use an HttpURLConnection object, or use the Youtube Data Api Client Library, that's up to you.
Once you have retrieved the video's data from the Youtube Data Api. Use the Youtube Player Api to display the videos.
I have Styled Media Receiver app on the web side, and I need to cast Youtube video from my Android sender app, by providing a link to it. If I cast a mp4 file, it works, but with youtube link - no.
I saw there was an ability to do casting with the previous SDK.. is there any chance to cast youtube video with the newest SDK?
No, with the current official SDK, you cannot do that.
I did google about this question and I found 4 possible ways to do it:
play the video with the following manner:
startActivity(newIntent(Intent.ACTION_VIEW,Uri.parse(uri)));
Get the RTSP link and play the video with VideoView
play the video using Flash
Using HTML5 iframe
I have an android 4.0 device and I am able to play YouTube videos using the first three methods. My question is: which method is the most adaptable to different version. If the answer is using HTML5, how can I do it. Thank you very much for your time.
The most allround way of doing it to open it with a URI parse. There is also a way of forcing the YouTube app to be called(sorry I think I read it someplace but I do not remember how) and show the video there. This means you do not get the option to chose to open the video in the browser.
The rest of the alternatives are only supported by some devices. (Flash is outdated, HTML5 is not supported on most devices). I you are going to do something else then using the buildt-in YouTube app I would recomend RTSP as the best option.