feat(inputstream): Adds content lookup mime type & same user agent as for json reques...
authorSebastian Golasch <sebastian.golasch@telekom.de>
Wed, 26 Jul 2017 14:14:08 +0000 (16:14 +0200)
committerSebastian Golasch <sebastian.golasch@telekom.de>
Wed, 26 Jul 2017 14:14:08 +0000 (16:14 +0200)
12 files changed:
addon.xml
resources/language/Dutch/strings.po
resources/language/English/strings.po
resources/language/German/strings.po
resources/language/Polish/strings.po
resources/language/Portugese/strings.po
resources/language/Slovak/strings.po
resources/language/Spanish/strings.po
resources/language/Swedish/strings.po
resources/lib/KodiHelper.py
resources/lib/NetflixSession.py
resources/lib/utils.py

index d09e656bd22da07364ab3e4dcffa209ec9bb7cb3..f7f3863695775b97fcff0fd8a4d37a2f6274040c 100644 (file)
--- a/addon.xml
+++ b/addon.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
-<addon id="plugin.video.netflix" name="Netflix" version="0.11.16" provider-name="libdev + jojo + asciidisco">
+<addon id="plugin.video.netflix" name="Netflix" version="0.11.17" provider-name="libdev + jojo + asciidisco">
   <requires>
     <import addon="xbmc.python" version="2.24.0"/>
     <import addon="script.module.beautifulsoup4" version="4.3.2"/>
index 8f5e764ea8e587080d3ba1b5b871235755219d54..4915a096db129cf735cd232ab9f8039c5e3cd5c3 100644 (file)
@@ -1,7 +1,7 @@
 # Kodi Media Center language file
 # Addon Name: Netflix
 # Addon id: plugin.video.netflix
-# Addon version: 0.11.16
+# Addon version: 0.11.17
 # Addon Provider: libdev + jojo + asciidisco
 msgid ""
 msgstr ""
index 6b0af3b89727b94f4206c9597223addc26e6461e..a58278b6a09c6f2dd75c32d1d47a7f918feecded 100644 (file)
@@ -1,7 +1,7 @@
 # Kodi Media Center language file
 # Addon Name: Netflix
 # Addon id: plugin.video.netflix
-# Addon version: 0.11.16
+# Addon version: 0.11.17
 # Addon Provider: libdev + jojo + asciidisco
 msgid ""
 msgstr ""
index d374ea8e43eee073df2859894cd7b1cb128c85a1..5599d3129afad40d1ef5a3783b5328ac4e0a4fc5 100644 (file)
@@ -1,7 +1,7 @@
 # Kodi Media Center language file
 # Addon Name: Netflix
 # Addon id: plugin.video.netflix
-# Addon version: 0.11.16
+# Addon version: 0.11.17
 # Addon Provider: libdev + jojo + asciidisco
 msgid ""
 msgstr ""
index 36adb014a92cdcab6cc2f1f4b29235b0e6c413ca..285d257ffa0acfa56a33bf0294659f73bc7e663c 100644 (file)
@@ -1,7 +1,7 @@
 # Kodi Media Center language file
 # Addon Name: Netflix
 # Addon id: plugin.video.netflix
-# Addon version: 0.11.16
+# Addon version: 0.11.17
 # Addon Provider: libdev + jojo + asciidisco
 msgid ""
 msgstr ""
index 0bdb5ff15c549bfb9fd6ac29f191caa81e9e89cd..cd7b8988e3e3ce22da80ba7e86d5770ef41f2ed8 100644 (file)
@@ -1,7 +1,7 @@
 # Kodi Media Center language file
 # Addon Name: Netflix
 # Addon id: plugin.video.netflix
-# Addon version: 0.11.16
+# Addon version: 0.11.17
 # Addon Provider: libdev + jojo + asciidisco
 msgid ""
 msgstr ""
index dc74ae43acc3b2ad07f1aeb6afb146f8bad20706..4b4547b4801ec70849293f1487b93189d87fd32a 100644 (file)
@@ -1,7 +1,7 @@
 # Kodi Media Center language file
 # Addon Name: Netflix
 # Addon id: plugin.video.netflix
-# Addon version: 0.11.16
+# Addon version: 0.11.17
 # Addon Provider: libdev + jojo + asciidisco
 msgid ""
 msgstr ""
index 130105e6eff436cf05967f1b03a17b6e46f5ef12..b73cdf2acb298747714c3ce80394f62b88da4c31 100644 (file)
@@ -1,7 +1,7 @@
 # Kodi Media Center language file
 # Addon Name: Netflix
 # Addon id: plugin.video.netflix
-# Addon version: 0.11.16
+# Addon version: 0.11.17
 # Addon Provider: libdev + jojo + asciidisco
 msgid ""
 msgstr ""
