9
votes

API JavaScript pour Netflix Instant Player (Silverlight)?

Y a-t-il une API JavaScript pour le joueur instantané Netflix (Silverlight)? De préférence, une personne prise en charge, documentée, mais non supportée, sans-papiers pourrait être correcte aussi; Ceci est pour un projet personnel.

J'aimerais pouvoir jouer / faire une pause et chercher à un moment donné.


1 commentaires

Voir aussi Stackoverflow.com/Questions/9195337/... et pour contrôler le lecteur HTML5, voir Stackoverflow.com/q/27927950/32453


6 Réponses :


1
votes

Peut-être que la page Web officielle Netflix est un endroit pour commencer à chercher?

http://developer.netflix.com/docs/javascript_apis


1 commentaires

J'ai commencé là avant de poser la question; Malheureusement, cette API semble être pour trouver / faire la queue / jouer des films instantanés, ne pas contrôler le joueur. (TBF, ma question initiale était vague sur ce que je voulais faire.)



3
votes

Puisque vous avez mentionné non documenté ...

dans Silverlight pour une méthode d'expositionner directement à JavaScript, il a besoin d'attributs [scriptableType] sur sa classe et [scriptblember] sur lui-même. Vous pouvez essayer d'ouvrir le fichier XAP pour le joueur Netflix, désassemblant l'assemblage principal et rechercher des méthodes avec [scriptblembernember] attaché à eux. Cela peut ne pas rentrer quoi que ce soit utile, mais c'est quelque chose que vous pouvez essayer néanmoins.


1 commentaires

Quelqu'un finit par faire cela? Je suis sur un Mac, donc je n'ai pas le moyen de disséquer l'application Silverlight de Netflix. Je cherche aussi à contrôler la vidéo de jouer sur Netflix en utilisant JavaScript.



13
votes

Je me suis amusé à creuser dans ceci, et je pense avoir trouvé votre réponse.

Pour commencer, j'ai trouvé un poste (certiforme) de quelqu'un à Netflix indiquant que leurs exigences de licence leur ont empêché de fournir des moyens de contrôler le joueur. à l'extérieur (tout devait être enveloppé dans une application de marque Netflix et fournir des moyens d'interagir avec le joueur de l'extérieur vous permettrait d'intégrer le joueur Netflix dans des endroits où cela ne devrait pas aller.) Vous pouvez trouver cette réponse ici (bien que ce soit Quatre ans, j'imagine que cela n'a pas beaucoup changé.) p>

http://developer.netflix .com / forum / lecture / 54172 p>

J'ai essayé de me serrer sur la page "Regarder instantanément", et il y a des objets comme Netflix.Silverlight et Netflix.silverlight.MoviePlayer (qui a un Méthode Getplugin () qui renvoie quelques détails sur le plugin et les événements hardinables, mais aucune méthode de contrôle,) mais elles doivent surtout à faire de l'exposition de la taille de la visualisation de joueur t, entre autres choses nécessaires pour le placer sur la page. Je ne pouvais vraiment rien trouver dans aucun des objets qui suggèrent qu'ils ont interagi avec le joueur de cinéma qui semblerait me permettre d'y accéder. P>

J'ai aussi accroché les fichiers binaires du joueur, et je serre à travers eux je ' J'ai trouvé un objet scriptInterface en interne avec [scriptBlablember] -decorated méthodes appelées playmovie (), stopmovie (), showcurtain (), hidecurtain (). p>

Alors, j'ai remarqué qu'il y a un autre espace de noms dans les fichiers binaires du joueur appelé netflix.silverlight.cbpapp.hostedPlayer, qui possède sa propre interface - hostedPlayerscriptLaceface. Cela a tout em> que vous souhaitez en informatique - des données sur la position de jeu, des contrôles pour augmenter et diminuer la vitesse de jeu, la pause, la lecture, la position de jeu, la mise en place de la position de jeu, etc. Tous ces sont décorés comme [ Scriptablember] s. P>

Maintenant, je brise votre cœur - on dirait (pour une raison quelconque) Cette interface n'est pas exposée comme un [scriptableType], qui est à ma compréhension, c'est une condition nécessaire pour pouvoir y accéder de javascript. En fait, les seules choses qui semblent être exposées de cette manière sont des événements que le joueur tire. Je suppose que ce code est destiné à intégrer avec d'autres partenaires ou à rester à partir d'une personne qu'ils ont hérité du code d'origine pour le lecteur vidéo, mais il semble intentionnellement que ce paramètre [scriptableType] soit laissé de côté. Il peut y avoir un moyen de demander un binaire qui est construit pour être "hébergé", bien que je ne suis pas sûr de ce que cela signifie, et je soupçonne aussi qu'il sera évident de manière transparente pour les personnes qui surveillent ce que vous essayez de faire et d'avoir un arrêtez-vous rapidement. P>

