45 Commits
2.0.4 ... 2.0.8

Author SHA1 Message Date
577181bb73 Merge pull request #20 from gordielachance/2.0.8
2 0 8
2017-12-04 11:35:04 +01:00
f0649bf2b5 Fix missing DE translation for "Search" 2017-12-03 18:32:32 +01:00
b630801150 Merge pull request #19 from comxd/patch-1
Fix missing FR translation for "Search"
2017-12-03 18:30:06 +01:00
99d57fa1f9 Fix missing FR translation for "Search"
@see commit #9e7e542585eb67392fad3191f44a973c0e59839f
2017-12-03 18:16:21 +01:00
f7ccef89ef 2.0.8 2017-11-29 11:30:58 +01:00
d90af02d8b Merge pull request #18 from Heruwar/feature/path-support_and_pw-improvements
Path support and security improvements
2017-11-29 11:09:56 +01:00
4429451454 Dont sent plaintext password in requests and use subsonic hex-encoding with legacy auth 2017-11-25 18:15:12 +01:00
313b413fc5 Add support for path in server URL 2017-11-25 18:13:44 +01:00
30d0e8641e Make sure password and username are always strings 2017-11-25 18:12:53 +01:00
b18b8e0094 Update addon.xml 2017-04-18 15:26:34 +02:00
66ae5ee093 Update CHANGELOG.md 2017-04-18 15:25:20 +02:00
426dcf964f Merge pull request #16 from silascutler/master
Added Search
2017-04-18 15:19:10 +02:00
ce58b6993f Updates 2017-04-02 12:12:49 -04:00
f51e5c3c28 Removed pop-up option 2017-04-02 11:44:22 -04:00
e966b5bfa2 Removed pop-up option 2017-04-02 11:44:14 -04:00
9e7e542585 Added Search 2017-04-02 09:06:49 -04:00
10bb432a14 Merge pull request #12 from gordielachance/media-folders
Media folders
2017-01-14 12:47:36 +01:00
e6b00afc27 version update 2017-01-14 12:38:50 +01:00
60ebe928b0 minor 2017-01-10 18:36:34 +01:00
2482e56fdc minor 2017-01-09 11:36:23 +01:00
290fa837b3 simpleplugin 2.1.0 2017-01-09 11:01:41 +01:00
0344163cd5 typo 2017-01-09 10:50:00 +01:00
3a0efadebb use Addon().get_localized_string (simpleplugin) 2017-01-09 10:48:30 +01:00
8c2ffe006c localized strings : settings typo 2017-01-09 10:46:24 +01:00
ebf82b8218 fixes for localized strings 2017-01-09 10:46:11 +01:00
d9a18d41e3 reorganize code 2017-01-09 10:45:12 +01:00
c6e9cc92e8 Browse/Library menus (file structure vs ID3 tags) 2017-01-09 01:02:37 +01:00
3ed7b231cc if there is only one media folder, return list_indexes() directly 2017-01-08 11:35:53 +01:00
7d26333ce0 WIP : list_indexes function (not working yet) 2017-01-08 11:11:05 +01:00
d9210dcaef new 'Browse' top menu to list media folders 2017-01-08 11:09:54 +01:00
0cda25e07a Merge pull request #9 from Moshkopp/patch-2
german description.
2017-01-03 23:19:38 +01:00
be07844e38 german description. 2017-01-03 22:56:07 +01:00
5484614cc1 typo 2017-01-03 22:07:47 +01:00
7e67edd64a removed some strings
+ typos
+ changelog
2017-01-03 21:14:00 +01:00
8ce871a9f7 typo 2017-01-03 20:54:51 +01:00
3acb61d605 french translation 2017-01-03 20:40:08 +01:00
c621458704 Merge pull request #7 from Moshkopp/master
Added multilanguage support
2017-01-03 20:14:41 +01:00
aaac00f69a Update strings.po 2016-12-28 18:13:22 +01:00
afea46a9e1 Add files via upload
typo
2016-12-28 18:12:29 +01:00
fb64a2e6fe Delete strings.po 2016-12-28 18:12:03 +01:00
a029490fe8 Add files via upload
typo
2016-12-28 18:10:05 +01:00
4a057ba83c Add files via upload
Added multilanguage support
2016-12-28 14:33:26 +01:00
ef6ba710e2 doc 2016-10-15 01:33:55 +02:00
4179ca8ada Fixed images when listing entries 2016-10-15 01:33:43 +02:00
fcbcccaeb9 doc 2016-10-15 01:27:12 +02:00
10 changed files with 1138 additions and 461 deletions