index 2da2ff6690393c3e6df99df4eb01c11e81cf98e8..d932c315e58ec4bed979aa2a519b5923da2c020b 100644 (file)
@@ -1,7 +1,7 @@
 # Kodi Media Center language file
 # Addon Name: Netflix
 # Addon id: plugin.video.netflix
-# Addon version: 0.11.16
+# Addon version: 0.11.17
 # Addon Provider: libdev + jojo + asciidisco
 msgid ""
 msgstr ""
index f27d6d813060e0e7b2eabab35ced903c29729cf4..7e1811339ed923cedf094679763af94a451571a9 100644 (file)
@@ -13,6 +13,7 @@ from os.path import join, isfile
 from urllib import urlencode
 from xbmcaddon import Addon
 from uuid import uuid4
+from utils import get_user_agent_for_current_platform
 from UniversalAnalytics import Tracker
 try:
    import cPickle as pickle
@@ -693,6 +694,9 @@ class KodiHelper:
         # inputstream addon properties
         msl_service_url = 'http://localhost:' + str(addon.getSetting('msl_service_port'))
         play_item = xbmcgui.ListItem(path=msl_service_url + '/manifest?id=' + video_id)
+        play_item.setContentLookup(False)
+        play_item.setMimeType('application/dash+xml')
+        play_item.setProperty(inputstream_addon + '.stream_headers', 'user-agent=' + get_user_agent_for_current_platform())        
         play_item.setProperty(inputstream_addon + '.license_type', 'com.widevine.alpha')
         play_item.setProperty(inputstream_addon + '.manifest_type', 'mpd')
         play_item.setProperty(inputstream_addon + '.license_key', msl_service_url + '/license?id=' + video_id + '||b{SSM}!b{SID}|')
index 69c848f666f1761e14cc6c501321cd1faae39182..dd81914db06474c2ae9408c611704bdee5b29ab2 100644 (file)
@@ -10,7 +10,7 @@ from urllib import quote, unquote
 from time import time
 from base64 import urlsafe_b64encode
 from bs4 import BeautifulSoup, SoupStrainer
-from utils import noop
+from utils import noop, get_user_agent_for_current_platform
 try:
    import cPickle as pickle
 except:
@@ -103,7 +103,7 @@ class NetflixSession:
         # start session, fake chrome on the current platform (so that we get a proper widevine esn) & enable gzip
         self.session = session()
         self.session.headers.update({
-            'User-Agent': self._get_user_agent_for_current_platform(),
+            'User-Agent': get_user_agent_for_current_platform(),
             'Accept-Encoding': 'gzip'
         })
 
@@ -1880,24 +1880,6 @@ class NetflixSession:
         """
         return urlsafe_b64encode(account['email'])
 
-    def _get_user_agent_for_current_platform (self):
-        """Determines the user agent string for the current platform (to retrieve a valid ESN)
-
-        Returns
-        -------
-        :obj:`str`
-            User Agent for platform
-        """
-        import platform
-        self.log(msg='Building User Agent for platform: ' + str(platform.system()) + ' - ' + str(platform.machine()))
-        if platform.system() == 'Darwin':
-            return 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36'
-        if platform.system() == 'Windows':
-            return 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36'
-        if platform.machine().startswith('arm'):
-            return 'Mozilla/5.0 (X11; CrOS armv7l 7647.78.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.109 Safari/537.36'
-        return 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36'
-
     def _session_post (self, component, type='document', data={}, headers={}, params={}):
         """Executes a get request using requests for the current session & measures the duration of that request
 
index afb056f7994fa7c5a9483bd1a06ca70fad3029c8..90fe0b86c7cd112705aa5c4ce0f1748bbecebe9e 100644 (file)
@@ -3,6 +3,8 @@
 # Module: utils
 # Created on: 13.01.2017
 
+import platform
+
 # Takes everything, does nothing, classic no operation function
 def noop (**kwargs):
     return True
@@ -27,3 +29,20 @@ def log(f, name=None):
         return result
     wrapped.__doc__ = f.__doc__
     return wrapped
+
+def _get_user_agent_for_current_platform():
+    """Determines the user agent string for the current platform (to retrieve a valid ESN)
+
+    Returns
+    -------
+    :obj:`str`
+        User Agent for platform
+    """
+    system = platform.system()
+    if system == 'Darwin':
+        return 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/59.0.3071.115 Safari/537.36'
+    if system == 'Windows':
+        return 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/59.0.3071.115 Safari/537.36'
+    if platform.machine().startswith('arm'):
+        return 'Mozilla/5.0 (X11; CrOS armv7l 7647.78.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/59.0.3071.115 Safari/537.36'
+    return 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/59.0.3071.115 Safari/537.36'