From: Sebastian Golasch Date: Mon, 10 Apr 2017 11:20:59 +0000 (+0200) Subject: Merge pull request #29 from joaosagrath/patch-1 X-Git-Url: http://git.code-monkey.de/?p=plugin.video.netflix.git;a=commitdiff_plain;h=d778ddd025d9004124274ab28ad4bb0dfa059a7b;hp=67169a509387bb327d96becfd63c26596cb6a46c Merge pull request #29 from joaosagrath/patch-1 chore(i18n): Portuguese Translation --- diff --git a/README.md b/README.md index 19e99b3..ce3656c 100644 --- a/README.md +++ b/README.md @@ -2,20 +2,27 @@ ## Netflix Plugin for Kodi 18 -###Disclaimer +Disclaimer ------------- This plugin is not officially commisioned/supported by Netflix. The trademark "Netflix" is registered by "Netflix, Inc." -###Prerequisites ----------------- +Prerequisites +------------- - Kodi 18 [agile build](https://github.com/FernetMenta/kodi-agile) - Libwidevine 1.4.8.962 (A german description how to get/install it, can be found [here](https://www.kodinerds.net/index.php/Thread/51486-Kodi-17-Inputstream-HowTo-AddOns-f%C3%BCr-Kodi-17-ab-Beta-6-aktuelle-Git-builds-Updat/)) - Inputstream.adaptive [agile branch build](https://github.com/liberty-developer/inputstream.adaptive/tree/agile) -###Functionality ----------------- +FAQ +--- + +- [Does it work with Kodi 17](https://github.com/asciidisco/plugin.video.netflix/issues/25) +- [Does it work on a RPI](https://github.com/asciidisco/plugin.video.netflix/issues/28) +- [Which video resolutions are supported](https://github.com/asciidisco/plugin.video.netflix/issues/27) + +Functionality +------------- - Multiple profiles - Search Netflix (incl. suggestions) - Netflix categories, recommendations, "my list" & continue watching @@ -23,8 +30,8 @@ The trademark "Netflix" is registered by "Netflix, Inc." - Add & remove to/from "my list" - Export of complete shows & movies in local database (custom library folder can be configured, by default the .strm files are stored in `userdata/addon_data/plugin.video.netflix` ) -###ToDo ----------------- +ToDo +---- > Note: Those Todos are considered enhancements, they´re not issues, nor they prevent the usage of the plugin for everyday business @@ -38,8 +45,8 @@ please open an issue & we can provide you with some help to get started - [ ] If a new user has been created, they need to select their movie/show preferences to actually get started, we could provide the same mechanisms in Kodi - [ ] Enable aggressive fetching of data in background (maybe using Futures), like the Netflix website does, to enhance the speed and the user experience when browsing the frontend -###Something doesn't work -------------------------- +Something doesn't work +---------------------- If something doesn't work for you, please: @@ -53,8 +60,8 @@ If something doesn't work for you, please: - Libwedevine version - A Kodi debug log that represents your issue -###Licence ------------------ +Licence +------- Licenced under The MIT License. Includes [pyjsparser](https://github.com/PiotrDabkowski/pyjsparser) by [Piotr Dabkowski](https://github.com/PiotrDabkowski) diff --git a/addon.xml b/addon.xml index 7b23e70..11d4e8e 100644 --- a/addon.xml +++ b/addon.xml @@ -1,5 +1,5 @@ - + diff --git a/resources/language/English/strings.po b/resources/language/English/strings.po index f9a78d3..26401e9 100644 --- a/resources/language/English/strings.po +++ b/resources/language/English/strings.po @@ -1,7 +1,7 @@ # Kodi Media Center language file # Addon Name: Netflix # Addon id: plugin.video.netflix -# Addon version: 0.11.8 +# Addon version: 0.11.9 # Addon Provider: libdev + jojo + asciidisco msgid "" msgstr "" diff --git a/resources/language/German/strings.po b/resources/language/German/strings.po index 9c0dfa8..7c75b5a 100644 --- a/resources/language/German/strings.po +++ b/resources/language/German/strings.po @@ -1,7 +1,7 @@ # Kodi Media Center language file # Addon Name: Netflix # Addon id: plugin.video.netflix -# Addon version: 0.11.8 +# Addon version: 0.11.9 # Addon Provider: libdev + jojo + asciidisco msgid "" msgstr "" diff --git a/resources/language/Polish/strings.po b/resources/language/Polish/strings.po new file mode 100644 index 0000000..9b88923 --- /dev/null +++ b/resources/language/Polish/strings.po @@ -0,0 +1,163 @@ +# Kodi Media Center language file +# Addon Name: Netflix +# Addon id: plugin.video.netflix +# Addon version: 0.11.8 +# Addon Provider: libdev + jojo + asciidisco +msgid "" +msgstr "" +"Project-Id-Version: XBMC-Addons\n" +"Report-Msgid-Bugs-To: alanwww1@xbmc.org\n" +"POT-Creation-Date: 2015-09-21 11:01+0000\n" +"PO-Revision-Date: 2017-03-24 22:00+0100\n" +"Last-Translator: Marcin W.\n" +"Language: pl\n" +"Language-Team: Polish (Poland) (http://www.transifex.com/teamxbmc/kodi-main/language/pl_PL/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +"X-Generator: Poedit 1.8.12\n" + +msgctxt "Addon Summary" +msgid "Netflix" +msgstr "Netflix" + +msgctxt "Addon Description" +msgid "Netflix VOD Services Addon" +msgstr "Wtyczka dla usług VOD serwisu Netflix" + +msgctxt "Addon Disclaimer" +msgid "Some parts of this addon may not be legal in your country of residence - please check with your local laws before installing." +msgstr "Niektóre części tego dodatku mogą być nielegalne w Twoim kraju zamieszkania - sprawdź, przed instalacją, czy nie jest w niezgodnem z lokalnym prawem." + +msgctxt "#30001" +msgid "Recommendations" +msgstr "Polecane" + +msgctxt "#30002" +msgid "Adult Pin" +msgstr "Kod kontroli rodzicielskiej" + +msgctxt "#30003" +msgid "Search term" +msgstr "Szukane wyrażenie" + +msgctxt "#30004" +msgid "Password" +msgstr "Hasło" + +msgctxt "#30005" +msgid "E-mail" +msgstr "Adres e-mail" + +msgctxt "#30006" +msgid "Adult verification failed" +msgstr "Nieudana weryfikacja kontroli rodzicielskiej" + +msgctxt "#30007" +msgid "Please Check your adult pin" +msgstr "Zweryfikuj poprawność kodu kontroli rodzicielskiej" + +msgctxt "#30008" +msgid "Login failed" +msgstr "Nieudane logowanie" + +msgctxt "#30009" +msgid "Please Check your credentials" +msgstr "Zweryfikuj poprawność wprowadzonych danych" + +msgctxt "#30010" +msgid "Genres" +msgstr "Gatunki" + +msgctxt "#30011" +msgid "Search" +msgstr "Szukaj" + +msgctxt "#30012" +msgid "No seasons available" +msgstr "Brak dostępnych sezonów" + +msgctxt "#30013" +msgid "No matches found" +msgstr "Brak pasujących wyników" + +msgctxt "#30014" +msgid "Account" +msgstr "Konto" + +msgctxt "#30017" +msgid "Logout" +msgstr "Wyloguj" + +msgctxt "#30018" +msgid "Export to library" +msgstr "Eksportuj do biblioteki" + +msgctxt "#30019" +msgid "Rate on Netflix" +msgstr "Oceń w serwisie Netflix" + +msgctxt "#30020" +msgid "Remove from 'My list'" +msgstr "Usuń z 'Moja lista'" + +msgctxt "#30021" +msgid "Add to 'My list'" +msgstr "Dodaj do 'Moja lista'" + +msgctxt "#30022" +msgid "(between 0 & 10)" +msgstr "(między 0 a 10)" + +msgctxt "#30023" +msgid "Expert" +msgstr "Eksperckie" + +msgctxt "#30024" +msgid "SSL verification" +msgstr "Weryfikacja certyfikatu SSL" + +msgctxt "#30025" +msgid "Library" +msgstr "Biblioteka" + +msgctxt "#30026" +msgid "Enable custom library folder" +msgstr "Używaj niestandardowego folderu biblioteki" + +msgctxt "#30027" +msgid "Custom library path" +msgstr "Folder niestandardowy" + +msgctxt "#30028" +msgid "Playback error" +msgstr "Błąd odtwarzania" + +msgctxt "#30029" +msgid "Missing Inputstream addon" +msgstr "Brakuje wtyczki strumieniowej InputStream Adaptive" + +msgctxt "#30030" +msgid "Remove from library" +msgstr "Usuń z biblioteki" + +msgctxt "#30031" +msgid "Change library title" +msgstr "Zmień tytuł" + +msgctxt "#30032" +msgid "Tracking" +msgstr "Śledzenie" + +msgctxt "#30033" +msgid "Use Dolby Sound" +msgstr "Używaj ścieżek Dolby Sound" + +msgctxt "#30034" +msgid "ESN (set automatically, can be changed manually)" +msgstr "ESN (ustawiany automatycznie, z możliwością zmiany)" + +msgctxt "#30035" +msgid "Inputstream Addon Settings..." +msgstr "Ustawienia wtyczki strumieniowej..." diff --git a/resources/language/Slovak/strings.po b/resources/language/Slovak/strings.po index d278ad5..7b1ed6e 100644 --- a/resources/language/Slovak/strings.po +++ b/resources/language/Slovak/strings.po @@ -1,7 +1,7 @@ # Kodi Media Center language file # Addon Name: Netflix # Addon id: plugin.video.netflix -# Addon version: 0.11.8 +# Addon version: 0.11.9 # Addon Provider: libdev + jojo + asciidisco msgid "" msgstr "" diff --git a/resources/language/Spanish/strings.po b/resources/language/Spanish/strings.po index 559b66b..60edbe8 100644 --- a/resources/language/Spanish/strings.po +++ b/resources/language/Spanish/strings.po @@ -1,7 +1,7 @@ # Kodi Media Center language file # Addon Name: Netflix # Addon id: plugin.video.netflix -# Addon version: 0.11.8 +# Addon version: 0.11.9 # Addon Provider: libdev + jojo + asciidisco msgid "" msgstr "" diff --git a/resources/language/Swedish/strings.po b/resources/language/Swedish/strings.po new file mode 100644 index 0000000..fd6020b --- /dev/null +++ b/resources/language/Swedish/strings.po @@ -0,0 +1,162 @@ +# Kodi Media Center language file +# Addon Name: Netflix +# Addon id: plugin.video.netflix +# Addon version: 0.11.8 +# Addon Provider: libdev + jojo + asciidisco +msgid "" +msgstr "" +"Project-Id-Version: XBMC-Addons\n" +"Report-Msgid-Bugs-To: alanwww1@xbmc.org\n" +"POT-Creation-Date: 2017-01-01 12:00+0000\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: en\n" +"Plural-Forms: nplurals=2; plural=(n != 1)\n" + +msgctxt "Addon summering" +msgstr "Netflix" +msgstr "" + +msgctxt "Addon beskrivning" +msgstr "Netflix VOD Service Addon" +msgstr "" + +msgctxt "Addon förbehåll" +msgstr "Vissa delar av detta addon kanske inte är fullt lagliga att använda i ditt land - kontrollera dina lokala lagar innan du installerar." +msgstr "" + +msgctxt "# 30001" +msgid "Rekommendationer" +msgstr "" + +msgctxt "# 30002" +msgstr "Vuxen-pinkod" +msgstr "" + +msgctxt "# 30003" +msgstr "Sökord" +msgstr "" + +msgctxt "# 30004" +msgstr "Lösenord" +msgstr "" + +msgctxt "# 30005" +msgstr "E-post" +msgstr "" + +msgctxt "# 30006" +msgstr "Vuxen-pinkod verifiering misslyckades" +msgstr "" + +msgctxt "# 30007" +msgstr "Kontrollera din Vuxen-pinkod" +msgstr "" + +msgctxt "# 30008" +msgstr "Inloggning misslyckades" +msgstr "" + +msgctxt "# 30009" +msgstr "Kontrollera dina inloggninguppgifter" +msgstr "" + +msgctxt "# 30010" +msgid "Genrer" +msgstr "" + +msgctxt "# 30011" +msgstr "Sök" +msgstr "" + +msgctxt "# 30012" +msgstr "Inga säsonger tillgängliga" +msgstr "" + +msgctxt "# 30013" +msgstr "Inga träffar" +msgstr "" + +msgctxt "# 30014" +msgid "Konto" +msgstr "" + +msgctxt "# 30017" +msgstr "Logga ut" +msgstr "" + +msgctxt "# 30018" +msgstr "Exportera till biblioteket" +msgstr "" + +msgctxt "# 30019" +msgstr "Betygsätt på Netflix" +msgstr "" + +msgctxt "# 30020" +msgstr "Ta bort från 'Min lista'" +msgstr "" + +msgctxt "# 30021" +msgstr "Lägg till 'Min lista'" +msgstr "" + +msgctxt "# 30022" +msgid "(mellan 0 & 10)" +msgstr "" + +msgctxt "# 30023" +msgid "Expert" +msgstr "" + +msgctxt "# 30024" +msgstr "SSL kontroll" +msgstr "" + +msgctxt "# 30025" +msgstr "Bibliotek" +msgstr "" + +msgctxt "# 30026" +msgstr "Aktivera anpassad biblioteksmapp" +msgstr "" + +msgctxt "# 30027" +msgid "Ändra bibliotek genväg" +msgstr "" + +msgctxt "# 30028" +msgid "Uppspelnings error" +msgstr "" + +msgctxt "# 30029" +msgid "Saknar 'InputStream' addon" +msgstr "" + +msgctxt "# 30030" +msgstr "Ta bort från biblioteket" +msgstr "" + +msgctxt "# 30031" +msgstr "Ändra bibliotektiteln" +msgstr "" + +msgctxt "# 30032" +msgstr "Spårning" +msgstr "" + +msgctxt "# 30033" +msgstr "Använd Dolby Digital ljud" +msgstr "" + +msgctxt "# 30034" +msgstr "ESN (ändra automatiskt, kan ändras manuellt)" +msgstr "" + +msgctxt "# 30035" +msgid "InputStream Addon inställningar..." +msgstr "" diff --git a/resources/lib/MSL.py b/resources/lib/MSL.py index 0b623f8..ef7e93b 100644 --- a/resources/lib/MSL.py +++ b/resources/lib/MSL.py @@ -10,6 +10,8 @@ import os import pprint import random from StringIO import StringIO + +from datetime import datetime import requests import zlib @@ -353,27 +355,22 @@ class MSL: segment_base = ET.SubElement(rep, 'SegmentBase', indexRange="0-"+str(init_length), indexRangeExact="true") ET.SubElement(segment_base, 'Initialization', range='0-'+str(init_length)) - # Multiple Adaption Set for subtiles + # Multiple Adaption Sets for subtiles for text_track in manifest['textTracks']: - print text_track if 'downloadables' not in text_track or text_track['downloadables'] is None: continue subtiles_adaption_set = ET.SubElement(period, 'AdaptationSet', lang=text_track['bcp47'], + codecs='stpp', contentType='text', - mimeType='text/ttml') + mimeType='application/ttml+xml') for downloadable in text_track['downloadables']: rep = ET.SubElement(subtiles_adaption_set, 'Representation', - bandwidth='0', nflxProfile=downloadable['contentProfile'] ) - print downloadable['urls'] ET.SubElement(rep, 'BaseURL').text = self.__get_base_url(downloadable['urls']) - - - xml = ET.tostring(root, encoding='utf-8', method='xml') xml = xml.replace('\n', '').replace('\r', '') return xml @@ -583,6 +580,18 @@ class MSL: def __load_msl_data(self): msl_data = json.JSONDecoder().decode(self.load_file(self.kodi_helper.msl_data_path, 'msl_data.json')) + #Check expire date of the token + master_token = json.JSONDecoder().decode(base64.standard_b64decode(msl_data['tokens']['mastertoken']['tokendata'])) + valid_until = datetime.utcfromtimestamp(int(master_token['expiration'])) + present = datetime.now() + difference = valid_until - present + difference = difference.total_seconds() / 60 / 60 + # If token expires in less then 10 hours or is expires renew it + if difference < 10: + self.__load_rsa_keys() + self.__perform_key_handshake() + return + self.__set_master_token(msl_data['tokens']['mastertoken']) self.encryption_key = base64.standard_b64decode(msl_data['encryption_key']) self.sign_key = base64.standard_b64decode(msl_data['sign_key'])