Désolé pour la réponse à long terme qui se termine dans la déception, mais il semble qu'il n'y a pas vraiment un moyen de faire cela. J'ai vu des suggestions qui montaient essentiellement à envoyer des coups de frappe à la fenêtre du navigateur qui imitatent les contrôles du clavier, mais cela n'est clairement pas ce que vous recherchez, alors je vais aller avec «non» comme une réponse ici . :) P>

EDIT: P>

Des recherches supplémentaires montrent que ce n'est pas l'impasse que je pensais que c'était. Je mettrai à jour cela une fois que j'ai terminé de creuser. P>

Editer 2: p>

Donc, on dirait que vous devez tromper le joueur Netflix en pensant qu'il fonctionne en mode joueur hébergé. Certaines options de configuration peuvent être transmises, mais je ne sais pas comment, plus précisément, vous le feriez. On dirait que tout est tout mis en place sur l'initialisation du joueur - peut-être une sorte de bookmarklet pourrait recharger la page et injecter un changement? Ou peut-être simplement recharger le joueur et modifier les paramètres. P>

silverlightPlayer.content.findName('HostedPlayerControlScriptInterface_1').WhateverMethod()


1 commentaires

Grande rédaction. J'ai essayé de suivre ce que vous avez fourni en définissant la configuration du joueur hébergé avec le script TAMPONKey suivant dans Chrome, Paste.kde. org / 734150 . Malheureusement, il semble que les options qui le tournent probablement correctement causent le joueur de ne pas charger (voir les commentaires dans Coller). Après chargement avec une autre option (ou aucune), ce qui suit ne fonctionne jamais. varecteur var = document.getElementyID ('slplayer'); joueur.content.findname ('HostedPlayConTrolScriptInterface_ 1'); // Null Player.Content // semble droit Je ne suis pas familier avec Silverlight, mais toutes les pensées?



1
votes

Boxee aurait pu être capable de le contrôler à un moment donné: http: // dir. boxee.tv/apps/helper2/netflix.js

(quelques fourches de cela peuvent être aussi bien).

Je me demande également si Netflix transférer à une implémentation HTML5 permettrait d'en quelque sorte un plugin de contrôler la lecture. GL!


3 commentaires

Il semble que le script de Boxee est basé sur HostedPlayer, que le poste de Max est indiqué sur une imported. Vous pouvez vérifier que avec netflix.silverlight.movieplayer.getplugin (). Paramètres.hostedp Layer qui est faux, et netflix.silverlight.movieplayer.get_hosted_player_control () 'T Travailler. Chrome, mes vidéos utilisent HTML5 si vous avez donc raison que cela fonctionnera peut-être là-bas!


@Deekdahmer Peut-être que c'est possible ces jours-ci, ex: Stackoverflow.com/a/27931990/32453


@Derekdahmer J'ai ajouté mon dernier message (pour la version HTML5 qui est vraiment contrôlable lol)



4
votes

Je suis bien en retard avec la fête et je suis sûr que beaucoup a changé en ce que Netflix gère son code client, mais je vous suggère de regarder l'objet retourné par netflix.cadmium.ObjectS.VideoPlayer () < / code>.

Cela changera finalement mais bon cela pourrait être utile.


1 commentaires

Oh, je devrais ajouter que cela ne fonctionne pas dans Firefox, probablement parce que Firefox Netflix rend les commandes du joueur en Silverlight plutôt que JS.



-3
votes

<iframe src="https://www.netflix.com/watch"></iframe>


1 commentaires

Bienvenue dans le débordement de pile. Les réponses de code que peuvent presque toujours être améliorées en ajoutant une explication de la manière et pourquoi elles fonctionnent. Pour les questions plus anciennes avec les réponses existantes, il est très important de souligner également quel nouvel aspect de la question de vos adresses de réponse. Dans ce cas, vous fournissez une réponse qui fonctionne maintenant en contournant ce qui a été posé dans la question, car votre réponse ne répond pas à la partie Silverlight de la question.