View File

@ -1,5 +1,26 @@
# Changelog
## v2.0.8
Released 29th November 2017 (by Heruwar)
* Fixes a security issue where the password is sent as plaintext in the URL query parameters when methods from libsonic_extas are used.
Also adds Subsonic hex encoding when using legacy auth.
* Adds support for URL paths like https://hostname.com/subsonic as requested in Github issue #17 and also encountered in some of the reports (#14 and #5)
* Fixes an error when the password only contains digits, which simpleplugin converts to a Long, which later fails when libsonic tries to salt the password expecting a string.
## v2.0.7
Released 18 April 2017
* Added Search (by silascutler)
## v2.0.6
Released 14 January 2017
* Upgrade to simpleplugin 2.1.0
* Browse/Library menus (file structure vs ID3 tags)
* Added multilanguage support
## v2.0.5
Released 15 October 2016
* Fixed images when listing entries
## v2.0.4
Released 5 October 2016
* Cache (permanently) starred items so we can know everywhere if an item is starred or not without querying it

View File

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<addon id="plugin.audio.subsonic" name="Subsonic" version="2.0.4" provider-name="BasilFX,grosbouff,lrusak">
<addon id="plugin.audio.subsonic" name="Subsonic" version="2.0.8" provider-name="BasilFX,grosbouff,silascutler,Heruwar">
<requires>
<import addon="xbmc.python" version="2.14.0"/>
<import addon="script.module.dateutil" version="2.4.2"/>
@ -9,6 +9,8 @@
</extension>
<extension point="xbmc.addon.metadata">
<summary lang="en">Subsonic music addon for Kodi.</summary>
<summary lang="fr">Extension Subsonic pour Kodi.</summary>
<summary lang="de">Subsonic Musik Addon für Kodi.</summary>
<description lang="en">
Stream, star and download your tunes, directly to Kodi !
For feature requests / issues:
@ -16,8 +18,22 @@
Contributions are welcome:
https://github.com/gordielachance/plugin.audio.subsonic
</description>
<description lang="fr">
Jouez, marquez vos favoris et téléchargez votre musique, directement dans Kodi !
Pour les demandes et problèmes :
https://github.com/gordielachance/plugin.audio.subsonic/issues
Les contributions sont les bienvenues :
https://github.com/gordielachance/plugin.audio.subsonic
</description>
<description lang="de">
Streame, bewerte und downloade deine Medien direkt in Kodi !
Für neue Eigentschaften oder Fehler:
https://github.com/gordielachance/plugin.audio.subsonic/issues
Beihilfe ist Willkommen:
https://github.com/gordielachance/plugin.audio.subsonic
</description>
<disclaimer lang="en"></disclaimer>
<language>en</language>
<language>multi</language>
<platform>all</platform>
<license>MIT</license>
<forum></forum>

View File

