Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Launching Android Netflix App And Passing Video Id

In the app I am working on I want to support Netfilx streaming. I intend on doing this by simply starting Netflix and passing a specific URI so it plays a specific video when started. Simple right? Well, the issue is I'm not sure how to pass the video id info in the Intent I use to start the Activity.

I've read the post here , but am unsure where to use this. I used Intent.setData() since it accepts a URI, but to no avail.

Here is what I have been doing (I am hard coding the movie data, this is just for testing purposes) :

// the Netflix intent
Intent intent = getPackageManager().getLaunchIntentForPackage("com.netflix.mediaclient");
//the uri
Uri uri = Uri.parse("http://movies.netflix.com/WiPlayer?movieid=70266228&trkid=13462049&ctx=0%2C1%2Ce2bd7b74-6743-4d5e-864f-1cc2568ba0da-61921755");
intent.setData(uri);
//launches but does not go to the video
startActivity(intent);

I've also tried using the URI protocol in the link above like so:

Uri uri = Uri.parse("nflx://movies.netflix.com/WiPlayer?movieid=70266228&trkid=13462049&ctx=0%2C1%2Ce2bd7b74-6743-4d5e-864f-1cc2568ba0da-61921755");

but still am not seeing the video play.

I feel like I am missing something simple here, although I have had very little luck Googling for this, I could find next to nothing about starting the Netflix Android app from another application. The Netflix developer resources don't have any info on this.

Does anyone have any suggestions on how I can do this or where I should be looking for documentation on this? Any help would be appreciated. Thanks much!

like image 425
TheMethod Avatar asked Aug 13 '13 19:08

TheMethod


People also ask

Why Netflix APK is not working?

Smartphone users should start by force-stopping the Netflix app. If it still doesn't work, try turning your phone off and on again. And if it still doesn't work, you will need to delete the app and reinstall it from the appropriate app store. The same methodology applies if you're using a set-top streaming box.

Why can't I get Netflix on my phone?

Check your Android's Play Protect status The Netflix app might not appear in the Play Store if your phone or tablet isn't Play Protect certified. To check your device's Play Protect status: Open the Play Store app. From the upper right, tap your Profile icon.

Can I watch Netflix on my phone without the app?

Sign in with your Netflix account to watch instantly on the web at netflix.com from your personal computer or on any internet-connected device that offers the Netflix app, including smart TVs, smartphones, tablets, streaming media players and game consoles.

How does Netflix work on phone?

Once you've opened the Netflix app or Netflix website, select Sign In to access your account and begin watching TV shows and movies. You can sign in on any Netflix-compatible device, or on multiple compatible devices. If you experience any issues, review the troubleshooting steps at Can't sign in to Netflix.


1 Answers

I've managed to do this. With the following code. First you need the movieId (or videoId) for netflix, then compose the URL to watch.

String netFlixId = "43598743"; // <== isn't a real movie id
String watchUrl = "http://www.netflix.com/watch/"+netFlixId;

Then with this intent

try {
        Intent intent = new Intent(Intent.ACTION_VIEW);
        intent.setClassName("com.netflix.mediaclient", "com.netflix.mediaclient.ui.launch.UIWebViewActivity");
        intent.setData(Uri.parse(watchUrl));
        startActivity(intent);            
}
catch(Exception e)
{
        // netflix app isn't installed, send to website.
        Intent intent = new Intent(Intent.ACTION_VIEW);
        intent.setData(Uri.parse(item.url));
        startActivity(intent);
}

I haven't tried with TV Shows yet. But this works beautifully. If you want to send to the profile page of the movie.. Send it to a url formatted this way

http://www.netflix.com/title/324982

I also found out how to search for a title.

try {
        Intent intent = new Intent(Intent.ACTION_SEARCH);
        intent.setClassName("com.netflix.mediaclient", "com.netflix.mediaclient.ui.search.SearchActivity");
        intent.putExtra("query", item.label);
        startActivity(intent);

    }
    catch(Exception e)
    {
        Toast.makeText(this, "Please install the NetFlix App!", Toast.LENGTH_SHORT).show();

    }
like image 134
mlegris Avatar answered Nov 10 '22 12:11

mlegris