@ -60,10 +60,11 @@ class SubsonicClient(libsonic.Connection):
# Pick a default port
host = "%s://%s" % (scheme, parts.hostname)
port = parts.port or {"http": 80, "https": 443}[scheme]
path = parts.path.rstrip('/') + '/rest'
# Invoke original constructor
super(SubsonicClient, self).__init__(
host, username, password, port=port, appName='Kodi', apiVersion=apiversion, insecure=insecure, legacyAuth=legacyauth)
host, username, password, port=port, serverPath=path, appName='Kodi', apiVersion=apiversion, insecure=insecure, legacyAuth=legacyauth)
def getIndexes(self, *args, **kwargs):
"""
@ -140,6 +141,7 @@ class SubsonicClient(libsonic.Connection):
def getArtists(self, *args, **kwargs):
"""
(ID3 tags)
Improve the getArtists method. Ensures IDs are integers.
"""
@ -162,6 +164,7 @@ class SubsonicClient(libsonic.Connection):
def getArtist(self, *args, **kwargs):
"""
(ID3 tags)
Improve the getArtist method. Ensures IDs are integers.
"""
@ -209,6 +212,7 @@ class SubsonicClient(libsonic.Connection):
def getAlbum(self, *args, **kwargs):
"""
(ID3 tags)
Improve the getAlbum method. Ensures the IDs are real integers.
"""
@ -289,31 +293,25 @@ class SubsonicClient(libsonic.Connection):
parts = list(urlparse.urlparse(
args[0].get_full_url() + "?" + args[0].data))
parts[4] = dict(urlparse.parse_qsl(parts[4]))
parts[4].update({"u": self.username, "p": self.password})
if self._legacyAuth:
parts[4].update({"u": self.username, "p": 'enc:%s' % self._hexEnc(self._rawPass)})
parts[4] = urllib.urlencode(parts[4])
return urlparse.urlunparse(parts)
else:
return super(SubsonicClient, self)._doBinReq(*args, **kwargs)
def walk_index(self):
def walk_index(self, folder_id=None):
"""
Request Subsonic's index and iterate each item.
"""
response = self.getIndexes()
response = self.getIndexes(folder_id)
for index in response["indexes"]["index"]:
for index in index["artist"]:
for item in self.walk_directory(index["id"]):
yield item
for artist in index["artist"]:
yield artist
for child in response["indexes"]["child"]:
if child.get("isDir"):
for child in self.walk_directory(child["id"]):
yield child
else:
yield child
def walk_playlists(self):
"""
@ -335,6 +333,12 @@ class SubsonicClient(libsonic.Connection):
for child in response["playlist"]["entry"]:
yield child
def walk_folders(self):
response = self.getMusicFolders()
for child in response["musicFolders"]["musicFolder"]:
yield child
def walk_directory(self, directory_id):
"""
Request a Subsonic music directory and iterate over each item.
@ -361,6 +365,7 @@ class SubsonicClient(libsonic.Connection):
def walk_artists(self):
"""
(ID3 tags)
Request all artists and iterate over each item.
"""
@ -372,6 +377,7 @@ class SubsonicClient(libsonic.Connection):
def walk_genres(self):
"""
(ID3 tags)
Request all genres and iterate over each item.
"""
@ -382,6 +388,7 @@ class SubsonicClient(libsonic.Connection):
def walk_albums(self, ltype, size=None, fromYear=None,toYear=None, genre=None, offset=None):
"""
(ID3 tags)
Request all albums for a given genre and iterate over each album.
"""
@ -403,7 +410,8 @@ class SubsonicClient(libsonic.Connection):
def walk_album(self, album_id):
"""
Request an alum and iterate over each item.
(ID3 tags)
Request an album and iterate over each item.
"""
response = self.getAlbum(album_id)

View File

@ -1,4 +1,4 @@
#v2.0.1
#v2.1.0
#https://github.com/romanvm/script.module.simpleplugin/releases
from simpleplugin import *

View File

@ -267,6 +267,16 @@ class Addon(object):
"""
return self._configdir
@property
def version(self):
"""
Addon version
:return: addon version
:rtype: str
"""
return self._addon.getAddonInfo('version')
def get_localized_string(self, id_):
"""
Get localized UI string
@ -274,7 +284,7 @@ class Addon(object):
:param id_: UI string ID
:type id_: int
:return: UI string in the current language
:rtype: unicode
:rtype: str
"""
return self._addon.getLocalizedString(id_).encode('utf-8')
@ -327,7 +337,7 @@ class Addon(object):
value = str(value)
self._addon.setSetting(id_, value)
def log(self, message, level=0):
def log(self, message, level=xbmc.LOGDEBUG):
"""
Add message to Kodi log starting with Addon ID
@ -339,7 +349,7 @@ class Addon(object):
"""
if isinstance(message, unicode):
message = message.encode('utf-8')
xbmc.log('{0}: {1}'.format(self.id, message), level)
xbmc.log('{0} [v.{1}]: {2}'.format(self.id, self.version, message), level)
def log_notice(self, message):
"""
@ -879,7 +889,6 @@ class Plugin(Addon):
self.log_debug('Creating listing from {0}'.format(str(context)))
if context.content is not None:
xbmcplugin.setContent(self._handle, context.content) # This must be at the beginning
listing = []
for item in context.listing:
is_folder = item.get('is_folder', True)
if item.get('list_item') is not None:
@ -889,8 +898,7 @@ class Plugin(Addon):
if item.get('is_playable'):
list_item.setProperty('IsPlayable', 'true')
is_folder = False
listing.append((item['url'], list_item, is_folder))
xbmcplugin.addDirectoryItems(self._handle, listing, len(listing))
xbmcplugin.addDirectoryItem(self._handle, item['url'], list_item, is_folder)
if context.sort_methods is not None:
[xbmcplugin.addSortMethod(self._handle, method) for method in context.sort_methods]
xbmcplugin.endOfDirectory(self._handle,

972
main.py

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,160 @@
# XBMC Media Center language file
# Addon Name: Subsonic
# Addon id: plugin.audio.subsonic
# Addon Provider:
# Addon Translate: Moshkopp
msgid ""
msgstr ""
msgctxt "#30000"
msgid "General"
msgstr ""
msgctxt "#30001"
msgid "Server"
msgstr ""
msgctxt "#30002"
msgid "Server URL"
msgstr ""
msgctxt "#30003"
msgid "Username"
msgstr ""
msgctxt "#30004"
msgid "Password"
msgstr ""
msgctxt "#30005"
msgid "Display"
msgstr ""
msgctxt "#30006"
msgid "Albums per page"
msgstr ""
msgctxt "#30007"
msgid "Tracks per page (ignored in albums & playlists)"
msgstr ""
msgctxt "#30008"
msgid "Download"
msgstr ""
msgctxt "#30009"
msgid "Download folder"
msgstr ""
msgctxt "#30010"
msgid "Streaming"
msgstr ""
msgctxt "#30011"
msgid "Transcode format"
msgstr ""
msgctxt "#30012"
msgid "Bitrate"
msgstr ""
msgctxt "#30013"
msgid "Advanced Settings"
msgstr ""
msgctxt "#30014"
msgid "API version"
msgstr ""
msgctxt "#30016"
msgid "Allow self signed certificates"
msgstr ""
msgctxt "#30017"
msgid "Cache (in minutes)"
msgstr ""
msgctxt "#30018"
msgid "Cache datas time"
msgstr ""
msgctxt "#30019"
msgid "Library"
msgstr ""
msgctxt "#30020"
msgid "Albums"
msgstr ""
msgctxt "#30021"
msgid "Tracks"
msgstr ""
msgctxt "#30022"
msgid "Playlists"
msgstr ""
msgctxt "#30023"
msgid "Newest albums"
msgstr ""
msgctxt "#30024"
msgid "Most played albums"
msgstr ""
msgctxt "#30025"
msgid "Recently played albums"
msgstr ""
msgctxt "#30026"
msgid "Random albums"
msgstr ""
msgctxt "#30029"
msgid "Next page"
msgstr ""
msgctxt "#30030"
msgid "Back to Menu"
msgstr ""
msgctxt "#30031"
msgid "Item has been unstarred."
msgstr ""
msgctxt "#30032"
msgid "Item has been starred!"
msgstr ""
msgctxt "#30033"
msgid "Star on Subsonic"
msgstr ""
msgctxt "#30034"
msgid "Unstar on Subsonic"
msgstr ""
msgctxt "#30035"
msgid "Download"
msgstr ""
msgctxt "#30036"
msgid "Starred tracks"
msgstr ""
msgctxt "#30037"
msgid "Random tracks"
msgstr ""
msgctxt "#30038"
msgid "Browse"
msgstr ""
msgctxt "#30039"
msgid "Search"
msgstr ""

View File

@ -0,0 +1,160 @@
# XBMC Media Center language file
# Addon Name: Subsonic
# Addon id: plugin.audio.subsonic
# Addon Provider:
# Addon Translate: Gordie
msgid ""
msgstr ""
msgctxt "#30000"
msgid "General"
msgstr "Général"
msgctxt "#30001"
msgid "Server"
msgstr "Serveur"
msgctxt "#30002"
msgid "Server URL"
msgstr "URL du serveur"
msgctxt "#30003"
msgid "Username"
msgstr "Nom d'utilisateur"
msgctxt "#30004"
msgid "Password"
msgstr "Mot de passe"
msgctxt "#30005"
msgid "Display"
msgstr "Affichage"
msgctxt "#30006"
msgid "Albums per page"
msgstr "Albums par page"
msgctxt "#30007"
msgid "Tracks per page (ignored in albums & playlists)"
msgstr "Pistes par page (ignoré dans les albums & listes de lecture)"
msgctxt "#30008"
msgid "Download"
msgstr "Télécharger"
msgctxt "#30009"
msgid "Download folder"
msgstr "Répertoire de téléchargement"
msgctxt "#30010"
msgid "Streaming"
msgstr "Diffusion"
msgctxt "#30011"
msgid "Transcode format"
msgstr "Format de transcodage"
msgctxt "#30012"
msgid "Bitrate"
msgstr "Bitrate"
msgctxt "#30013"
msgid "Advanced Settings"
msgstr "Paramètres avancés"
msgctxt "#30014"
msgid "API version"
msgstr "Version de l'API"
msgctxt "#30016"
msgid "Allow self signed certificates"
msgstr "Autoriser les certificats auto-signés"
msgctxt "#30017"
msgid "Cache (in minutes)"
msgstr "Cache (en minutes)"
msgctxt "#30018"
msgid "Cache datas time"
msgstr "Durée du cache pour les données"
msgctxt "#30019"
msgid "Library"
msgstr "Bibliothèque"
msgctxt "#30020"
msgid "Albums"
msgstr "Albums"
msgctxt "#30021"
msgid "Tracks"
msgstr "Pistes"
msgctxt "#30022"
msgid "Playlists"
msgstr "Playlists"
msgctxt "#30023"
msgid "Newest albums"
msgstr "Nouveaux albums"
msgctxt "#30024"
msgid "Most played albums"
msgstr "Albums les plus joués"
msgctxt "#30025"
msgid "Recently played albums"
msgstr "Albums joués récemment"
msgctxt "#30026"
msgid "Random albums"
msgstr "Albums au hasard"
msgctxt "#30029"
msgid "Next page"
msgstr "Page suivante"
msgctxt "#30030"
msgid "Back to Menu"
msgstr "Retour au menu"
msgctxt "#30031"
msgid "Item has been unstarred."
msgstr "Cet élément a été retiré des favoris"
msgctxt "#30032"
msgid "Item has been starred!"
msgstr "Cet élément a été ajouté aux favoris !"
msgctxt "#30033"
msgid "Star on Subsonic"
msgstr "Ajouter aux favoris Subsonic"
msgctxt "#30034"
msgid "Unstar on Subsonic"
msgstr "Retirer des favoris Subsonic"
msgctxt "#30035"
msgid "Download"
msgstr "Télécharger"
msgctxt "#30036"
msgid "Starred tracks"
msgstr "Pistes favorites"
msgctxt "#30037"
msgid "Random tracks"
msgstr "Pistes au hasard"
msgctxt "#30038"
msgid "Browse"
msgstr "Parcourir"
msgctxt "#30039"
msgid "Search"
msgstr "Rechercher"

View File

@ -0,0 +1,157 @@
# XBMC Media Center language file
# Addon Name: Subsonic
# Addon id: plugin.audio.subsonic
# Addon Provider:
# Addon Translate: Moshkopp
msgid ""
msgstr ""
msgctxt "#30000"
msgid "General"
msgstr "Allgemein"
msgctxt "#30001"
msgid "Server"
msgstr "Server"
msgctxt "#30002"
msgid "Server URL"
msgstr "Serveradresse"
msgctxt "#30003"
msgid "Username"
msgstr "Benutzername"
msgctxt "#30004"
msgid "Password"
msgstr "Passwort"
msgctxt "#30005"
msgid "Display"
msgstr "Anzeige"
msgctxt "#30006"
msgid "Albums per page"
msgstr "Alben pro Seite"
msgctxt "#30007"
msgid "Tracks per page (ignored in albums & playlists)"
msgstr "Lieder pro Seite (wird in Alben und Playlisten ignoriert)"
msgctxt "#30008"
msgid "Download"
msgstr "Download"
msgctxt "#30009"
msgid "Download folder"
msgstr "Download Verzeichnis"
msgctxt "#30010"
msgid "Streaming"
msgstr "Übertragung"
msgctxt "#30011"
msgid "Transcode format"
msgstr "Umwandlungs Format"
msgctxt "#30012"
msgid "Bitrate"
msgstr "Bitrate"
msgctxt "#30013"
msgid "Advanced Settings"
msgstr "Erweitert"
msgctxt "#30014"
msgid "API version"
msgstr "API Version"
msgctxt "#30016"
msgid "Allow self signed certificates"
msgstr "Erlaube eigensignierte Zertifikate"
msgctxt "#30017"
msgid "Cache (in minutes)"
msgstr "Speicher (in Minuten)"
msgctxt "#30018"
msgid "Cache datas time"
msgstr "Speicher Daten Zeit"
msgctxt "#30019"
msgid "Library"
msgstr "Bibliothek"
msgctxt "#30020"
msgid "Albums"
msgstr "Alben"
msgctxt "#30021"
msgid "Tracks"
msgstr "Lieder"
msgctxt "#30022"
msgid "Playlists"
msgstr "Playlisten"
msgctxt "#30023"
msgid "Newest albums"
msgstr "Neueste Alben"
msgctxt "#30024"
msgid "Most played albums"
msgstr "Häufig gehörte Alben"
msgctxt "#30025"
msgid "Recently played albums"
msgstr "Zuletzt gehörte Alben"
msgctxt "#30026"
msgid "Random albums"
msgstr "Zufällige Alben"
msgctxt "#30029"
msgid "Next page"
msgstr "Nächste Seite"
msgctxt "#30030"
msgid "Back to Menu"
msgstr "Hauptmenü"
msgctxt "#30031"
msgid "Item has been unstarred."
msgstr "Bewertung entfernt"
msgctxt "#30032"
msgid "Item has been starred!"
msgstr "Bewertung hinzugefügt"
msgctxt "#30033"
msgid "Star on Subsonic"
msgstr "Bewerten auf Subsonic"
msgctxt "#30034"
msgid "Unstar on Subsonic"
msgstr "Löschen auf Subsonic"
msgctxt "#30035"
msgid "Download"
msgstr "Herunterladen"
msgctxt "#30036"
msgid "Starred tracks"
msgstr "Lieblings lieder"
msgctxt "#30037"
msgid "Random tracks"
msgstr "Zufällig lieder"
msgctxt "#30038"
msgid "Browse"
msgstr "Durchsuchen"
msgctxt "#30039"
msgid "Search"
msgstr "Suche"

View File

@ -1,27 +1,28 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<settings>
<!-- GENERAL -->
<category label="General">
<setting label="Server" type="lsep" />
<setting id="subsonic_url" type="text" label="Server URL" default="http://demo.subsonic.org"/>
<setting id="username" type="text" label="Username" default="guest3"/>
<setting id="password" type="text" option="hidden" label="Password" default="guest"/>
<setting label="Display" type="lsep" />
<setting id="albums_per_page" type="labelenum" label="Albums per page" default="50" values="10|25|50|100|250|500"/>
<setting id="tracks_per_page" type="labelenum" label="Tracks per page (ignored in albums & playlists)" default="100" values="10|25|50|100|250|500"/>
<setting label="Download" type="lsep" />
<setting id="download_folder" type="folder" label="Download folder" source="auto" option="writeable"/>
<setting label="Streaming" type="lsep" />
<setting id="transcode_format_streaming" type="labelenum" label="Transcode format" values="mp3|raw|flv|ogg"/>
<setting id="bitrate_streaming" type="labelenum" label="Bitrate" values="320|256|224|192|160|128|112|96|80|64|56|48|40|32"/>
<category label="30000">
<setting label="30001" type="lsep" />
<setting label="30002" id="subsonic_url" type="text" default="http://demo.subsonic.org"/>
<setting label="30003" id="username" type="text" default="guest3"/>
<setting label="30004" id="password" type="text" option="hidden" default="guest"/>
<setting label="30005" type="lsep" />
<setting label="30006" id="albums_per_page" type="labelenum" default="50" values="10|25|50|100|250|500"/>
<setting label="30007" id="tracks_per_page" type="labelenum" default="100" values="10|25|50|100|250|500"/>
<setting label="30008" type="lsep" />
<setting label="30009" id="download_folder" type="folder" source="auto" option="writeable"/>
<setting label="30010" type="lsep" />
<setting label="30011" id="transcode_format_streaming" type="labelenum" values="mp3|raw|flv|ogg"/>
<setting label="30012" id="bitrate_streaming" type="labelenum" values="320|256|224|192|160|128|112|96|80|64|56|48|40|32"/>
</category>
<!-- ADVANCED -->
<category label="Advanced Settings">
<setting label="Server" type="lsep" />
<setting id="apiversion" type="labelenum" label="API version" values="1.11.0|1.12.0|1.13.0|1.14.0" default="1.13.0"/>
<setting id="insecure" type="bool" label="Allow self signed certificates" default="false" />
<setting label="Cache (in minutes) - not yet implemented" type="lsep" />
<setting id="cachetime" type="labelenum" label="Cache datas time" default="5" values="1|5|15|30|60|120|180|720|1440"/>
<category label="30013">
<setting label="30001" type="lsep" />
<setting label="30014" id="apiversion" type="labelenum" values="1.11.0|1.12.0|1.13.0|1.14.0" default="1.13.0"/>
<setting label="30016" id="insecure" type="bool" default="false" />
<setting label="30017" type="lsep" />
<setting label="30018" id="cachetime" type="labelenum" default="15" values="1|5|15|30|60|120|180|720|1440"/>
</category>
</settings>