diff --git a/dashboard-ui/bower_components/emby-webcomponents/homescreensettings/homescreensettingsdialog.js b/dashboard-ui/bower_components/emby-webcomponents/homescreensettings/homescreensettingsdialog.js
index c867790d98..ff2d2c271c 100644
--- a/dashboard-ui/bower_components/emby-webcomponents/homescreensettings/homescreensettingsdialog.js
+++ b/dashboard-ui/bower_components/emby-webcomponents/homescreensettings/homescreensettingsdialog.js
@@ -1 +1 @@
-define(["dialogHelper","layoutManager","globalize","require","events","homescreenSettings","paper-icon-button-light","css!./../formdialog"],function(dialogHelper,layoutManager,globalize,require,events,HomescreenSettings){"use strict";function centerFocus(elem,horiz,on){require(["scrollHelper"],function(scrollHelper){var fn=on?"on":"off";scrollHelper.centerFocus[fn](elem,horiz)})}function show(options){return new Promise(function(resolve,reject){require(["text!./homescreensettingsdialog.template.html"],function(template){var dialogOptions={removeOnClose:!0,scrollY:!1};layoutManager.tv?dialogOptions.size="fullscreen":dialogOptions.size="medium-tall";var dlg=dialogHelper.createDialog(dialogOptions);dlg.classList.add("formDialog");var html="",submitted=!1;html+=globalize.translateDocument(template,"sharedcomponents"),dlg.innerHTML=html,layoutManager.tv&¢erFocus(dlg.querySelector(".formDialogContent"),!1,!0);var homescreenSettingsInstance=new HomescreenSettings({serverId:options.serverId,userId:options.userId,element:dlg.querySelector(".settingsContent"),userSettings:options.userSettings,enableSaveButton:!1,enableSaveConfirmation:!1});dialogHelper.open(dlg),dlg.addEventListener("close",function(){layoutManager.tv&¢erFocus(dlg.querySelector(".formDialogContent"),!1,!1),submitted?resolve(person):reject()}),dlg.querySelector(".btnCancel").addEventListener("click",function(e){dialogHelper.close(dlg)}),dlg.querySelector(".btnSave").addEventListener("click",function(e){homescreenSettingsInstance.submit()}),events.on(homescreenSettingsInstance,"saved",function(){dialogHelper.close(dlg)})})})}return{show:show}});
\ No newline at end of file
+define(["dialogHelper","layoutManager","globalize","require","events","homescreenSettings","paper-icon-button-light","css!./../formdialog"],function(dialogHelper,layoutManager,globalize,require,events,HomescreenSettings){"use strict";function centerFocus(elem,horiz,on){require(["scrollHelper"],function(scrollHelper){var fn=on?"on":"off";scrollHelper.centerFocus[fn](elem,horiz)})}function show(options){return new Promise(function(resolve,reject){require(["text!./homescreensettingsdialog.template.html"],function(template){var dialogOptions={removeOnClose:!0,scrollY:!1};layoutManager.tv?dialogOptions.size="fullscreen":dialogOptions.size="medium-tall";var dlg=dialogHelper.createDialog(dialogOptions);dlg.classList.add("formDialog");var html="",submitted=!1;html+=globalize.translateDocument(template,"sharedcomponents"),dlg.innerHTML=html,layoutManager.tv&¢erFocus(dlg.querySelector(".formDialogContent"),!1,!0);var homescreenSettingsInstance=new HomescreenSettings({serverId:options.serverId,userId:options.userId,element:dlg.querySelector(".settingsContent"),userSettings:options.userSettings,enableSaveButton:!1,enableSaveConfirmation:!1});dialogHelper.open(dlg),dlg.addEventListener("close",function(){layoutManager.tv&¢erFocus(dlg.querySelector(".formDialogContent"),!1,!1),submitted?resolve():reject()}),dlg.querySelector(".btnCancel").addEventListener("click",function(e){dialogHelper.close(dlg)}),dlg.querySelector(".btnSave").addEventListener("click",function(e){submitted=!0,homescreenSettingsInstance.submit()}),events.on(homescreenSettingsInstance,"saved",function(){submitted=!0,dialogHelper.close(dlg)})})})}return{show:show}});
\ No newline at end of file
diff --git a/dashboard-ui/bower_components/emby-webcomponents/homesections.js b/dashboard-ui/bower_components/emby-webcomponents/homesections.js
index 4c2e80ce96..9a3d273ff1 100644
--- a/dashboard-ui/bower_components/emby-webcomponents/homesections.js
+++ b/dashboard-ui/bower_components/emby-webcomponents/homesections.js
@@ -1 +1 @@
-define(["cardBuilder","appSettings","dom","apphost","layoutManager","imageLoader","globalize","itemShortcuts","itemHelper","embyRouter","emby-button","paper-icon-button-light","emby-itemscontainer","emby-scroller","emby-linkbutton"],function(cardBuilder,appSettings,dom,appHost,layoutManager,imageLoader,globalize,itemShortcuts,itemHelper,embyRouter){"use strict";function getDefaultSection(index){switch(index){case 0:return"smalllibrarytiles";case 1:return"activerecordings";case 2:return"resume";case 3:return"resumeaudio";case 4:return"nextup";case 5:return"onnow";case 6:return"latestmedia";case 7:return"none";default:return""}}function loadSection(page,apiClient,user,userSettings,index){var userId=user.Id,section=userSettings.get("homesection"+index)||getDefaultSection(index);"folders"===section&&(section=getDefaultSection()[0]);var elem=page.querySelector(".section"+index);return"latestmedia"===section?loadRecentlyAdded(elem,apiClient,user):"librarytiles"===section||"smalllibrarytiles"===section||"smalllibrarytiles-automobile"===section||"librarytiles-automobile"===section?loadLibraryTiles(elem,apiClient,user,userSettings,"smallBackdrop"):"librarybuttons"===section?loadlibraryButtons(elem,apiClient,userId,userSettings):"resume"===section?loadResumeVideo(elem,apiClient,userId):"resumeaudio"===section?loadResumeAudio(elem,apiClient,userId):"activerecordings"===section?loadActiveRecordings(elem,apiClient,userId):"nextup"===section?loadNextUp(elem,apiClient,userId):"onnow"===section?loadOnNow(elem,apiClient,userId):"latesttvrecordings"===section?loadLatestLiveTvRecordings(elem,apiClient,userId):"latestchannelmedia"===section?loadLatestChannelMedia(elem,apiClient,userId):(elem.innerHTML="",Promise.resolve())}function getUserViews(apiClient,userId){return apiClient.getUserViews({},userId||apiClient.getCurrentUserId()).then(function(result){return result.Items})}function enableScrollX(){return!layoutManager.desktop}function getSquareShape(){return enableScrollX()?"overflowSquare":"square"}function getThumbShape(){return enableScrollX()?"overflowBackdrop":"backdrop"}function getPortraitShape(){return enableScrollX()?"overflowPortrait":"portrait"}function getLibraryButtonsHtml(items){var html="";html+='
',html+='
'+globalize.translate("sharedcomponents#HeaderMyMedia")+" ",layoutManager.tv||(html+=' '),html+="",html+='';for(var i=0,length=items.length;i'+icon+" "+item.Name+" "}return html+="
"}function loadlibraryButtons(elem,apiClient,userId,userSettings){return getUserViews(apiClient,userId).then(function(items){var html=getLibraryButtonsHtml(items);return getAppInfo(apiClient).then(function(infoHtml){elem.innerHTML=html+infoHtml,bindHomeScreenSettingsIcon(elem,apiClient,userId,userSettings),infoHtml&&bindAppInfoEvents(elem)})})}function bindAppInfoEvents(elem){getRequirePromise(["registrationServices"]).then(function(registrationServices){elem.querySelector(".appInfoSection").addEventListener("click",function(e){dom.parentWithClass(e.target,"card")&®istrationServices.showPremiereInfo()})})}function getRandomInt(min,max){return Math.floor(Math.random()*(max-min+1))+min}function getAppInfo(apiClient){var frequency=1728e5,cacheKey="lastappinfopresent5",lastDatePresented=parseInt(appSettings.get(cacheKey)||"0");return lastDatePresented?(new Date).getTime()-lastDatePresented
';return html+='
",html+="
"}function getTheaterInfo(){var html="";html+='',html+='
',html+='
Discover Emby Theater ',html+='close ',html+="";var nameText="Emby Theater";return html+='
',html+='
A beautiful app for your TV and large screen tablet. '+nameText+" runs on Windows, Xbox One, Raspberry Pi, Samsung Smart TVs, Sony PS4, Web Browsers, and more.
",html+='
',html+=getCard("https://raw.githubusercontent.com/MediaBrowser/Emby.Resources/master/apps/theater1.png"),html+=getCard("https://raw.githubusercontent.com/MediaBrowser/Emby.Resources/master/apps/theater2.png"),html+=getCard("https://raw.githubusercontent.com/MediaBrowser/Emby.Resources/master/apps/theater3.png"),html+="
",html+="
",html+="
"}function getPremiereInfo(){var html="";return html+='',html+='
',html+='
Discover Emby Premiere ',html+='close ',html+="",html+='
',html+='
Enjoy Emby DVR, get free access to Emby apps, and more.
',html+='
',html+=getCard("https://raw.githubusercontent.com/MediaBrowser/Emby.Resources/master/apps/theater1.png"),html+=getCard("https://raw.githubusercontent.com/MediaBrowser/Emby.Resources/master/apps/theater2.png"),html+=getCard("https://raw.githubusercontent.com/MediaBrowser/Emby.Resources/master/apps/theater3.png"),html+="
",html+="
",html+="
"}function renderLatestSection(elem,apiClient,user,parent){var limit=12;enableScrollX()||(limit="tvshows"===parent.CollectionType?5:"music"===parent.CollectionType?9:8);var options={Limit:limit,Fields:"PrimaryImageAspectRatio,BasicSyncInfo",ImageTypeLimit:1,EnableImageTypes:"Primary,Backdrop,Thumb",ParentId:parent.Id};return apiClient.getJSON(apiClient.getUrl("Users/"+user.Id+"/Items/Latest",options)).then(function(items){var html="";if(items.length){html+='",html+=enableScrollX()?'"}elem.innerHTML=html,imageLoader.lazyChildren(elem)})}function loadRecentlyAdded(elem,apiClient,user){return elem.classList.remove("verticalSection"),getUserViews(apiClient,user.Id).then(function(items){for(var excludeViewTypes=["playlists","livetv","boxsets","channels"],excludeItemTypes=["Channel"],i=0,length=items.length;i
=2400?10:screenWidth>=1600?10:screenWidth>=1440?8:screenWidth>=800?7:6,Fields:"PrimaryImageAspectRatio,BasicSyncInfo",Filters:"IsUnplayed",UserId:userId};return apiClient.getJSON(apiClient.getUrl("Channels/Items/Latest",options)).then(function(result){var html="";result.Items.length&&(html+=''+globalize.translate("sharedcomponents#HeaderLatestChannelMedia")+" ",html+=enableScrollX()?'':'
',html+=cardBuilder.getCardsHtml({items:result.Items,shape:"auto",showTitle:!0,centerText:!0,lazy:!0,showDetailsMenu:!0,overlayPlayButton:!0}),enableScrollX()&&(html+="
")),elem.innerHTML=html,imageLoader.lazyChildren(elem)})}function getRequirePromise(deps){return new Promise(function(resolve,reject){require(deps,resolve)})}function showHomeScreenSettings(options){return getRequirePromise(["homescreenSettingsDialog"]).then(function(homescreenSettingsDialog){return homescreenSettingsDialog.show(options)})}function bindHomeScreenSettingsIcon(elem,apiClient,userId,userSettings){var btnHomeScreenSettings=elem.querySelector(".btnHomeScreenSettings");btnHomeScreenSettings&&btnHomeScreenSettings.addEventListener("click",function(){showHomeScreenSettings({serverId:apiClient.serverId(),userId:userId,userSettings:userSettings})})}function loadLibraryTiles(elem,apiClient,user,userSettings,shape){return getUserViews(apiClient,user.Id).then(function(items){var html="";if(html+="
",items.length){html+='
',html+='
'+globalize.translate("sharedcomponents#HeaderMyMedia")+" ",layoutManager.tv||(html+=' '),html+="";var scrollX=enableScrollX();html+=enableScrollX()?'
",getAppInfo(apiClient).then(function(infoHtml){elem.innerHTML=html+infoHtml,bindHomeScreenSettingsIcon(elem,apiClient,user.Id,userSettings),infoHtml&&bindAppInfoEvents(elem),imageLoader.lazyChildren(elem)})})}function loadResumeVideo(elem,apiClient,userId){var limit,screenWidth=dom.getWindowSize().innerWidth;enableScrollX()?limit=12:(limit=screenWidth>=1920?8:screenWidth>=1600?8:screenWidth>=1200?9:6,limit=Math.min(limit,5));var options={SortBy:"DatePlayed",SortOrder:"Descending",Filters:"IsResumable",Limit:limit,Recursive:!0,Fields:"PrimaryImageAspectRatio,BasicSyncInfo",CollapseBoxSetItems:!1,ExcludeLocationTypes:"Virtual",ImageTypeLimit:1,EnableImageTypes:"Primary,Backdrop,Thumb",EnableTotalRecordCount:!1,MediaTypes:"Video"};return apiClient.getItems(userId,options).then(function(result){var html="";if(result.Items.length){html+='
'+globalize.translate("sharedcomponents#HeaderContinueWatching")+" ",html+=enableScrollX()?'
"}elem.innerHTML=html,imageLoader.lazyChildren(elem)})}function loadResumeAudio(elem,apiClient,userId){var limit,screenWidth=dom.getWindowSize().innerWidth;enableScrollX()?limit=12:(limit=screenWidth>=1920?8:screenWidth>=1600?8:screenWidth>=1200?9:6,limit=Math.min(limit,5));var options={SortBy:"DatePlayed",SortOrder:"Descending",Filters:"IsResumable",Limit:limit,Recursive:!0,Fields:"PrimaryImageAspectRatio,BasicSyncInfo",CollapseBoxSetItems:!1,ExcludeLocationTypes:"Virtual",ImageTypeLimit:1,EnableImageTypes:"Primary,Backdrop,Thumb",EnableTotalRecordCount:!1,MediaTypes:"Audio"};return apiClient.getItems(userId,options).then(function(result){var html="";if(result.Items.length){html+='
'+globalize.translate("sharedcomponents#HeaderContinueListening")+" ",html+=enableScrollX()?'
"}elem.innerHTML=html,imageLoader.lazyChildren(elem)})}function loadActiveRecordings(elem,apiClient,userId){apiClient.getLiveTvRecordings({UserId:userId,IsInProgress:!0,Fields:"CanDelete,PrimaryImageAspectRatio,BasicSyncInfo",EnableTotalRecordCount:!1,EnableImageTypes:"Primary,Thumb,Backdrop"}).then(function(result){var html="";if(result.Items.length){html+='
'+globalize.translate("sharedcomponents#HeaderActiveRecordings")+" ",html+=enableScrollX()?'
"}elem.innerHTML=html,imageLoader.lazyChildren(elem)})}function loadOnNow(elem,apiClient,userId){return apiClient.getLiveTvRecommendedPrograms({userId:apiClient.getCurrentUserId(),IsAiring:!0,limit:enableScrollX()?18:5,ImageTypeLimit:1,EnableImageTypes:"Primary,Thumb,Backdrop",EnableTotalRecordCount:!1,Fields:"ChannelInfo"}).then(function(result){var html="";result.Items.length&&(html+='
",html+=enableScrollX()?'
"),elem.innerHTML=html,imageLoader.lazyChildren(elem)})}function loadNextUp(elem,apiClient,userId){var query={Limit:enableScrollX()?24:15,Fields:"PrimaryImageAspectRatio,SeriesInfo,DateCreated,BasicSyncInfo",UserId:userId,ImageTypeLimit:1,EnableImageTypes:"Primary,Backdrop,Banner,Thumb",EnableTotalRecordCount:!1};apiClient.getNextUpEpisodes(query).then(function(result){var html="";if(result.Items.length){html+='
",html+=enableScrollX()?'
"}elem.innerHTML=html,imageLoader.lazyChildren(elem)})}function loadLatestChannelItems(elem,apiClient,userId,options){return options=Object.assign(options||{},{UserId:userId,SupportsLatestItems:!0}),apiClient.getJSON(apiClient.getUrl("Channels",options)).then(function(result){var channels=result.Items,channelsHtml=channels.map(function(c){return'
'}).join("");elem.innerHTML=channelsHtml;for(var i=0,length=channels.length;i
=1600?10:screenWidth>=1440?5:6,Fields:"PrimaryImageAspectRatio,BasicSyncInfo",Filters:"IsUnplayed",UserId:apiClient.getCurrentUserId(),ChannelIds:channel.Id};apiClient.getJSON(apiClient.getUrl("Channels/Items/Latest",options)).then(function(result){var html="";if(result.Items.length){html+='',html+='
",html+=enableScrollX()?'
"}var elem=page.querySelector("#channel"+channel.Id);elem.innerHTML=html,imageLoader.lazyChildren(elem)})}function loadLatestLiveTvRecordings(elem,apiClient,userId){return apiClient.getLiveTvRecordings({userId:userId,Limit:enableScrollX()?12:5,Fields:"PrimaryImageAspectRatio,BasicSyncInfo",IsInProgress:!1,EnableTotalRecordCount:!1,IsLibraryItem:!1}).then(function(result){var html="";result.Items.length&&(html+='
',html+='
'+globalize.translate("sharedcomponents#HeaderLatestRecordings")+" ",!layoutManager.tv,html+=""),html+=enableScrollX()?'
",elem.innerHTML=html,imageLoader.lazyChildren(elem)})}return{loadRecentlyAdded:loadRecentlyAdded,loadLatestChannelMedia:loadLatestChannelMedia,loadLibraryTiles:loadLibraryTiles,loadResumeVideo:loadResumeVideo,loadResumeAudio:loadResumeAudio,loadActiveRecordings:loadActiveRecordings,loadNextUp:loadNextUp,loadLatestChannelItems:loadLatestChannelItems,loadLatestLiveTvRecordings:loadLatestLiveTvRecordings,loadlibraryButtons:loadlibraryButtons,loadSection:loadSection,getDefaultSection:getDefaultSection}});
\ No newline at end of file
+define(["cardBuilder","appSettings","dom","apphost","layoutManager","imageLoader","globalize","itemShortcuts","itemHelper","embyRouter","emby-button","paper-icon-button-light","emby-itemscontainer","emby-scroller","emby-linkbutton"],function(cardBuilder,appSettings,dom,appHost,layoutManager,imageLoader,globalize,itemShortcuts,itemHelper,embyRouter){"use strict";function getDefaultSection(index){switch(index){case 0:return"smalllibrarytiles";case 1:return"activerecordings";case 2:return"resume";case 3:return"resumeaudio";case 4:return"nextup";case 5:return"onnow";case 6:return"latestmedia";case 7:return"none";default:return""}}function loadSections(elem,apiClient,user,userSettings){var i,length,sectionCount=7,html="";for(i=0,length=sectionCount;i
';elem.innerHTML=html,elem.classList.add("homeSectionsContainer");var promises=[];for(i=0,length=sectionCount;i
',html+=''+globalize.translate("sharedcomponents#HeaderMyMedia")+" ",layoutManager.tv||(html+=' '),html+=" ",html+='';for(var i=0,length=items.length;i'+icon+" "+item.Name+" "}return html+="
"}function loadlibraryButtons(elem,apiClient,userId,userSettings){return getUserViews(apiClient,userId).then(function(items){var html=getLibraryButtonsHtml(items);return getAppInfo(apiClient).then(function(infoHtml){elem.innerHTML=html+infoHtml,bindHomeScreenSettingsIcon(elem,apiClient,userId,userSettings),infoHtml&&bindAppInfoEvents(elem)})})}function bindAppInfoEvents(elem){getRequirePromise(["registrationServices"]).then(function(registrationServices){elem.querySelector(".appInfoSection").addEventListener("click",function(e){dom.parentWithClass(e.target,"card")&®istrationServices.showPremiereInfo()})})}function getRandomInt(min,max){return Math.floor(Math.random()*(max-min+1))+min}function getAppInfo(apiClient){var frequency=1728e5,cacheKey="lastappinfopresent5",lastDatePresented=parseInt(appSettings.get(cacheKey)||"0");return lastDatePresented?(new Date).getTime()-lastDatePresented
';return html+='
",html+="
"}function getTheaterInfo(){var html="";html+='
',html+='
',html+='
Discover Emby Theater ',html+='close ',html+="";var nameText="Emby Theater";return html+='
',html+='
A beautiful app for your TV and large screen tablet. '+nameText+" runs on Windows, Xbox One, Raspberry Pi, Samsung Smart TVs, Sony PS4, Web Browsers, and more.
",html+='
',html+=getCard("https://raw.githubusercontent.com/MediaBrowser/Emby.Resources/master/apps/theater1.png"),html+=getCard("https://raw.githubusercontent.com/MediaBrowser/Emby.Resources/master/apps/theater2.png"),html+=getCard("https://raw.githubusercontent.com/MediaBrowser/Emby.Resources/master/apps/theater3.png"),html+="
",html+="
",html+="
"}function getPremiereInfo(){var html="";return html+='
',html+='
',html+='
Discover Emby Premiere ',html+='close ',html+="",html+='
',html+='
Enjoy Emby DVR, get free access to Emby apps, and more.
',html+='
',html+=getCard("https://raw.githubusercontent.com/MediaBrowser/Emby.Resources/master/apps/theater1.png"),html+=getCard("https://raw.githubusercontent.com/MediaBrowser/Emby.Resources/master/apps/theater2.png"),html+=getCard("https://raw.githubusercontent.com/MediaBrowser/Emby.Resources/master/apps/theater3.png"),html+="
",html+="
",html+="
"}function renderLatestSection(elem,apiClient,user,parent){var limit=12;enableScrollX()||(limit="tvshows"===parent.CollectionType?5:"music"===parent.CollectionType?9:8);var options={Limit:limit,Fields:"PrimaryImageAspectRatio,BasicSyncInfo",ImageTypeLimit:1,EnableImageTypes:"Primary,Backdrop,Thumb",ParentId:parent.Id};return apiClient.getJSON(apiClient.getUrl("Users/"+user.Id+"/Items/Latest",options)).then(function(items){var html="";if(items.length){html+='
",html+=enableScrollX()?'
"}elem.innerHTML=html,imageLoader.lazyChildren(elem)})}function loadRecentlyAdded(elem,apiClient,user){return elem.classList.remove("verticalSection"),getUserViews(apiClient,user.Id).then(function(items){for(var excludeViewTypes=["playlists","livetv","boxsets","channels"],excludeItemTypes=["Channel"],i=0,length=items.length;i
=2400?10:screenWidth>=1600?10:screenWidth>=1440?8:screenWidth>=800?7:6,Fields:"PrimaryImageAspectRatio,BasicSyncInfo",Filters:"IsUnplayed",UserId:userId};return apiClient.getJSON(apiClient.getUrl("Channels/Items/Latest",options)).then(function(result){var html="";result.Items.length&&(html+=''+globalize.translate("sharedcomponents#HeaderLatestChannelMedia")+" ",html+=enableScrollX()?'':'
',html+=cardBuilder.getCardsHtml({items:result.Items,shape:"auto",showTitle:!0,centerText:!0,lazy:!0,showDetailsMenu:!0,overlayPlayButton:!0}),enableScrollX()&&(html+="
")),elem.innerHTML=html,imageLoader.lazyChildren(elem)})}function getRequirePromise(deps){return new Promise(function(resolve,reject){require(deps,resolve)})}function showHomeScreenSettings(elem,options){return getRequirePromise(["homescreenSettingsDialog"]).then(function(homescreenSettingsDialog){return homescreenSettingsDialog.show(options).then(function(){dom.parentWithClass(elem,"homeSectionsContainer").dispatchEvent(new CustomEvent("settingschange",{cancelable:!1}))})})}function bindHomeScreenSettingsIcon(elem,apiClient,userId,userSettings){var btnHomeScreenSettings=elem.querySelector(".btnHomeScreenSettings");btnHomeScreenSettings&&btnHomeScreenSettings.addEventListener("click",function(){showHomeScreenSettings(elem,{serverId:apiClient.serverId(),userId:userId,userSettings:userSettings})})}function loadLibraryTiles(elem,apiClient,user,userSettings,shape){return getUserViews(apiClient,user.Id).then(function(items){var html="";if(html+="
",items.length){html+='
',html+='
'+globalize.translate("sharedcomponents#HeaderMyMedia")+" ",layoutManager.tv||(html+=' '),html+="";var scrollX=enableScrollX();html+=enableScrollX()?'
",getAppInfo(apiClient).then(function(infoHtml){elem.innerHTML=html+infoHtml,bindHomeScreenSettingsIcon(elem,apiClient,user.Id,userSettings),infoHtml&&bindAppInfoEvents(elem),imageLoader.lazyChildren(elem)})})}function loadResumeVideo(elem,apiClient,userId){var limit,screenWidth=dom.getWindowSize().innerWidth;enableScrollX()?limit=12:(limit=screenWidth>=1920?8:screenWidth>=1600?8:screenWidth>=1200?9:6,limit=Math.min(limit,5));var options={SortBy:"DatePlayed",SortOrder:"Descending",Filters:"IsResumable",Limit:limit,Recursive:!0,Fields:"PrimaryImageAspectRatio,BasicSyncInfo",CollapseBoxSetItems:!1,ExcludeLocationTypes:"Virtual",ImageTypeLimit:1,EnableImageTypes:"Primary,Backdrop,Thumb",EnableTotalRecordCount:!1,MediaTypes:"Video"};return apiClient.getItems(userId,options).then(function(result){var html="";if(result.Items.length){html+='
'+globalize.translate("sharedcomponents#HeaderContinueWatching")+" ",html+=enableScrollX()?'
"}elem.innerHTML=html,imageLoader.lazyChildren(elem)})}function loadResumeAudio(elem,apiClient,userId){var limit,screenWidth=dom.getWindowSize().innerWidth;enableScrollX()?limit=12:(limit=screenWidth>=1920?8:screenWidth>=1600?8:screenWidth>=1200?9:6,limit=Math.min(limit,5));var options={SortBy:"DatePlayed",SortOrder:"Descending",Filters:"IsResumable",Limit:limit,Recursive:!0,Fields:"PrimaryImageAspectRatio,BasicSyncInfo",CollapseBoxSetItems:!1,ExcludeLocationTypes:"Virtual",ImageTypeLimit:1,EnableImageTypes:"Primary,Backdrop,Thumb",EnableTotalRecordCount:!1,MediaTypes:"Audio"};return apiClient.getItems(userId,options).then(function(result){var html="";if(result.Items.length){html+='
'+globalize.translate("sharedcomponents#HeaderContinueListening")+" ",html+=enableScrollX()?'
"}elem.innerHTML=html,imageLoader.lazyChildren(elem)})}function loadActiveRecordings(elem,apiClient,userId){apiClient.getLiveTvRecordings({UserId:userId,IsInProgress:!0,Fields:"CanDelete,PrimaryImageAspectRatio,BasicSyncInfo",EnableTotalRecordCount:!1,EnableImageTypes:"Primary,Thumb,Backdrop"}).then(function(result){var html="";if(result.Items.length){html+='
'+globalize.translate("sharedcomponents#HeaderActiveRecordings")+" ",html+=enableScrollX()?'
"}elem.innerHTML=html,imageLoader.lazyChildren(elem)})}function loadOnNow(elem,apiClient,userId){return apiClient.getLiveTvRecommendedPrograms({userId:apiClient.getCurrentUserId(),IsAiring:!0,limit:enableScrollX()?18:5,ImageTypeLimit:1,EnableImageTypes:"Primary,Thumb,Backdrop",EnableTotalRecordCount:!1,Fields:"ChannelInfo"}).then(function(result){var html="";result.Items.length&&(html+='
",html+=enableScrollX()?'
"),elem.innerHTML=html,imageLoader.lazyChildren(elem)})}function loadNextUp(elem,apiClient,userId){var query={Limit:enableScrollX()?24:15,Fields:"PrimaryImageAspectRatio,SeriesInfo,DateCreated,BasicSyncInfo",UserId:userId,ImageTypeLimit:1,EnableImageTypes:"Primary,Backdrop,Banner,Thumb",EnableTotalRecordCount:!1};apiClient.getNextUpEpisodes(query).then(function(result){var html="";if(result.Items.length){html+='
",html+=enableScrollX()?'
"}elem.innerHTML=html,imageLoader.lazyChildren(elem)})}function loadLatestChannelItems(elem,apiClient,userId,options){return options=Object.assign(options||{},{UserId:userId,SupportsLatestItems:!0}),apiClient.getJSON(apiClient.getUrl("Channels",options)).then(function(result){var channels=result.Items,channelsHtml=channels.map(function(c){return'
'}).join("");elem.innerHTML=channelsHtml;for(var i=0,length=channels.length;i
=1600?10:screenWidth>=1440?5:6,Fields:"PrimaryImageAspectRatio,BasicSyncInfo",Filters:"IsUnplayed",UserId:apiClient.getCurrentUserId(),ChannelIds:channel.Id};apiClient.getJSON(apiClient.getUrl("Channels/Items/Latest",options)).then(function(result){var html="";if(result.Items.length){html+='',html+='
",html+=enableScrollX()?'
"}var elem=page.querySelector("#channel"+channel.Id);elem.innerHTML=html,imageLoader.lazyChildren(elem)})}function loadLatestLiveTvRecordings(elem,apiClient,userId){return apiClient.getLiveTvRecordings({userId:userId,Limit:enableScrollX()?12:5,Fields:"PrimaryImageAspectRatio,BasicSyncInfo",IsInProgress:!1,EnableTotalRecordCount:!1,IsLibraryItem:!1}).then(function(result){var html="";result.Items.length&&(html+='
',html+='
'+globalize.translate("sharedcomponents#HeaderLatestRecordings")+" ",!layoutManager.tv,html+=""),html+=enableScrollX()?'
",elem.innerHTML=html,imageLoader.lazyChildren(elem)})}return{loadRecentlyAdded:loadRecentlyAdded,loadLatestChannelMedia:loadLatestChannelMedia,loadLibraryTiles:loadLibraryTiles,loadResumeVideo:loadResumeVideo,loadResumeAudio:loadResumeAudio,loadActiveRecordings:loadActiveRecordings,loadNextUp:loadNextUp,loadLatestChannelItems:loadLatestChannelItems,loadLatestLiveTvRecordings:loadLatestLiveTvRecordings,loadlibraryButtons:loadlibraryButtons,loadSection:loadSection,getDefaultSection:getDefaultSection,loadSections:loadSections}});
\ No newline at end of file
diff --git a/dashboard-ui/bower_components/emby-webcomponents/htmlvideoplayer/plugin.js b/dashboard-ui/bower_components/emby-webcomponents/htmlvideoplayer/plugin.js
index 686a5a79ff..fbb62448ea 100644
--- a/dashboard-ui/bower_components/emby-webcomponents/htmlvideoplayer/plugin.js
+++ b/dashboard-ui/bower_components/emby-webcomponents/htmlvideoplayer/plugin.js
@@ -1 +1 @@
-define(["browser","pluginManager","events","apphost","loading","playbackManager","embyRouter","appSettings","connectionManager","itemHelper"],function(browser,pluginManager,events,appHost,loading,playbackManager,embyRouter,appSettings,connectionManager,itemHelper){"use strict";return function(){function getSavedVolume(){return appSettings.get("volume")||1}function saveVolume(value){value&&appSettings.set("volume",value)}function getDefaultProfile(){return new Promise(function(resolve,reject){require(["browserdeviceprofile"],function(profileBuilder){resolve(profileBuilder({}))})})}function updateVideoUrl(streamInfo){var isHls=streamInfo.url.toLowerCase().indexOf(".m3u8")!==-1,mediaSource=streamInfo.mediaSource,item=streamInfo.item;if(mediaSource&&item&&!mediaSource.RunTimeTicks&&isHls&&"Transcode"===streamInfo.playMethod&&(browser.iOS||browser.osx)){var hlsPlaylistUrl=streamInfo.url.replace("master.m3u8","live.m3u8");return loading.show(),console.log("prefetching hls playlist: "+hlsPlaylistUrl),connectionManager.getApiClient(item.ServerId).ajax({type:"GET",url:hlsPlaylistUrl}).then(function(){return console.log("completed prefetching hls playlist: "+hlsPlaylistUrl),loading.hide(),streamInfo.url=hlsPlaylistUrl,Promise.resolve()},function(){return console.log("error prefetching hls playlist: "+hlsPlaylistUrl),loading.hide(),Promise.resolve()})}return Promise.resolve()}function getSupportedFeatures(){var list=[],video=document.createElement("video");return browser.ipad&&navigator.userAgent.toLowerCase().indexOf("os 9")===-1&&video.webkitSupportsPresentationMode&&video.webkitSupportsPresentationMode&&"function"==typeof video.webkitSetPresentationMode&&list.push("PictureInPicture"),list.push("SetBrightness"),list}function getCrossOriginValue(mediaSource){return mediaSource.IsRemote?null:"anonymous"}function requireHlsPlayer(callback){require(["hlsjs"],function(hls){window.Hls=hls,callback()})}function bindEventsToHlsPlayer(hls,elem,resolve,reject){hls.on(Hls.Events.MANIFEST_PARSED,function(){playWithPromise(elem).then(resolve,function(){reject&&(reject(),reject=null)})}),hls.on(Hls.Events.ERROR,function(event,data){if(console.log("HLS Error: Type: "+data.type+" Details: "+(data.details||"")+" Fatal: "+(data.fatal||!1)),data.fatal)switch(data.type){case Hls.ErrorTypes.NETWORK_ERROR:data.response&&data.response.code&&data.response.code>=400&&data.response.code<500?(console.log("hls.js response error code: "+data.response.code),reject?(reject(),reject=null):onErrorInternal("network")):(console.log("fatal network error encountered, try to recover"),hls.startLoad());break;case Hls.ErrorTypes.MEDIA_ERROR:console.log("fatal media error encountered, try to recover");var currentReject=reject;reject=null,handleMediaError(currentReject);break;default:hls.destroy(),reject?(reject(),reject=null):onErrorInternal("mediadecodeerror")}})}function setCurrentSrc(elem,options){elem.removeEventListener("error",onError);var val=options.url;console.log("playing url: "+val);var seconds=(options.playerStartPositionTicks||0)/1e7;seconds&&(val+="#t="+seconds),destroyHlsPlayer();for(var tracks=getMediaStreamTextTracks(options.mediaSource),currentTrackIndex=-1,i=0,length=tracks.length;i
'+getTracksHtml(tracks,options.mediaSource,options.item.ServerId),elem.addEventListener("loadedmetadata",onLoadedMetadata),currentSrc=val,setCurrentTrackElement(currentTrackIndex),playWithPromise(elem)):applySrc(elem,val,options).then(function(){return setTracks(elem,tracks,options.mediaSource,options.item.ServerId),currentSrc=val,setCurrentTrackElement(currentTrackIndex),playWithPromise(elem)})}function handleMediaError(reject){if(hlsPlayer){var now=Date.now();window.performance&&window.performance.now&&(now=performance.now()),!recoverDecodingErrorDate||now-recoverDecodingErrorDate>3e3?(recoverDecodingErrorDate=now,console.log("try to recover media Error ..."),hlsPlayer.recoverMediaError()):!recoverSwapAudioCodecDate||now-recoverSwapAudioCodecDate>3e3?(recoverSwapAudioCodecDate=now,console.log("try to swap Audio Codec and recover media Error ..."),hlsPlayer.swapAudioCodec(),hlsPlayer.recoverMediaError()):(console.error("cannot recover, last media error recovery failed ..."),reject?reject():onErrorInternal("mediadecodeerror"))}}function applySrc(elem,src,options){return window.Windows&&options.mediaSource&&options.mediaSource.IsLocal?Windows.Storage.StorageFile.getFileFromPathAsync(options.url).then(function(file){var playlist=new Windows.Media.Playback.MediaPlaybackList,source1=Windows.Media.Core.MediaSource.createFromStorageFile(file),startTime=(options.playerStartPositionTicks||0)/1e4;return playlist.items.append(new Windows.Media.Playback.MediaPlaybackItem(source1,startTime)),elem.src=URL.createObjectURL(playlist,{oneTimeOnly:!0}),Promise.resolve()}):(elem.src=src,Promise.resolve())}function onSuccessfulPlay(elem){elem.addEventListener("error",onError)}function playWithPromise(elem){try{var promise=elem.play();return promise&&promise.then?promise.catch(function(e){var errorName=(e.name||"").toLowerCase();return"notallowederror"===errorName||"aborterror"===errorName?(onSuccessfulPlay(elem),Promise.resolve()):Promise.reject()}):(onSuccessfulPlay(elem),Promise.resolve())}catch(err){return console.log("error calling video.play: "+err),Promise.reject()}}function destroyHlsPlayer(){var player=hlsPlayer;if(player){try{player.destroy()}catch(err){console.log(err)}hlsPlayer=null}}function onEnded(){destroyCustomTrack(this),onEndedInternal(!0,this)}function onEndedInternal(triggerEnded,elem){if(elem.removeEventListener("error",onError),elem.src="",elem.innerHTML="",elem.removeAttribute("src"),destroyHlsPlayer(),self.originalDocumentTitle&&(document.title=self.originalDocumentTitle,self.originalDocumentTitle=null),triggerEnded){var stopInfo={src:currentSrc};events.trigger(self,"stopped",[stopInfo]),_currentTime=null}currentSrc=null}function onTimeUpdate(e){var time=this.currentTime;_currentTime=time;var timeMs=1e3*time;timeMs+=(currentPlayOptions.transcodingOffsetTicks||0)/1e4,updateSubtitleText(timeMs),events.trigger(self,"timeupdate")}function onVolumeChange(){saveVolume(this.volume),events.trigger(self,"volumechange")}function onNavigatedToOsd(){videoDialog.classList.remove("videoPlayerContainer-withBackdrop"),videoDialog.classList.remove("videoPlayerContainer-onTop")}function onPlaying(e){started?events.trigger(self,"unpause"):(started=!0,this.removeAttribute("controls"),currentPlayOptions.title?(self.originalDocumentTitle=document.title,document.title=currentPlayOptions.title):self.originalDocumentTitle=null,setCurrentTrackElement(subtitleTrackIndexToSetOnPlaying),seekOnPlaybackStart(e.target),currentPlayOptions.fullscreen?embyRouter.showVideoOsd().then(onNavigatedToOsd):(embyRouter.setTransparency("backdrop"),videoDialog.classList.remove("videoPlayerContainer-withBackdrop"),videoDialog.classList.remove("videoPlayerContainer-onTop")),loading.hide(),ensureValidVideo(this)),events.trigger(self,"playing")}function ensureValidVideo(elem){setTimeout(function(){if(elem===mediaElement)return 0===elem.videoWidth&&0===elem.videoHeight?void onErrorInternal("mediadecodeerror"):void 0},100)}function seekOnPlaybackStart(element){var seconds=(currentPlayOptions.playerStartPositionTicks||0)/1e7;if(seconds){var src=(self.currentSrc()||"").toLowerCase();if(!browser.chrome||src.indexOf(".m3u8")!==-1){var delay=browser.safari?2500:0;delay?setTimeout(function(){element.currentTime=seconds},delay):element.currentTime=seconds}}}function onClick(){events.trigger(self,"click")}function onDblClick(){events.trigger(self,"dblclick")}function onPause(){events.trigger(self,"pause")}function onError(){var errorCode=this.error?this.error.code||0:0;console.log("Media element error code: "+errorCode.toString());var type;switch(errorCode){case 1:return;case 2:type="network";break;case 3:if(hlsPlayer)return void handleMediaError();type="mediadecodeerror";break;case 4:type="medianotsupported";break;default:return}onErrorInternal(type)}function onErrorInternal(type){destroyCustomTrack(mediaElement),events.trigger(self,"error",[{type:type}])}function onLoadedMetadata(e){var mediaElem=e.target;if(mediaElem.removeEventListener("loadedmetadata",onLoadedMetadata),!hlsPlayer)try{mediaElem.play()}catch(err){console.log("error calling mediaElement.play: "+err)}}function enableHlsPlayer(src,item,mediaSource){if(src&&src.indexOf(".m3u8")===-1)return!1;if(null==window.MediaSource)return!1;if(canPlayNativeHls()){if(browser.edge)return!0;if(mediaSource.RunTimeTicks)return!1}return!(browser.safari&&!browser.osx)}function canPlayNativeHls(){var media=document.createElement("video");return!(!media.canPlayType("application/x-mpegURL").replace(/no/,"")&&!media.canPlayType("application/vnd.apple.mpegURL").replace(/no/,""))}function setTracks(elem,tracks,mediaSource,serverId){elem.innerHTML=getTracksHtml(tracks,mediaSource,serverId)}function getTextTrackUrl(track,serverId){return playbackManager.getSubtitleUrl(track,serverId)}function getTracksHtml(tracks,mediaSource,serverId){return tracks.map(function(t){var defaultAttribute=mediaSource.DefaultSubtitleStreamIndex===t.Index?" default":"",language=t.Language||"und",label=t.Language||"und";return' "}).join("")}function enableNativeTrackSupport(track){if(browser.firefox&&(currentSrc||"").toLowerCase().indexOf(".m3u8")!==-1)return!1;if(browser.ps4)return!1;if(browser.edge)return!1;if(track){var format=(track.Codec||"").toLowerCase();if("ssa"===format||"ass"===format)return!1}return!0}function destroyCustomTrack(videoElement){if(window.removeEventListener("resize",onVideoResize),window.removeEventListener("orientationchange",onVideoResize),videoSubtitlesElem){var subtitlesContainer=videoSubtitlesElem.parentNode;subtitlesContainer.parentNode.removeChild(subtitlesContainer),videoSubtitlesElem=null}if(currentTrackEvents=null,videoElement)for(var allTracks=videoElement.textTracks||[],i=0;i ',videoSubtitlesElem=subtitlesContainer.querySelector(".videoSubtitlesInner"),videoElement.parentNode.appendChild(subtitlesContainer),currentTrackEvents=data.TrackEvents}})}function renderTracksEvents(videoElement,track,serverId){var format=(track.Codec||"").toLowerCase();if("ssa"===format||"ass"===format)return void renderWithLibjass(videoElement,track,serverId);if(requiresCustomSubtitlesElement())return void renderSubtitlesWithCustomElement(videoElement,track,serverId);for(var trackElement=null,expectedId="manualTrack"+track.Index,allTracks=videoElement.textTracks,i=0;i
=ticks){selectedTrackEvent=currentTrackEvent;break}}selectedTrackEvent?(videoSubtitlesElem.innerHTML=normalizeTrackEventText(selectedTrackEvent.Text),videoSubtitlesElem.classList.remove("hide")):(videoSubtitlesElem.innerHTML="",videoSubtitlesElem.classList.add("hide"))}}function getMediaStreamAudioTracks(mediaSource){return mediaSource.MediaStreams.filter(function(s){return"Audio"===s.Type})}function getMediaStreamTextTracks(mediaSource){return mediaSource.MediaStreams.filter(function(s){return"Subtitle"===s.Type&&"External"===s.DeliveryMethod})}function setCurrentTrackElement(streamIndex){console.log("Setting new text track index to: "+streamIndex);var mediaStreamTextTracks=getMediaStreamTextTracks(currentPlayOptions.mediaSource),track=streamIndex===-1?null:mediaStreamTextTracks.filter(function(t){return t.Index===streamIndex})[0];enableNativeTrackSupport(track)?setTrackForCustomDisplay(mediaElement,null):(setTrackForCustomDisplay(mediaElement,track),streamIndex=-1,track=null);for(var expectedId="textTrack"+streamIndex,trackIndex=streamIndex!==-1&&track?mediaStreamTextTracks.indexOf(track):-1,modes=["disabled","showing","hidden"],allTracks=mediaElement.textTracks,i=0;i':'',html+=" ",dlg.innerHTML=html;var videoElement=dlg.querySelector("video");videoElement.volume=getSavedVolume(),videoElement.addEventListener("timeupdate",onTimeUpdate),videoElement.addEventListener("ended",onEnded),videoElement.addEventListener("volumechange",onVolumeChange),videoElement.addEventListener("pause",onPause),videoElement.addEventListener("playing",onPlaying),videoElement.addEventListener("click",onClick),videoElement.addEventListener("dblclick",onDblClick),document.body.insertBefore(dlg,document.body.firstChild),videoDialog=dlg,mediaElement=videoElement,options.fullscreen&&browser.supportsCssAnimation()&&!browser.slow?zoomIn(dlg).then(function(){resolve(videoElement)}):resolve(videoElement)})})}var self=this;self.name="Html Video Player",self.type="mediaplayer",self.id="htmlvideoplayer",self.priority=1;var mediaElement,videoDialog,currentSrc,hlsPlayer,currentPlayOptions,subtitleTrackIndexToSetOnPlaying,currentClock,currentAssRenderer,currentAspectRatio,videoSubtitlesElem,currentTrackEvents,started=!1,lastCustomTrackMs=0,customTrackIndex=-1;self.canPlayMediaType=function(mediaType){return"video"===(mediaType||"").toLowerCase()},self.getDeviceProfile=function(item){return appHost.getDeviceProfile?appHost.getDeviceProfile(item):getDefaultProfile()},self.currentSrc=function(){return currentSrc},self.play=function(options){return browser.msie&&"Transcode"===options.playMethod&&!window.MediaSource?(alert("Playback of this content is not supported in Internet Explorer. For a better experience, try a modern browser such as Microsoft Edge, Google Chrome, Firefox or Opera."),Promise.reject()):(started=!1,_currentTime=null,createMediaElement(options).then(function(elem){return updateVideoUrl(options,options.mediaSource).then(function(){return setCurrentSrc(elem,options)})}))};var supportedFeatures;self.supports=function(feature){return supportedFeatures||(supportedFeatures=getSupportedFeatures()),supportedFeatures.indexOf(feature)!==-1},self.setAspectRatio=function(val){var video=mediaElement;video&&(currentAspectRatio=val)},self.getAspectRatio=function(){return currentAspectRatio},self.getSupportedAspectRatios=function(){return[]},self.togglePictureInPicture=function(){return self.setPictureInPictureEnabled(!self.isPictureInPictureEnabled())},self.setPictureInPictureEnabled=function(isEnabled){var video=mediaElement;video&&video.webkitSupportsPresentationMode&&"function"==typeof video.webkitSetPresentationMode&&video.webkitSetPresentationMode(isEnabled?"picture-in-picture":"inline")},self.isPictureInPictureEnabled=function(isEnabled){var video=mediaElement;return!!video&&"picture-in-picture"===video.webkitPresentationMode};var recoverDecodingErrorDate,recoverSwapAudioCodecDate;self.setSubtitleStreamIndex=function(index){setCurrentTrackElement(index)},self.canSetAudioStreamIndex=function(){return!(!browser.edge&&!browser.msie)},self.setAudioStreamIndex=function(index){var i,length,audioStreams=getMediaStreamAudioTracks(currentPlayOptions.mediaSource),audioTrackOffset=-1;for(i=0,length=audioStreams.length;i=100?"none":rawValue/100;elem.style["-webkit-filter"]="brightness("+cssValue+");",elem.style.filter="brightness("+cssValue+")",elem.brightnessValue=val,events.trigger(self,"brightnesschange")}},self.getBrightness=function(){if(mediaElement){var val=mediaElement.brightnessValue;return null==val?100:val}},self.setVolume=function(val){mediaElement&&(mediaElement.volume=val/100)},self.getVolume=function(){if(mediaElement)return 100*mediaElement.volume},self.volumeUp=function(){self.setVolume(Math.min(self.getVolume()+2,100))},self.volumeDown=function(){self.setVolume(Math.max(self.getVolume()-2,0))},self.setMute=function(mute){mediaElement&&(mediaElement.muted=mute)},self.isMuted=function(){return!!mediaElement&&mediaElement.muted}}});
\ No newline at end of file
+define(["browser","pluginManager","events","apphost","loading","playbackManager","embyRouter","appSettings","connectionManager","itemHelper"],function(browser,pluginManager,events,appHost,loading,playbackManager,embyRouter,appSettings,connectionManager,itemHelper){"use strict";return function(){function getSavedVolume(){return appSettings.get("volume")||1}function saveVolume(value){value&&appSettings.set("volume",value)}function getDefaultProfile(){return new Promise(function(resolve,reject){require(["browserdeviceprofile"],function(profileBuilder){resolve(profileBuilder({}))})})}function updateVideoUrl(streamInfo){var isHls=streamInfo.url.toLowerCase().indexOf(".m3u8")!==-1,mediaSource=streamInfo.mediaSource,item=streamInfo.item;if(mediaSource&&item&&!mediaSource.RunTimeTicks&&isHls&&"Transcode"===streamInfo.playMethod&&(browser.iOS||browser.osx)){var hlsPlaylistUrl=streamInfo.url.replace("master.m3u8","live.m3u8");return loading.show(),console.log("prefetching hls playlist: "+hlsPlaylistUrl),connectionManager.getApiClient(item.ServerId).ajax({type:"GET",url:hlsPlaylistUrl}).then(function(){return console.log("completed prefetching hls playlist: "+hlsPlaylistUrl),loading.hide(),streamInfo.url=hlsPlaylistUrl,Promise.resolve()},function(){return console.log("error prefetching hls playlist: "+hlsPlaylistUrl),loading.hide(),Promise.resolve()})}return Promise.resolve()}function getSupportedFeatures(){var list=[],video=document.createElement("video");return browser.ipad&&navigator.userAgent.toLowerCase().indexOf("os 9")===-1&&video.webkitSupportsPresentationMode&&video.webkitSupportsPresentationMode&&"function"==typeof video.webkitSetPresentationMode&&list.push("PictureInPicture"),list.push("SetBrightness"),list}function getCrossOriginValue(mediaSource){return mediaSource.IsRemote?null:"anonymous"}function requireHlsPlayer(callback){require(["hlsjs"],function(hls){window.Hls=hls,callback()})}function bindEventsToHlsPlayer(hls,elem,resolve,reject){hls.on(Hls.Events.MANIFEST_PARSED,function(){playWithPromise(elem).then(resolve,function(){reject&&(reject(),reject=null)})}),hls.on(Hls.Events.ERROR,function(event,data){if(console.log("HLS Error: Type: "+data.type+" Details: "+(data.details||"")+" Fatal: "+(data.fatal||!1)),data.fatal)switch(data.type){case Hls.ErrorTypes.NETWORK_ERROR:data.response&&data.response.code&&data.response.code>=400&&data.response.code<500?(console.log("hls.js response error code: "+data.response.code),reject?(reject(),reject=null):onErrorInternal("network")):(console.log("fatal network error encountered, try to recover"),hls.startLoad());break;case Hls.ErrorTypes.MEDIA_ERROR:console.log("fatal media error encountered, try to recover");var currentReject=reject;reject=null,handleMediaError(currentReject);break;default:hls.destroy(),reject?(reject(),reject=null):onErrorInternal("mediadecodeerror")}})}function setCurrentSrc(elem,options){elem.removeEventListener("error",onError);var val=options.url;console.log("playing url: "+val);var seconds=(options.playerStartPositionTicks||0)/1e7;seconds&&(val+="#t="+seconds),destroyHlsPlayer();for(var tracks=getMediaStreamTextTracks(options.mediaSource),currentTrackIndex=-1,i=0,length=tracks.length;i'+getTracksHtml(tracks,options.mediaSource,options.item.ServerId),elem.addEventListener("loadedmetadata",onLoadedMetadata),currentSrc=val,setCurrentTrackElement(currentTrackIndex),playWithPromise(elem)):applySrc(elem,val,options).then(function(){return setTracks(elem,tracks,options.mediaSource,options.item.ServerId),currentSrc=val,setCurrentTrackElement(currentTrackIndex),playWithPromise(elem)})}function handleMediaError(reject){if(hlsPlayer){var now=Date.now();window.performance&&window.performance.now&&(now=performance.now()),!recoverDecodingErrorDate||now-recoverDecodingErrorDate>3e3?(recoverDecodingErrorDate=now,console.log("try to recover media Error ..."),hlsPlayer.recoverMediaError()):!recoverSwapAudioCodecDate||now-recoverSwapAudioCodecDate>3e3?(recoverSwapAudioCodecDate=now,console.log("try to swap Audio Codec and recover media Error ..."),hlsPlayer.swapAudioCodec(),hlsPlayer.recoverMediaError()):(console.error("cannot recover, last media error recovery failed ..."),reject?reject():onErrorInternal("mediadecodeerror"))}}function applySrc(elem,src,options){return window.Windows&&options.mediaSource&&options.mediaSource.IsLocal?Windows.Storage.StorageFile.getFileFromPathAsync(options.url).then(function(file){var playlist=new Windows.Media.Playback.MediaPlaybackList,source1=Windows.Media.Core.MediaSource.createFromStorageFile(file),startTime=(options.playerStartPositionTicks||0)/1e4;return playlist.items.append(new Windows.Media.Playback.MediaPlaybackItem(source1,startTime)),elem.src=URL.createObjectURL(playlist,{oneTimeOnly:!0}),Promise.resolve()}):(elem.src=src,Promise.resolve())}function onSuccessfulPlay(elem){elem.addEventListener("error",onError)}function playWithPromise(elem){try{var promise=elem.play();return promise&&promise.then?promise.catch(function(e){var errorName=(e.name||"").toLowerCase();return"notallowederror"===errorName||"aborterror"===errorName?(onSuccessfulPlay(elem),Promise.resolve()):Promise.reject()}):(onSuccessfulPlay(elem),Promise.resolve())}catch(err){return console.log("error calling video.play: "+err),Promise.reject()}}function destroyHlsPlayer(){var player=hlsPlayer;if(player){try{player.destroy()}catch(err){console.log(err)}hlsPlayer=null}}function onEnded(){destroyCustomTrack(this),onEndedInternal(!0,this)}function onEndedInternal(triggerEnded,elem){if(elem.removeEventListener("error",onError),elem.src="",elem.innerHTML="",elem.removeAttribute("src"),destroyHlsPlayer(),self.originalDocumentTitle&&(document.title=self.originalDocumentTitle,self.originalDocumentTitle=null),triggerEnded){var stopInfo={src:currentSrc};events.trigger(self,"stopped",[stopInfo]),_currentTime=null}currentSrc=null}function onTimeUpdate(e){var time=this.currentTime;_currentTime=time;var timeMs=1e3*time;timeMs+=(currentPlayOptions.transcodingOffsetTicks||0)/1e4,updateSubtitleText(timeMs),events.trigger(self,"timeupdate")}function onVolumeChange(){saveVolume(this.volume),events.trigger(self,"volumechange")}function onNavigatedToOsd(){videoDialog.classList.remove("videoPlayerContainer-withBackdrop"),videoDialog.classList.remove("videoPlayerContainer-onTop")}function onPlaying(e){started?events.trigger(self,"unpause"):(started=!0,this.removeAttribute("controls"),currentPlayOptions.title?(self.originalDocumentTitle=document.title,document.title=currentPlayOptions.title):self.originalDocumentTitle=null,setCurrentTrackElement(subtitleTrackIndexToSetOnPlaying),seekOnPlaybackStart(e.target),currentPlayOptions.fullscreen?embyRouter.showVideoOsd().then(onNavigatedToOsd):(embyRouter.setTransparency("backdrop"),videoDialog.classList.remove("videoPlayerContainer-withBackdrop"),videoDialog.classList.remove("videoPlayerContainer-onTop")),loading.hide(),ensureValidVideo(this)),events.trigger(self,"playing")}function ensureValidVideo(elem){setTimeout(function(){if(elem===mediaElement)return 0===elem.videoWidth&&0===elem.videoHeight?void onErrorInternal("mediadecodeerror"):void 0},100)}function seekOnPlaybackStart(element){var seconds=(currentPlayOptions.playerStartPositionTicks||0)/1e7;if(seconds){var src=(self.currentSrc()||"").toLowerCase();if(!browser.chrome||src.indexOf(".m3u8")!==-1){var delay=browser.safari?2500:0;delay?setTimeout(function(){element.currentTime=seconds},delay):element.currentTime=seconds}}}function onClick(){events.trigger(self,"click")}function onDblClick(){events.trigger(self,"dblclick")}function onPause(){events.trigger(self,"pause")}function onError(){var errorCode=this.error?this.error.code||0:0;console.log("Media element error code: "+errorCode.toString());var type;switch(errorCode){case 1:return;case 2:type="network";break;case 3:if(hlsPlayer)return void handleMediaError();type="mediadecodeerror";break;case 4:type="medianotsupported";break;default:return}onErrorInternal(type)}function onErrorInternal(type){destroyCustomTrack(mediaElement),events.trigger(self,"error",[{type:type}])}function onLoadedMetadata(e){var mediaElem=e.target;if(mediaElem.removeEventListener("loadedmetadata",onLoadedMetadata),!hlsPlayer)try{mediaElem.play()}catch(err){console.log("error calling mediaElement.play: "+err)}}function enableHlsPlayer(src,item,mediaSource){if(src&&src.indexOf(".m3u8")===-1)return!1;if(null==window.MediaSource)return!1;if(canPlayNativeHls()){if(browser.edge)return!0;if(mediaSource.RunTimeTicks)return!1}return!(browser.safari&&!browser.osx)}function canPlayNativeHls(){var media=document.createElement("video");return!(!media.canPlayType("application/x-mpegURL").replace(/no/,"")&&!media.canPlayType("application/vnd.apple.mpegURL").replace(/no/,""))}function setTracks(elem,tracks,mediaSource,serverId){elem.innerHTML=getTracksHtml(tracks,mediaSource,serverId)}function getTextTrackUrl(track,serverId){return playbackManager.getSubtitleUrl(track,serverId)}function getTracksHtml(tracks,mediaSource,serverId){return tracks.map(function(t){var defaultAttribute=mediaSource.DefaultSubtitleStreamIndex===t.Index?" default":"",language=t.Language||"und",label=t.Language||"und";return' "}).join("")}function enableNativeTrackSupport(track){if(browser.firefox&&(currentSrc||"").toLowerCase().indexOf(".m3u8")!==-1)return!1;if(browser.ps4)return!1;if(browser.edge)return!1;if(track){var format=(track.Codec||"").toLowerCase();if("ssa"===format||"ass"===format)return!1}return!0}function destroyCustomTrack(videoElement){if(window.removeEventListener("resize",onVideoResize),window.removeEventListener("orientationchange",onVideoResize),videoSubtitlesElem){var subtitlesContainer=videoSubtitlesElem.parentNode;subtitlesContainer.parentNode.removeChild(subtitlesContainer),videoSubtitlesElem=null}if(currentTrackEvents=null,videoElement)for(var allTracks=videoElement.textTracks||[],i=0;i ',videoSubtitlesElem=subtitlesContainer.querySelector(".videoSubtitlesInner"),videoElement.parentNode.appendChild(subtitlesContainer),currentTrackEvents=data.TrackEvents}})}function renderTracksEvents(videoElement,track,serverId){var format=(track.Codec||"").toLowerCase();if("ssa"===format||"ass"===format)return void renderWithLibjass(videoElement,track,serverId);if(requiresCustomSubtitlesElement())return void renderSubtitlesWithCustomElement(videoElement,track,serverId);for(var trackElement=null,expectedId="manualTrack"+track.Index,allTracks=videoElement.textTracks,i=0;i=ticks){selectedTrackEvent=currentTrackEvent;break}}selectedTrackEvent?(videoSubtitlesElem.innerHTML=normalizeTrackEventText(selectedTrackEvent.Text),videoSubtitlesElem.classList.remove("hide")):(videoSubtitlesElem.innerHTML="",videoSubtitlesElem.classList.add("hide"))}}}function getMediaStreamAudioTracks(mediaSource){return mediaSource.MediaStreams.filter(function(s){return"Audio"===s.Type})}function getMediaStreamTextTracks(mediaSource){return mediaSource.MediaStreams.filter(function(s){return"Subtitle"===s.Type&&"External"===s.DeliveryMethod})}function setCurrentTrackElement(streamIndex){console.log("Setting new text track index to: "+streamIndex);var mediaStreamTextTracks=getMediaStreamTextTracks(currentPlayOptions.mediaSource),track=streamIndex===-1?null:mediaStreamTextTracks.filter(function(t){return t.Index===streamIndex})[0];enableNativeTrackSupport(track)?setTrackForCustomDisplay(mediaElement,null):(setTrackForCustomDisplay(mediaElement,track),streamIndex=-1,track=null);for(var expectedId="textTrack"+streamIndex,trackIndex=streamIndex!==-1&&track?mediaStreamTextTracks.indexOf(track):-1,modes=["disabled","showing","hidden"],allTracks=mediaElement.textTracks,i=0;i':'',html+=" ",dlg.innerHTML=html;var videoElement=dlg.querySelector("video");videoElement.volume=getSavedVolume(),videoElement.addEventListener("timeupdate",onTimeUpdate),videoElement.addEventListener("ended",onEnded),videoElement.addEventListener("volumechange",onVolumeChange),videoElement.addEventListener("pause",onPause),videoElement.addEventListener("playing",onPlaying),videoElement.addEventListener("click",onClick),videoElement.addEventListener("dblclick",onDblClick),document.body.insertBefore(dlg,document.body.firstChild),videoDialog=dlg,mediaElement=videoElement,options.fullscreen&&browser.supportsCssAnimation()&&!browser.slow?zoomIn(dlg).then(function(){resolve(videoElement)}):resolve(videoElement)})})}var self=this;self.name="Html Video Player",self.type="mediaplayer",self.id="htmlvideoplayer",self.priority=1;var mediaElement,videoDialog,currentSrc,hlsPlayer,currentPlayOptions,subtitleTrackIndexToSetOnPlaying,currentClock,currentAssRenderer,currentAspectRatio,videoSubtitlesElem,currentTrackEvents,started=!1,lastCustomTrackMs=0,customTrackIndex=-1;self.canPlayMediaType=function(mediaType){return"video"===(mediaType||"").toLowerCase()},self.getDeviceProfile=function(item){return appHost.getDeviceProfile?appHost.getDeviceProfile(item):getDefaultProfile()},self.currentSrc=function(){return currentSrc},self.play=function(options){return browser.msie&&"Transcode"===options.playMethod&&!window.MediaSource?(alert("Playback of this content is not supported in Internet Explorer. For a better experience, try a modern browser such as Microsoft Edge, Google Chrome, Firefox or Opera."),Promise.reject()):(started=!1,_currentTime=null,createMediaElement(options).then(function(elem){return updateVideoUrl(options,options.mediaSource).then(function(){return setCurrentSrc(elem,options)})}))};var supportedFeatures;self.supports=function(feature){return supportedFeatures||(supportedFeatures=getSupportedFeatures()),supportedFeatures.indexOf(feature)!==-1},self.setAspectRatio=function(val){var video=mediaElement;video&&(currentAspectRatio=val)},self.getAspectRatio=function(){return currentAspectRatio},self.getSupportedAspectRatios=function(){return[]},self.togglePictureInPicture=function(){return self.setPictureInPictureEnabled(!self.isPictureInPictureEnabled())},self.setPictureInPictureEnabled=function(isEnabled){var video=mediaElement;video&&video.webkitSupportsPresentationMode&&"function"==typeof video.webkitSetPresentationMode&&video.webkitSetPresentationMode(isEnabled?"picture-in-picture":"inline")},self.isPictureInPictureEnabled=function(isEnabled){var video=mediaElement;return!!video&&"picture-in-picture"===video.webkitPresentationMode};var recoverDecodingErrorDate,recoverSwapAudioCodecDate;self.setSubtitleStreamIndex=function(index){setCurrentTrackElement(index)},self.canSetAudioStreamIndex=function(){return!(!browser.edge&&!browser.msie)},self.setAudioStreamIndex=function(index){var i,length,audioStreams=getMediaStreamAudioTracks(currentPlayOptions.mediaSource),audioTrackOffset=-1;for(i=0,length=audioStreams.length;i=100?"none":rawValue/100;elem.style["-webkit-filter"]="brightness("+cssValue+");",elem.style.filter="brightness("+cssValue+")",elem.brightnessValue=val,events.trigger(self,"brightnesschange")}},self.getBrightness=function(){if(mediaElement){var val=mediaElement.brightnessValue;return null==val?100:val}},self.setVolume=function(val){mediaElement&&(mediaElement.volume=val/100)},self.getVolume=function(){if(mediaElement)return 100*mediaElement.volume},self.volumeUp=function(){self.setVolume(Math.min(self.getVolume()+2,100))},self.volumeDown=function(){self.setVolume(Math.max(self.getVolume()-2,0))},self.setMute=function(mute){mediaElement&&(mediaElement.muted=mute)},self.isMuted=function(){return!!mediaElement&&mediaElement.muted}}});
\ No newline at end of file
diff --git a/dashboard-ui/bower_components/emby-webcomponents/input/api.js b/dashboard-ui/bower_components/emby-webcomponents/input/api.js
index cc4b212dae..280f30ee14 100644
--- a/dashboard-ui/bower_components/emby-webcomponents/input/api.js
+++ b/dashboard-ui/bower_components/emby-webcomponents/input/api.js
@@ -1 +1 @@
-define(["connectionManager","playbackManager","events","inputManager","focusManager","embyRouter"],function(connectionManager,playbackManager,events,inputManager,focusManager,embyRouter){"use strict";function notifyApp(){inputManager.notify()}function displayMessage(cmd){var args=cmd.Arguments;args.TimeoutMs?require(["toast"],function(toast){toast({title:args.Header,text:args.Text})}):require(["alert"],function(alert){alert({title:args.Header,text:args.Text})})}function displayContent(cmd,apiClient){apiClient.getItem(apiClient.getCurrentUserId(),cmd.ItemId).then(function(item){embyRouter.showItem(item)})}function processGeneralCommand(cmd,apiClient){switch(cmd.Name){case"Select":return void inputManager.trigger("select");case"Back":return void inputManager.trigger("back");case"MoveUp":return void inputManager.trigger("up");case"MoveDown":return void inputManager.trigger("down");case"MoveLeft":return void inputManager.trigger("left");case"MoveRight":return void inputManager.trigger("right");case"PageUp":return void inputManager.trigger("pageup");case"PageDown":return void inputManager.trigger("pagedown");case"SetRepeatMode":playbackManager.setRepeatMode(cmd.Arguments.RepeatMode);break;case"VolumeUp":return void inputManager.trigger("volumeup");case"VolumeDown":return void inputManager.trigger("volumedown");case"ChannelUp":return void inputManager.trigger("channelup");case"ChannelDown":return void inputManager.trigger("channeldown");case"Mute":return void inputManager.trigger("mute");case"Unmute":return void inputManager.trigger("unmute");case"ToggleMute":return void inputManager.trigger("togglemute");case"SetVolume":notifyApp(),playbackManager.setVolume(cmd.Arguments.Volume);break;case"SetAudioStreamIndex":notifyApp(),playbackManager.setAudioStreamIndex(parseInt(cmd.Arguments.Index));break;case"SetSubtitleStreamIndex":notifyApp(),playbackManager.setSubtitleStreamIndex(parseInt(cmd.Arguments.Index));break;case"ToggleFullscreen":return void inputManager.trigger("togglefullscreen");case"GoHome":return void inputManager.trigger("home");case"GoToSettings":return void inputManager.trigger("settings");case"DisplayContent":displayContent(cmd,apiClient);break;case"GoToSearch":return void inputManager.trigger("search");case"DisplayMessage":displayMessage(cmd);break;case"ToggleOsd":break;case"ToggleContextMenu":break;case"TakeScreenShot":break;case"SendKey":break;case"SendString":focusManager.sendText(cmd.Arguments.String);break;default:console.log("processGeneralCommand does not recognize: "+cmd.Name)}notifyApp()}function onWebSocketMessageReceived(e,msg){var apiClient=this;if("Play"===msg.MessageType){notifyApp();var serverId=apiClient.serverInfo().Id;"PlayNext"===msg.Data.PlayCommand?playbackManager.queueNext({ids:msg.Data.ItemIds,serverId:serverId}):"PlayLast"===msg.Data.PlayCommand?playbackManager.queue({ids:msg.Data.ItemIds,serverId:serverId}):playbackManager.play({ids:msg.Data.ItemIds,startPositionTicks:msg.Data.StartPositionTicks,serverId:serverId})}else if("Playstate"===msg.MessageType)"Stop"===msg.Data.Command?inputManager.trigger("stop"):"Pause"===msg.Data.Command?inputManager.trigger("pause"):"Unpause"===msg.Data.Command?inputManager.trigger("play"):"Seek"===msg.Data.Command?playbackManager.seek(msg.Data.SeekPositionTicks):"NextTrack"===msg.Data.Command?inputManager.trigger("next"):"PreviousTrack"===msg.Data.Command?inputManager.trigger("previous"):notifyApp();else if("GeneralCommand"===msg.MessageType){var cmd=msg.Data;processGeneralCommand(cmd,apiClient)}}function bindEvents(apiClient){events.off(apiClient,"websocketmessage",onWebSocketMessageReceived),events.on(apiClient,"websocketmessage",onWebSocketMessageReceived)}connectionManager.getApiClients().forEach(bindEvents),events.on(connectionManager,"apiclientcreated",function(e,newApiClient){bindEvents(newApiClient)})});
\ No newline at end of file
+define(["connectionManager","playbackManager","events","inputManager","focusManager","embyRouter"],function(connectionManager,playbackManager,events,inputManager,focusManager,embyRouter){"use strict";function notifyApp(){inputManager.notify()}function displayMessage(cmd){var args=cmd.Arguments;args.TimeoutMs?require(["toast"],function(toast){toast({title:args.Header,text:args.Text})}):require(["alert"],function(alert){alert({title:args.Header,text:args.Text})})}function displayContent(cmd,apiClient){apiClient.getItem(apiClient.getCurrentUserId(),cmd.Arguments.ItemId).then(function(item){embyRouter.showItem(item)})}function processGeneralCommand(cmd,apiClient){switch(cmd.Name){case"Select":return void inputManager.trigger("select");case"Back":return void inputManager.trigger("back");case"MoveUp":return void inputManager.trigger("up");case"MoveDown":return void inputManager.trigger("down");case"MoveLeft":return void inputManager.trigger("left");case"MoveRight":return void inputManager.trigger("right");case"PageUp":return void inputManager.trigger("pageup");case"PageDown":return void inputManager.trigger("pagedown");case"SetRepeatMode":playbackManager.setRepeatMode(cmd.Arguments.RepeatMode);break;case"VolumeUp":return void inputManager.trigger("volumeup");case"VolumeDown":return void inputManager.trigger("volumedown");case"ChannelUp":return void inputManager.trigger("channelup");case"ChannelDown":return void inputManager.trigger("channeldown");case"Mute":return void inputManager.trigger("mute");case"Unmute":return void inputManager.trigger("unmute");case"ToggleMute":return void inputManager.trigger("togglemute");case"SetVolume":notifyApp(),playbackManager.setVolume(cmd.Arguments.Volume);break;case"SetAudioStreamIndex":notifyApp(),playbackManager.setAudioStreamIndex(parseInt(cmd.Arguments.Index));break;case"SetSubtitleStreamIndex":notifyApp(),playbackManager.setSubtitleStreamIndex(parseInt(cmd.Arguments.Index));break;case"ToggleFullscreen":return void inputManager.trigger("togglefullscreen");case"GoHome":return void inputManager.trigger("home");case"GoToSettings":return void inputManager.trigger("settings");case"DisplayContent":displayContent(cmd,apiClient);break;case"GoToSearch":return void inputManager.trigger("search");case"DisplayMessage":displayMessage(cmd);break;case"ToggleOsd":break;case"ToggleContextMenu":break;case"TakeScreenShot":break;case"SendKey":break;case"SendString":focusManager.sendText(cmd.Arguments.String);break;default:console.log("processGeneralCommand does not recognize: "+cmd.Name)}notifyApp()}function onWebSocketMessageReceived(e,msg){var apiClient=this;if("Play"===msg.MessageType){notifyApp();var serverId=apiClient.serverInfo().Id;"PlayNext"===msg.Data.PlayCommand?playbackManager.queueNext({ids:msg.Data.ItemIds,serverId:serverId}):"PlayLast"===msg.Data.PlayCommand?playbackManager.queue({ids:msg.Data.ItemIds,serverId:serverId}):playbackManager.play({ids:msg.Data.ItemIds,startPositionTicks:msg.Data.StartPositionTicks,serverId:serverId})}else if("Playstate"===msg.MessageType)"Stop"===msg.Data.Command?inputManager.trigger("stop"):"Pause"===msg.Data.Command?inputManager.trigger("pause"):"Unpause"===msg.Data.Command?inputManager.trigger("play"):"Seek"===msg.Data.Command?playbackManager.seek(msg.Data.SeekPositionTicks):"NextTrack"===msg.Data.Command?inputManager.trigger("next"):"PreviousTrack"===msg.Data.Command?inputManager.trigger("previous"):notifyApp();else if("GeneralCommand"===msg.MessageType){var cmd=msg.Data;processGeneralCommand(cmd,apiClient)}}function bindEvents(apiClient){events.off(apiClient,"websocketmessage",onWebSocketMessageReceived),events.on(apiClient,"websocketmessage",onWebSocketMessageReceived)}connectionManager.getApiClients().forEach(bindEvents),events.on(connectionManager,"apiclientcreated",function(e,newApiClient){bindEvents(newApiClient)})});
\ No newline at end of file
diff --git a/dashboard-ui/bower_components/emby-webcomponents/playback/playbackmanager.js b/dashboard-ui/bower_components/emby-webcomponents/playback/playbackmanager.js
index 82348ba46f..e228c44c1d 100644
--- a/dashboard-ui/bower_components/emby-webcomponents/playback/playbackmanager.js
+++ b/dashboard-ui/bower_components/emby-webcomponents/playback/playbackmanager.js
@@ -1,2 +1,2 @@
-define(["events","datetime","appSettings","pluginManager","userSettings","globalize","connectionManager","loading","serverNotifications","apphost","fullscreenManager","layoutManager"],function(events,datetime,appSettings,pluginManager,userSettings,globalize,connectionManager,loading,serverNotifications,apphost,fullscreenManager,layoutManager){"use strict";function enableLocalPlaylistManagement(player){return!!player.isLocalPlayer}function bindToFullscreenChange(player){events.on(fullscreenManager,"fullscreenchange",function(){events.trigger(player,"fullscreenchange")})}function PlaybackManager(){function triggerPlayerChange(newPlayer,newTarget,previousPlayer,previousTargetInfo){(newPlayer||previousPlayer)&&(newTarget&&previousTargetInfo&&newTarget.id===previousTargetInfo.id||events.trigger(self,"playerchange",[newPlayer,newTarget,previousPlayer]))}function displayPlayerInLocalGroup(player){return player.isLocalPlayer}function getSupportedCommands(player){if(player.isLocalPlayer){var list=["GoHome","GoToSettings","VolumeUp","VolumeDown","Mute","Unmute","ToggleMute","SetVolume","SetAudioStreamIndex","SetSubtitleStreamIndex","SetMaxStreamingBitrate","DisplayContent","GoToSearch","DisplayMessage","SetRepeatMode"];return apphost.supports("fullscreenchange")&&!layoutManager.tv&&list.push("ToggleFullscreen"),player.supports&&(player.supports("PictureInPicture")&&list.push("PictureInPicture"),player.supports("SetBrightness")&&list.push("SetBrightness"),player.supports("SetAspectRatio")&&list.push("SetAspectRatio")),list}throw new Error("player must define supported commands")}function createTarget(player){return{name:player.name,id:player.id,playerName:player.name,playableMediaTypes:["Audio","Video","Game"].map(player.canPlayMediaType),isLocalPlayer:player.isLocalPlayer,supportedCommands:getSupportedCommands(player)}}function getPlayerTargets(player){return player.getTargets?player.getTargets():Promise.resolve([createTarget(player)])}function getCurrentSubtitleStream(player){if(!player)throw new Error("player cannot be null");var index=getPlayerData(player).subtitleStreamIndex;return null==index||index===-1?null:getSubtitleStream(player,index)}function getSubtitleStream(player,index){return self.currentMediaSource(player).MediaStreams.filter(function(s){return"Subtitle"===s.Type&&s.Index===index})[0]}function setCurrentPlayerInternal(player,targetInfo){var previousPlayer=currentPlayer,previousTargetInfo=currentTargetInfo;if(player&&!targetInfo&&player.isLocalPlayer&&(targetInfo=createTarget(player)),player&&!targetInfo)throw new Error("targetInfo cannot be null");currentPairingId=null,currentPlayer=player,currentTargetInfo=targetInfo,targetInfo&&console.log("Active player: "+JSON.stringify(targetInfo)),player&&player.isLocalPlayer&&(lastLocalPlayer=player),previousPlayer&&self.endPlayerUpdates(previousPlayer),player&&self.beginPlayerUpdates(player),triggerPlayerChange(player,targetInfo,previousPlayer,previousTargetInfo)}function getAutomaticPlayers(){var player=currentPlayer;return player&&!enableLocalPlaylistManagement(player)?[player]:self.getPlayers().filter(enableLocalPlaylistManagement)}function canPlayerSeek(player){if(!player)throw new Error("player cannot be null");var playerData=getPlayerData(player),currentSrc=(playerData.streamInfo.url||"").toLowerCase();return currentSrc.indexOf(".m3u8")!==-1||"Transcode"!==playerData.streamInfo.playMethod&&player.duration()}function changeStream(player,ticks,params){if(canPlayerSeek(player)&&null==params)return void player.currentTime(parseInt(ticks/1e4));params=params||{};var liveStreamId=getPlayerData(player).streamInfo.liveStreamId,playSessionId=getPlayerData(player).streamInfo.playSessionId,playerData=getPlayerData(player),currentItem=playerData.streamInfo.item;player.getDeviceProfile(currentItem).then(function(deviceProfile){var audioStreamIndex=null==params.AudioStreamIndex?getPlayerData(player).audioStreamIndex:params.AudioStreamIndex,subtitleStreamIndex=null==params.SubtitleStreamIndex?getPlayerData(player).subtitleStreamIndex:params.SubtitleStreamIndex,currentMediaSource=playerData.streamInfo.mediaSource,apiClient=connectionManager.getApiClient(currentItem.ServerId);ticks&&(ticks=parseInt(ticks));var maxBitrate=params.MaxStreamingBitrate||self.getMaxStreamingBitrate(player);getPlaybackInfo(apiClient,currentItem.Id,deviceProfile,maxBitrate,ticks,currentMediaSource,audioStreamIndex,subtitleStreamIndex,liveStreamId,params.EnableDirectPlay,params.EnableDirectStream,params.AllowVideoStreamCopy,params.AllowAudioStreamCopy).then(function(result){validatePlaybackInfoResult(result)&&(currentMediaSource=result.MediaSources[0],createStreamInfo(apiClient,currentItem.MediaType,currentItem,currentMediaSource,ticks).then(function(streamInfo){return streamInfo.fullscreen=currentPlayOptions.fullscreen,streamInfo.url?(getPlayerData(player).subtitleStreamIndex=subtitleStreamIndex,getPlayerData(player).audioStreamIndex=audioStreamIndex,getPlayerData(player).maxStreamingBitrate=maxBitrate,void changeStreamToUrl(apiClient,player,playSessionId,streamInfo)):(showPlaybackInfoErrorMessage("NoCompatibleStream"),void self.nextTrack())}))})})}function changeStreamToUrl(apiClient,player,playSessionId,streamInfo,newPositionTicks){clearProgressInterval(player);var playerData=getPlayerData(player);playerData.isChangingStream=!0,"Video"===playerData.MediaType?apiClient.stopActiveEncodings(playSessionId).then(function(){setSrcIntoPlayer(apiClient,player,streamInfo)}):setSrcIntoPlayer(apiClient,player,streamInfo)}function setSrcIntoPlayer(apiClient,player,streamInfo){player.play(streamInfo).then(function(){var playerData=getPlayerData(player);playerData.isChangingStream=!1,playerData.streamInfo=streamInfo,startProgressInterval(player),sendProgressUpdate(player)},function(e){onPlaybackError.call(player,e,{type:"mediadecodeerror"})})}function getPlayerData(player){if(!player)throw new Error("player cannot be null");if(!player.name)throw new Error("player name cannot be null");var state=playerStates[player.name];return state||(playerStates[player.name]={},state=playerStates[player.name]),player}function getCurrentTicks(player){if(!player)throw new Error("player cannot be null");var playerTime=Math.floor(1e4*(player||currentPlayer).currentTime());return playerTime+=getPlayerData(player).streamInfo.transcodingOffsetTicks||0}function getNowPlayingItemForReporting(player,item,mediaSource){var nowPlayingItem=Object.assign({},item);return mediaSource&&(nowPlayingItem.RunTimeTicks=mediaSource.RunTimeTicks),nowPlayingItem.RunTimeTicks=nowPlayingItem.RunTimeTicks||1e4*player.duration(),nowPlayingItem}function translateItemsForPlayback(items,options){var promise,firstItem=items[0],serverId=firstItem.ServerId;return"Program"===firstItem.Type?promise=getItemsForPlayback(serverId,{Ids:firstItem.ChannelId}):"Playlist"===firstItem.Type?promise=getItemsForPlayback(serverId,{ParentId:firstItem.Id}):"MusicArtist"===firstItem.Type?promise=getItemsForPlayback(serverId,{ArtistIds:firstItem.Id,Filters:"IsNotFolder",Recursive:!0,SortBy:"SortName",MediaTypes:"Audio"}):"MusicGenre"===firstItem.Type?promise=getItemsForPlayback(serverId,{Genres:firstItem.Name,Filters:"IsNotFolder",Recursive:!0,SortBy:"SortName",MediaTypes:"Audio"}):firstItem.IsFolder?promise=getItemsForPlayback(serverId,{ParentId:firstItem.Id,Filters:"IsNotFolder",Recursive:!0,SortBy:"SortName",MediaTypes:"Audio,Video"}):"Episode"===firstItem.Type&&1===items.length&&getPlayer(firstItem,options).supportsProgress!==!1&&(promise=new Promise(function(resolve,reject){var apiClient=connectionManager.getApiClient(firstItem.ServerId);apiClient.getCurrentUser().then(function(user){return user.Configuration.EnableNextEpisodeAutoPlay&&firstItem.SeriesId?void apiClient.getEpisodes(firstItem.SeriesId,{IsVirtualUnaired:!1,IsMissing:!1,UserId:apiClient.getCurrentUserId(),Fields:"MediaSources,Chapters"}).then(function(episodesResult){var foundItem=!1;episodesResult.Items=episodesResult.Items.filter(function(e){return!!foundItem||e.Id===firstItem.Id&&(foundItem=!0,!0)}),episodesResult.TotalRecordCount=episodesResult.Items.length,resolve(episodesResult)},reject):void resolve(null)})})),promise?promise.then(function(result){return result?result.Items:items}):Promise.resolve(items)}function enableIntros(item){return"Video"===item.MediaType&&("TvChannel"!==item.Type&&("InProgress"!==item.Status&&isServerItem(item)))}function playWithIntros(items,options,user){var firstItem=items[0];"Video"===firstItem.MediaType;var afterPlayInternal=function(){for(var i=0,length=items.length;i=interceptors.length)return void resolve();var interceptor=interceptors[index];interceptor.intercept(options).then(function(){runNextPrePlay(interceptors,index+1,options,resolve,reject)},reject)}function playAfterBitrateDetect(connectionManager,maxBitrate,item,playOptions,onPlaybackStartedFn){var promise,startPosition=playOptions.startPositionTicks,player=getPlayer(item,playOptions),activePlayer=currentPlayer;return activePlayer?(playNextAfterEnded=!1,promise=onPlaybackChanging(activePlayer,player,item)):promise=Promise.resolve(),isServerItem(item)&&"Game"!==item.MediaType?Promise.all([promise,player.getDeviceProfile(item)]).then(function(responses){var deviceProfile=responses[1],apiClient=connectionManager.getApiClient(item.ServerId);return getPlaybackMediaSource(apiClient,deviceProfile,maxBitrate,item,startPosition).then(function(mediaSource){return createStreamInfo(apiClient,item.MediaType,item,mediaSource,startPosition).then(function(streamInfo){return streamInfo.fullscreen=playOptions.fullscreen,getPlayerData(player).isChangingStream=!1,getPlayerData(player).maxStreamingBitrate=maxBitrate,player.play(streamInfo).then(function(){loading.hide(),onPlaybackStartedFn(),onPlaybackStarted(player,playOptions,streamInfo,mediaSource)},function(){onPlaybackStartedFn(),onPlaybackStarted(player,playOptions,streamInfo,mediaSource),setTimeout(function(err){onPlaybackError.call(player,err,{type:"mediadecodeerror"})},100)})})})}):promise.then(function(){var streamInfo=createStreamInfoFromUrlItem(item);return streamInfo.fullscreen=playOptions.fullscreen,getPlayerData(player).isChangingStream=!1,player.play(streamInfo).then(function(){loading.hide(),onPlaybackStartedFn(),onPlaybackStarted(player,playOptions,streamInfo)},function(){self.stop(player)})})}function createStreamInfoFromUrlItem(item){return{url:item.Url||item.Path,playMethod:"DirectPlay",item:item,textTracks:[],mediaType:item.MediaType}}function backdropImageUrl(apiClient,item,options){return options=options||{},options.type=options.type||"Backdrop",options.maxWidth||options.width||options.maxHeight||options.height||(options.quality=100),item.BackdropImageTags&&item.BackdropImageTags.length?(options.tag=item.BackdropImageTags[0],apiClient.getScaledImageUrl(item.Id,options)):item.ParentBackdropImageTags&&item.ParentBackdropImageTags.length?(options.tag=item.ParentBackdropImageTags[0],apiClient.getScaledImageUrl(item.ParentBackdropItemId,options)):null}function getMimeType(type,container){if(container=(container||"").toLowerCase(),"audio"===type){if("opus"===container)return"audio/ogg";if("webma"===container)return"audio/webm";if("m4a"===container)return"audio/mp4"}else if("video"===type){if("mkv"===container)return"video/x-matroska";if("m4v"===container)return"video/mp4";if("mov"===container)return"video/quicktime";if("mpg"===container)return"video/mpeg";if("flv"===container)return"video/x-flv"}return type+"/"+container}function createStreamInfo(apiClient,type,item,mediaSource,startPosition,forceTranscoding){var mediaUrl,contentType,directOptions,transcodingOffsetTicks=0,playerStartPositionTicks=startPosition,liveStreamId=mediaSource.LiveStreamId,playMethod="Transcode",mediaSourceContainer=(mediaSource.Container||"").toLowerCase();if("Video"===type)contentType=getMimeType("video",mediaSourceContainer),mediaSource.enableDirectPlay&&!forceTranscoding?(mediaUrl=mediaSource.Path,playMethod="DirectPlay"):mediaSource.SupportsDirectStream&&!forceTranscoding?(directOptions={Static:!0,mediaSourceId:mediaSource.Id,deviceId:apiClient.deviceId(),api_key:apiClient.accessToken()},mediaSource.ETag&&(directOptions.Tag=mediaSource.ETag),mediaSource.LiveStreamId&&(directOptions.LiveStreamId=mediaSource.LiveStreamId),mediaUrl=apiClient.getUrl("Videos/"+item.Id+"/stream."+mediaSourceContainer,directOptions),playMethod="DirectStream"):mediaSource.SupportsTranscoding&&(mediaUrl=apiClient.getUrl(mediaSource.TranscodingUrl),"hls"===mediaSource.TranscodingSubProtocol?contentType="application/x-mpegURL":(playerStartPositionTicks=null,contentType=getMimeType("video",mediaSource.TranscodingContainer),mediaUrl.toLowerCase().indexOf("copytimestamps=true")===-1&&(transcodingOffsetTicks=startPosition||0)));else if("Audio"===type)if(contentType=getMimeType("audio",mediaSourceContainer),mediaSource.enableDirectPlay&&!forceTranscoding)mediaUrl=mediaSource.Path,playMethod="DirectPlay";else{var isDirectStream=mediaSource.SupportsDirectStream;isDirectStream&&!forceTranscoding?(directOptions={Static:!0,mediaSourceId:mediaSource.Id,deviceId:apiClient.deviceId(),api_key:apiClient.accessToken()},mediaSource.ETag&&(directOptions.Tag=mediaSource.ETag),mediaSource.LiveStreamId&&(directOptions.LiveStreamId=mediaSource.LiveStreamId),mediaUrl=apiClient.getUrl("Audio/"+item.Id+"/stream."+mediaSourceContainer,directOptions),playMethod="DirectStream"):mediaSource.SupportsTranscoding&&(mediaUrl=apiClient.getUrl(mediaSource.TranscodingUrl),"hls"===mediaSource.TranscodingSubProtocol?contentType="application/x-mpegURL":(transcodingOffsetTicks=startPosition||0,playerStartPositionTicks=null,contentType=getMimeType("audio",mediaSource.TranscodingContainer)))}else"Game"===type&&(mediaUrl=mediaSource.Path,playMethod="DirectPlay");!mediaUrl&&mediaSource.SupportsDirectPlay&&(mediaUrl=mediaSource.Path,playMethod="DirectPlay");var resultInfo={url:mediaUrl,mimeType:contentType,transcodingOffsetTicks:transcodingOffsetTicks,playMethod:playMethod,playerStartPositionTicks:playerStartPositionTicks,item:item,mediaSource:mediaSource,textTracks:getTextTracks(apiClient,mediaSource),tracks:getTextTracks(apiClient,mediaSource),mediaType:type,liveStreamId:liveStreamId,playSessionId:getParam("playSessionId",mediaUrl),title:item.Name},backdropUrl=backdropImageUrl(apiClient,item,{});return backdropUrl&&(resultInfo.backdropUrl=backdropUrl),Promise.resolve(resultInfo)}function getParam(name,url){name=name.replace(/[\[]/,"\\[").replace(/[\]]/,"\\]");var regexS="[\\?&]"+name+"=([^]*)",regex=new RegExp(regexS,"i"),results=regex.exec(url);return null==results?"":decodeURIComponent(results[1].replace(/\+/g," "))}function getTextTracks(apiClient,mediaSource){for(var subtitleStreams=mediaSource.MediaStreams.filter(function(s){return"Subtitle"===s.Type}),textStreams=subtitleStreams.filter(function(s){return"External"===s.DeliveryMethod}),tracks=[],i=0,length=textStreams.length;i=playlistLength&&(newIndex=0);break;default:newIndex=self.getCurrentPlaylistIndex(player)+1}if(newIndex<0||newIndex>=playlistLength)return null;var item=playlist[newIndex];return item?{item:item,index:newIndex}:null}function queue(options,mode,player){if(player=player||currentPlayer,!player)return self.play(options);if(!enableLocalPlaylistManagement(player))return"next"===mode?player.queueNext(item):player.queue(item);if(options.items)return translateItemsForPlayback(options.items,options).then(function(items){queueAll(items,mode)});if(!options.serverId)throw new Error("serverId required!");return getItemsForPlayback(options.serverId,{Ids:options.ids.join(",")}).then(function(result){return translateItemsForPlayback(result.Items,options).then(function(items){queueAll(items,mode)})})}function queueAll(items,mode){for(var i=0,length=items.length;i1e4&&sendProgressUpdate(player)},500)}function sendProgressUpdate(player){if(!player)throw new Error("player cannot be null");player.lastProgressReport=(new Date).getTime(),self.getPlayerState(player).then(function(state){var currentItem=getPlayerData(player).streamInfo.item;reportPlayback(state,currentItem.ServerId,"reportPlaybackProgress")})}function reportPlayback(state,serverId,method){if(serverId){var info=Object.assign({},state.PlayState);info.ItemId=state.NowPlayingItem.Id;var apiClient=connectionManager.getApiClient(serverId);apiClient[method](info)}}function clearProgressInterval(player){if(!player)throw new Error("player cannot be null");var playerData=getPlayerData(player);playerData.currentProgressInterval&&(clearTimeout(playerData.currentProgressInterval),playerData.currentProgressInterval=null)}var currentPlayer,currentTargetInfo,lastLocalPlayer,currentPlaylistIndex,currentPlaylistItemId,currentPlayOptions,self=this,players=[],currentPairingId=null,repeatMode="RepeatNone",playlist=[],playNextAfterEnded=!0,playerStates={};self.currentItem=function(player){if(!player)throw new Error("player cannot be null");var data=getPlayerData(player);return data.streamInfo?data.streamInfo.item:null},self.currentMediaSource=function(player){
-if(!player)throw new Error("player cannot be null");var data=getPlayerData(player);return data.streamInfo?data.streamInfo.mediaSource:null},self.beginPlayerUpdates=function(player){player.beginPlayerUpdates&&player.beginPlayerUpdates()},self.endPlayerUpdates=function(player){player.endPlayerUpdates&&player.endPlayerUpdates()},self.getPlayerInfo=function(){var player=currentPlayer;if(!player)return null;var target=currentTargetInfo||{};return{name:player.name,isLocalPlayer:player.isLocalPlayer,id:target.id,deviceName:target.deviceName,playableMediaTypes:target.playableMediaTypes,supportedCommands:target.supportedCommands}},self.setActivePlayer=function(player,targetInfo){if("localplayer"===player||"localplayer"===player.name){if(currentPlayer&¤tPlayer.isLocalPlayer)return;return void setCurrentPlayerInternal(null,null)}if("string"==typeof player&&(player=players.filter(function(p){return p.name===player})[0]),!player)throw new Error("null player");setCurrentPlayerInternal(player,targetInfo)},self.trySetActivePlayer=function(player,targetInfo){if("localplayer"===player||"localplayer"===player.name)return void(currentPlayer&¤tPlayer.isLocalPlayer);if("string"==typeof player&&(player=players.filter(function(p){return p.name===player})[0]),!player)throw new Error("null player");if(currentPairingId!==targetInfo.id){currentPairingId=targetInfo.id;var promise=player.tryPair?player.tryPair(targetInfo):Promise.resolve();promise.then(function(){setCurrentPlayerInternal(player,targetInfo)},function(){currentPairingId===targetInfo.id&&(currentPairingId=null)})}},self.trySetActiveDeviceName=function(name){function normalizeName(t){return t.toLowerCase().replace(" ","")}name=normalizeName(name),self.getTargets().then(function(result){var target=result.filter(function(p){return normalizeName(p.name)===name})[0];target&&self.trySetActivePlayer(target.playerName,target)})},self.setDefaultPlayerActive=function(){self.setActivePlayer("localplayer")},self.removeActivePlayer=function(name){var playerInfo=self.getPlayerInfo();playerInfo&&playerInfo.name===name&&self.setDefaultPlayerActive()},self.removeActiveTarget=function(id){var playerInfo=self.getPlayerInfo();playerInfo&&playerInfo.id===id&&self.setDefaultPlayerActive()},self.disconnectFromPlayer=function(){var playerInfo=self.getPlayerInfo();playerInfo&&(playerInfo.supportedCommands.indexOf("EndSession")!==-1?require(["dialog"],function(dialog){var menuItems=[];menuItems.push({name:globalize.translate("ButtonYes"),id:"yes"}),menuItems.push({name:globalize.translate("ButtonNo"),id:"no"}),dialog({buttons:menuItems,text:globalize.translate("ConfirmEndPlayerSession")}).then(function(id){switch(id){case"yes":self.getCurrentPlayer().endSession(),self.setDefaultPlayerActive();break;case"no":self.setDefaultPlayerActive()}})}):self.setDefaultPlayerActive())},self.getTargets=function(){var promises=players.filter(function(p){return!displayPlayerInLocalGroup(p)}).map(getPlayerTargets);return Promise.all(promises).then(function(responses){var targets=[];targets.push({name:globalize.translate("sharedcomponents#HeaderMyDevice"),id:"localplayer",playerName:"localplayer",playableMediaTypes:["Audio","Video","Game"],isLocalPlayer:!0,supportedCommands:getSupportedCommands({isLocalPlayer:!0})});for(var i=0;idatetime.parseISO8601Date(item.EndDate).getTime()||(new Date).getTime()=supported.length&&(index=0),self.setAspectRatio(supported[index].id,player)}},self.setAspectRatio=function(val,player){player=player||currentPlayer,player&&player.setAspectRatio&&player.setAspectRatio(val)},self.getSupportedAspectRatios=function(player){return player=player||currentPlayer,player&&player.getSupportedAspectRatios?player.getSupportedAspectRatios():[]},self.getAspectRatio=function(player){if(player=player||currentPlayer,player&&player.getAspectRatio)return player.getAspectRatio()};var brightnessOsdLoaded;self.setBrightness=function(val,player){player=player||currentPlayer,player&&(brightnessOsdLoaded||(brightnessOsdLoaded=!0,require(["brightnessOsd"])),player.setBrightness(val))},self.getBrightness=function(player){if(player=player||currentPlayer)return player.getBrightness()},self.setVolume=function(val,player){player=player||currentPlayer,player&&player.setVolume(val)},self.getVolume=function(player){if(player=player||currentPlayer)return player.getVolume()},self.volumeUp=function(player){player=player||currentPlayer,player&&player.volumeUp()},self.volumeDown=function(player){player=player||currentPlayer,player&&player.volumeDown()},self.getAudioStreamIndex=function(player){return player=player||currentPlayer,player&&!enableLocalPlaylistManagement(player)?player.getAudioStreamIndex():getPlayerData(player).audioStreamIndex},self.setAudioStreamIndex=function(index,player){return player=player||currentPlayer,player&&!enableLocalPlaylistManagement(player)?player.setAudioStreamIndex(index):void("Transcode"!==getPlayerData(player).streamInfo.playMethod&&player.canSetAudioStreamIndex()?(player.setAudioStreamIndex(index),getPlayerData(player).audioStreamIndex=index):(changeStream(player,getCurrentTicks(player),{AudioStreamIndex:index}),getPlayerData(player).audioStreamIndex=index))},self.getMaxStreamingBitrate=function(player){return player=player||currentPlayer,player&&!enableLocalPlaylistManagement(player)?player.getMaxStreamingBitrate():getPlayerData(player).maxStreamingBitrate||appSettings.maxStreamingBitrate()},self.enableAutomaticBitrateDetection=function(player){return player=player||currentPlayer,player&&!enableLocalPlaylistManagement(player)?player.enableAutomaticBitrateDetection():appSettings.enableAutomaticBitrateDetection()},self.setMaxStreamingBitrate=function(options,player){if(player=player||currentPlayer,player&&!enableLocalPlaylistManagement(player))return player.setMaxStreamingBitrate(options);var promise;options.enableAutomaticBitrateDetection?(appSettings.enableAutomaticBitrateDetection(!0),promise=connectionManager.getApiClient(self.currentItem(player).ServerId).detectBitrate(!0)):(appSettings.enableAutomaticBitrateDetection(!1),promise=Promise.resolve(options.maxBitrate)),promise.then(function(bitrate){appSettings.maxStreamingBitrate(bitrate),changeStream(player,getCurrentTicks(player),{MaxStreamingBitrate:bitrate})})},self.isFullscreen=function(player){return player=player||currentPlayer,!player.isLocalPlayer||player.isFullscreen?player.isFullscreen():fullscreenManager.isFullScreen()},self.toggleFullscreen=function(player){return player=player||currentPlayer,!player.isLocalPlayer||player.toggleFulscreen?player.toggleFulscreen():void(fullscreenManager.isFullScreen()?fullscreenManager.exitFullscreen():fullscreenManager.requestFullscreen())},self.togglePictureInPicture=function(player){return player=player||currentPlayer,player.togglePictureInPicture()},self.getSubtitleStreamIndex=function(player){if(player=player||currentPlayer,player&&!enableLocalPlaylistManagement(player))return player.getSubtitleStreamIndex();if(!player)throw new Error("player cannot be null");return getPlayerData(player).subtitleStreamIndex},self.setSubtitleStreamIndex=function(index,player){if(player=player||currentPlayer,player&&!enableLocalPlaylistManagement(player))return player.setSubtitleStreamIndex(index);var currentStream=getCurrentSubtitleStream(player),newStream=getSubtitleStream(player,index);if(currentStream||newStream){var selectedTrackElementIndex=-1,currentPlayMethod=(getPlayerData(player).streamInfo||{}).playMethod;currentStream&&!newStream?("Encode"===currentStream.DeliveryMethod||"Embed"===currentStream.DeliveryMethod&&"Transcode"===currentPlayMethod)&&changeStream(player,getCurrentTicks(player),{SubtitleStreamIndex:-1}):!currentStream&&newStream?"External"===newStream.DeliveryMethod?selectedTrackElementIndex=index:"Embed"===newStream.DeliveryMethod&&"Transcode"!==currentPlayMethod?selectedTrackElementIndex=index:changeStream(player,getCurrentTicks(player),{SubtitleStreamIndex:index}):currentStream&&newStream&&("External"===newStream.DeliveryMethod||"Embed"===newStream.DeliveryMethod&&"Transcode"!==currentPlayMethod?(selectedTrackElementIndex=index,"External"!==currentStream.DeliveryMethod&&"Embed"!==currentStream.DeliveryMethod&&changeStream(player,getCurrentTicks(player),{SubtitleStreamIndex:-1})):changeStream(player,getCurrentTicks(player),{SubtitleStreamIndex:index})),player.setSubtitleStreamIndex(selectedTrackElementIndex),getPlayerData(player).subtitleStreamIndex=index}},self.toggleDisplayMirroring=function(){self.enableDisplayMirroring(!self.enableDisplayMirroring())},self.enableDisplayMirroring=function(enabled){if(null!=enabled){var val=enabled?"1":"0";return void appSettings.set("displaymirror",val)}return"0"!==(appSettings.get("displaymirror")||"")},self.stop=function(player){return player=player||currentPlayer,player?(playNextAfterEnded=!1,player.stop(!0,!0)):Promise.resolve()},self.playPause=function(player){if(player=player||currentPlayer)return player.playPause?player.playPause():player.paused()?self.unpause(player):self.pause(player)},self.paused=function(player){if(player=player||currentPlayer)return player.paused()},self.pause=function(player){player=player||currentPlayer,player&&player.pause()},self.unpause=function(player){player=player||currentPlayer,player&&player.unpause()},self.seek=function(ticks,player){return ticks=Math.max(0,ticks),player=player||currentPlayer,player&&!enableLocalPlaylistManagement(player)?player.seek(ticks):void changeStream(player,ticks)},self.nextChapter=function(player){player=player||currentPlayer;var item=self.currentItem(player),ticks=getCurrentTicks(player),nextChapter=(item.Chapters||[]).filter(function(i){return i.StartPositionTicks>ticks})[0];nextChapter?self.seek(nextChapter.StartPositionTicks,player):self.nextTrack(player)},self.previousChapter=function(player){player=player||currentPlayer;var item=self.currentItem(player),ticks=getCurrentTicks(player);ticks-=1e8,0===self.getCurrentPlaylistIndex(player)&&(ticks=Math.max(ticks,0));var previousChapters=(item.Chapters||[]).filter(function(i){return i.StartPositionTicks<=ticks});previousChapters.length?self.seek(previousChapters[previousChapters.length-1].StartPositionTicks,player):self.previousTrack(player)},self.fastForward=function(player){if(player=player||currentPlayer,null!=player.fastForward)return void player.fastForward(userSettings.skipForwardLength());var ticks=getCurrentTicks(player);ticks+=1e4*userSettings.skipForwardLength();var runTimeTicks=self.duration(player)||0;ticks0||canPlayerSeek(player)),item&&(state.NowPlayingItem=getNowPlayingItemForReporting(player,item,mediaSource)),state.MediaSource=mediaSource,Promise.resolve(state)},self.currentTime=function(player){return player=player||currentPlayer,player&&!enableLocalPlaylistManagement(player)?player.currentTime():getCurrentTicks(player)},self.duration=function(player){if(player=player||currentPlayer,player&&!enableLocalPlaylistManagement(player))return player.duration();if(!player)throw new Error("player cannot be null");var streamInfo=getPlayerData(player).streamInfo;if(streamInfo&&streamInfo.mediaSource&&streamInfo.mediaSource.RunTimeTicks)return streamInfo.mediaSource.RunTimeTicks;var playerDuration=player.duration();return playerDuration&&(playerDuration*=1e4),playerDuration};var currentId=0;self.getSubtitleUrl=function(textStream,serverId){var apiClient=connectionManager.getApiClient(serverId),textStreamUrl=textStream.IsExternalUrl?textStream.DeliveryUrl:apiClient.getUrl(textStream.DeliveryUrl);return textStreamUrl},self.setCurrentPlaylistItem=function(playlistItemId,player){if(player=player||currentPlayer,player&&!enableLocalPlaylistManagement(player))return player.setCurrentPlaylistItem(playlistItemId);for(var newItem,newItemIndex,i=0,length=playlist.length;i=playlist.length)throw new Error("newIndex out of bounds");moveInArray(playlist,oldIndex,newIndex),events.trigger(player,"playlistitemmove",[{playlistItemId:playlistItemId,newIndex:newIndex}])}},self.getCurrentPlaylistIndex=function(i,player){return player=player||currentPlayer,player&&!enableLocalPlaylistManagement(player)?player.getCurrentPlaylistIndex():findPlaylistIndex(currentPlaylistItemId,playlist)},self.getCurrentPlaylistItemId=function(i,player){return player=player||currentPlayer,player&&!enableLocalPlaylistManagement(player)?player.getCurrentPlaylistItemId():currentPlaylistItemId},self.setRepeatMode=function(value,player){return player=player||currentPlayer,player&&!enableLocalPlaylistManagement(player)?player.setRepeatMode(value):(repeatMode=value,void events.trigger(player,"repeatmodechange"))},self.getRepeatMode=function(player){return player=player||currentPlayer,player&&!enableLocalPlaylistManagement(player)?player.getRepeatMode():repeatMode},self.nextTrack=function(player){if(player=player||currentPlayer,player&&!enableLocalPlaylistManagement(player))return player.nextTrack();var newItemInfo=getNextItemInfo(player);if(newItemInfo){console.log("playing next track");var playOptions=Object.assign({},currentPlayOptions,{startPositionTicks:0});playInternal(newItemInfo.item,playOptions,function(){setPlaylistState(newItemInfo.item.PlaylistItemId,newItemInfo.index)})}},self.previousTrack=function(player){if(player=player||currentPlayer,player&&!enableLocalPlaylistManagement(player))return player.previousTrack();var newIndex=self.getCurrentPlaylistIndex(player)-1;if(newIndex>=0){var newItem=playlist[newIndex];if(newItem){var playOptions=Object.assign({},currentPlayOptions,{startPositionTicks:0});playInternal(newItem,playOptions,function(){setPlaylistState(newItem.PlaylistItemId,newIndex)})}}},self.queue=function(options,player){queue(options,"",player)},self.queueNext=function(options,player){queue(options,"next",player)},events.on(pluginManager,"registered",function(e,plugin){"mediaplayer"===plugin.type&&initMediaPlayer(plugin)}),pluginManager.ofType("mediaplayer").map(initMediaPlayer),window.addEventListener("beforeunload",function(e){var player=currentPlayer;player&&getPlayerData(player).currentProgressInterval&&(playNextAfterEnded=!1,onPlaybackStopped.call(player))}),events.on(serverNotifications,"ServerShuttingDown",function(e,apiClient,data){self.setDefaultPlayerActive()}),events.on(serverNotifications,"ServerRestarting",function(e,apiClient,data){self.setDefaultPlayerActive()})}return new PlaybackManager});
\ No newline at end of file
+define(["events","datetime","appSettings","pluginManager","userSettings","globalize","connectionManager","loading","serverNotifications","apphost","fullscreenManager","layoutManager"],function(events,datetime,appSettings,pluginManager,userSettings,globalize,connectionManager,loading,serverNotifications,apphost,fullscreenManager,layoutManager){"use strict";function enableLocalPlaylistManagement(player){return!!player.isLocalPlayer}function bindToFullscreenChange(player){events.on(fullscreenManager,"fullscreenchange",function(){events.trigger(player,"fullscreenchange")})}function PlaybackManager(){function triggerPlayerChange(newPlayer,newTarget,previousPlayer,previousTargetInfo){(newPlayer||previousPlayer)&&(newTarget&&previousTargetInfo&&newTarget.id===previousTargetInfo.id||events.trigger(self,"playerchange",[newPlayer,newTarget,previousPlayer]))}function displayPlayerInLocalGroup(player){return player.isLocalPlayer}function getSupportedCommands(player){if(player.isLocalPlayer){var list=["GoHome","GoToSettings","VolumeUp","VolumeDown","Mute","Unmute","ToggleMute","SetVolume","SetAudioStreamIndex","SetSubtitleStreamIndex","SetMaxStreamingBitrate","DisplayContent","GoToSearch","DisplayMessage","SetRepeatMode"];return apphost.supports("fullscreenchange")&&!layoutManager.tv&&list.push("ToggleFullscreen"),player.supports&&(player.supports("PictureInPicture")&&list.push("PictureInPicture"),player.supports("SetBrightness")&&list.push("SetBrightness"),player.supports("SetAspectRatio")&&list.push("SetAspectRatio")),list}throw new Error("player must define supported commands")}function createTarget(player){return{name:player.name,id:player.id,playerName:player.name,playableMediaTypes:["Audio","Video","Game"].map(player.canPlayMediaType),isLocalPlayer:player.isLocalPlayer,supportedCommands:getSupportedCommands(player)}}function getPlayerTargets(player){return player.getTargets?player.getTargets():Promise.resolve([createTarget(player)])}function getCurrentSubtitleStream(player){if(!player)throw new Error("player cannot be null");var index=getPlayerData(player).subtitleStreamIndex;return null==index||index===-1?null:getSubtitleStream(player,index)}function getSubtitleStream(player,index){return self.currentMediaSource(player).MediaStreams.filter(function(s){return"Subtitle"===s.Type&&s.Index===index})[0]}function setCurrentPlayerInternal(player,targetInfo){var previousPlayer=currentPlayer,previousTargetInfo=currentTargetInfo;if(player&&!targetInfo&&player.isLocalPlayer&&(targetInfo=createTarget(player)),player&&!targetInfo)throw new Error("targetInfo cannot be null");currentPairingId=null,currentPlayer=player,currentTargetInfo=targetInfo,targetInfo&&console.log("Active player: "+JSON.stringify(targetInfo)),player&&player.isLocalPlayer&&(lastLocalPlayer=player),previousPlayer&&self.endPlayerUpdates(previousPlayer),player&&self.beginPlayerUpdates(player),triggerPlayerChange(player,targetInfo,previousPlayer,previousTargetInfo)}function getAutomaticPlayers(){var player=currentPlayer;return player&&!enableLocalPlaylistManagement(player)?[player]:self.getPlayers().filter(enableLocalPlaylistManagement)}function canPlayerSeek(player){if(!player)throw new Error("player cannot be null");var playerData=getPlayerData(player),currentSrc=(playerData.streamInfo.url||"").toLowerCase();return currentSrc.indexOf(".m3u8")!==-1||"Transcode"!==playerData.streamInfo.playMethod&&player.duration()}function changeStream(player,ticks,params){if(canPlayerSeek(player)&&null==params)return void player.currentTime(parseInt(ticks/1e4));params=params||{};var liveStreamId=getPlayerData(player).streamInfo.liveStreamId,playSessionId=getPlayerData(player).streamInfo.playSessionId,playerData=getPlayerData(player),currentItem=playerData.streamInfo.item;player.getDeviceProfile(currentItem).then(function(deviceProfile){var audioStreamIndex=null==params.AudioStreamIndex?getPlayerData(player).audioStreamIndex:params.AudioStreamIndex,subtitleStreamIndex=null==params.SubtitleStreamIndex?getPlayerData(player).subtitleStreamIndex:params.SubtitleStreamIndex,currentMediaSource=playerData.streamInfo.mediaSource,apiClient=connectionManager.getApiClient(currentItem.ServerId);ticks&&(ticks=parseInt(ticks));var maxBitrate=params.MaxStreamingBitrate||self.getMaxStreamingBitrate(player);getPlaybackInfo(apiClient,currentItem.Id,deviceProfile,maxBitrate,ticks,currentMediaSource,audioStreamIndex,subtitleStreamIndex,liveStreamId,params.EnableDirectPlay,params.EnableDirectStream,params.AllowVideoStreamCopy,params.AllowAudioStreamCopy).then(function(result){validatePlaybackInfoResult(result)&&(currentMediaSource=result.MediaSources[0],createStreamInfo(apiClient,currentItem.MediaType,currentItem,currentMediaSource,ticks).then(function(streamInfo){return streamInfo.fullscreen=currentPlayOptions.fullscreen,streamInfo.url?(getPlayerData(player).subtitleStreamIndex=subtitleStreamIndex,getPlayerData(player).audioStreamIndex=audioStreamIndex,getPlayerData(player).maxStreamingBitrate=maxBitrate,void changeStreamToUrl(apiClient,player,playSessionId,streamInfo)):(showPlaybackInfoErrorMessage("NoCompatibleStream"),void self.nextTrack())}))})})}function changeStreamToUrl(apiClient,player,playSessionId,streamInfo,newPositionTicks){clearProgressInterval(player);var playerData=getPlayerData(player);playerData.isChangingStream=!0,"Video"===playerData.MediaType?apiClient.stopActiveEncodings(playSessionId).then(function(){setSrcIntoPlayer(apiClient,player,streamInfo)}):setSrcIntoPlayer(apiClient,player,streamInfo)}function setSrcIntoPlayer(apiClient,player,streamInfo){player.play(streamInfo).then(function(){var playerData=getPlayerData(player);playerData.isChangingStream=!1,playerData.streamInfo=streamInfo,startProgressInterval(player),sendProgressUpdate(player)},function(e){onPlaybackError.call(player,e,{type:"mediadecodeerror"})})}function getPlayerData(player){if(!player)throw new Error("player cannot be null");if(!player.name)throw new Error("player name cannot be null");var state=playerStates[player.name];return state||(playerStates[player.name]={},state=playerStates[player.name]),player}function getCurrentTicks(player){if(!player)throw new Error("player cannot be null");var playerTime=Math.floor(1e4*(player||currentPlayer).currentTime());return playerTime+=getPlayerData(player).streamInfo.transcodingOffsetTicks||0}function getNowPlayingItemForReporting(player,item,mediaSource){var nowPlayingItem=Object.assign({},item);return mediaSource&&(nowPlayingItem.RunTimeTicks=mediaSource.RunTimeTicks),nowPlayingItem.RunTimeTicks=nowPlayingItem.RunTimeTicks||1e4*player.duration(),nowPlayingItem}function translateItemsForPlayback(items,options){var promise,firstItem=items[0],serverId=firstItem.ServerId;return"Program"===firstItem.Type?promise=getItemsForPlayback(serverId,{Ids:firstItem.ChannelId}):"Playlist"===firstItem.Type?promise=getItemsForPlayback(serverId,{ParentId:firstItem.Id}):"MusicArtist"===firstItem.Type?promise=getItemsForPlayback(serverId,{ArtistIds:firstItem.Id,Filters:"IsNotFolder",Recursive:!0,SortBy:"SortName",MediaTypes:"Audio"}):"MusicGenre"===firstItem.Type?promise=getItemsForPlayback(serverId,{Genres:firstItem.Name,Filters:"IsNotFolder",Recursive:!0,SortBy:"SortName",MediaTypes:"Audio"}):firstItem.IsFolder?promise=getItemsForPlayback(serverId,{ParentId:firstItem.Id,Filters:"IsNotFolder",Recursive:!0,SortBy:"SortName",MediaTypes:"Audio,Video"}):"Episode"===firstItem.Type&&1===items.length&&getPlayer(firstItem,options).supportsProgress!==!1&&(promise=new Promise(function(resolve,reject){var apiClient=connectionManager.getApiClient(firstItem.ServerId);apiClient.getCurrentUser().then(function(user){return user.Configuration.EnableNextEpisodeAutoPlay&&firstItem.SeriesId?void apiClient.getEpisodes(firstItem.SeriesId,{IsVirtualUnaired:!1,IsMissing:!1,UserId:apiClient.getCurrentUserId(),Fields:"MediaSources,Chapters"}).then(function(episodesResult){var foundItem=!1;episodesResult.Items=episodesResult.Items.filter(function(e){return!!foundItem||e.Id===firstItem.Id&&(foundItem=!0,!0)}),episodesResult.TotalRecordCount=episodesResult.Items.length,resolve(episodesResult)},reject):void resolve(null)})})),promise?promise.then(function(result){return result?result.Items:items}):Promise.resolve(items)}function enableIntros(item){return"Video"===item.MediaType&&("TvChannel"!==item.Type&&("InProgress"!==item.Status&&isServerItem(item)))}function playWithIntros(items,options,user){var firstItem=items[0];"Video"===firstItem.MediaType;var afterPlayInternal=function(){for(var i=0,length=items.length;i=interceptors.length)return void resolve();var interceptor=interceptors[index];interceptor.intercept(options).then(function(){runNextPrePlay(interceptors,index+1,options,resolve,reject)},reject)}function playAfterBitrateDetect(connectionManager,maxBitrate,item,playOptions,onPlaybackStartedFn){var promise,startPosition=playOptions.startPositionTicks,player=getPlayer(item,playOptions),activePlayer=currentPlayer;return activePlayer?(playNextAfterEnded=!1,promise=onPlaybackChanging(activePlayer,player,item)):promise=Promise.resolve(),isServerItem(item)&&"Game"!==item.MediaType?Promise.all([promise,player.getDeviceProfile(item)]).then(function(responses){var deviceProfile=responses[1],apiClient=connectionManager.getApiClient(item.ServerId);return getPlaybackMediaSource(apiClient,deviceProfile,maxBitrate,item,startPosition).then(function(mediaSource){return createStreamInfo(apiClient,item.MediaType,item,mediaSource,startPosition).then(function(streamInfo){return streamInfo.fullscreen=playOptions.fullscreen,getPlayerData(player).isChangingStream=!1,getPlayerData(player).maxStreamingBitrate=maxBitrate,player.play(streamInfo).then(function(){loading.hide(),onPlaybackStartedFn(),onPlaybackStarted(player,playOptions,streamInfo,mediaSource)},function(){onPlaybackStartedFn(),onPlaybackStarted(player,playOptions,streamInfo,mediaSource),setTimeout(function(err){onPlaybackError.call(player,err,{type:"mediadecodeerror"})},100)})})})}):promise.then(function(){var streamInfo=createStreamInfoFromUrlItem(item);return streamInfo.fullscreen=playOptions.fullscreen,getPlayerData(player).isChangingStream=!1,player.play(streamInfo).then(function(){loading.hide(),onPlaybackStartedFn(),onPlaybackStarted(player,playOptions,streamInfo)},function(){self.stop(player)})})}function createStreamInfoFromUrlItem(item){return{url:item.Url||item.Path,playMethod:"DirectPlay",item:item,textTracks:[],mediaType:item.MediaType}}function backdropImageUrl(apiClient,item,options){return options=options||{},options.type=options.type||"Backdrop",options.maxWidth||options.width||options.maxHeight||options.height||(options.quality=100),item.BackdropImageTags&&item.BackdropImageTags.length?(options.tag=item.BackdropImageTags[0],apiClient.getScaledImageUrl(item.Id,options)):item.ParentBackdropImageTags&&item.ParentBackdropImageTags.length?(options.tag=item.ParentBackdropImageTags[0],apiClient.getScaledImageUrl(item.ParentBackdropItemId,options)):null}function getMimeType(type,container){if(container=(container||"").toLowerCase(),"audio"===type){if("opus"===container)return"audio/ogg";if("webma"===container)return"audio/webm";if("m4a"===container)return"audio/mp4"}else if("video"===type){if("mkv"===container)return"video/x-matroska";if("m4v"===container)return"video/mp4";if("mov"===container)return"video/quicktime";if("mpg"===container)return"video/mpeg";if("flv"===container)return"video/x-flv"}return type+"/"+container}function createStreamInfo(apiClient,type,item,mediaSource,startPosition,forceTranscoding){var mediaUrl,contentType,directOptions,transcodingOffsetTicks=0,playerStartPositionTicks=startPosition,liveStreamId=mediaSource.LiveStreamId,playMethod="Transcode",mediaSourceContainer=(mediaSource.Container||"").toLowerCase();if("Video"===type)contentType=getMimeType("video",mediaSourceContainer),mediaSource.enableDirectPlay&&!forceTranscoding?(mediaUrl=mediaSource.Path,playMethod="DirectPlay"):mediaSource.SupportsDirectStream&&!forceTranscoding?(directOptions={Static:!0,mediaSourceId:mediaSource.Id,deviceId:apiClient.deviceId(),api_key:apiClient.accessToken()},mediaSource.ETag&&(directOptions.Tag=mediaSource.ETag),mediaSource.LiveStreamId&&(directOptions.LiveStreamId=mediaSource.LiveStreamId),mediaUrl=apiClient.getUrl("Videos/"+item.Id+"/stream."+mediaSourceContainer,directOptions),playMethod="DirectStream"):mediaSource.SupportsTranscoding&&(mediaUrl=apiClient.getUrl(mediaSource.TranscodingUrl),"hls"===mediaSource.TranscodingSubProtocol?contentType="application/x-mpegURL":(playerStartPositionTicks=null,contentType=getMimeType("video",mediaSource.TranscodingContainer),mediaUrl.toLowerCase().indexOf("copytimestamps=true")===-1&&(transcodingOffsetTicks=startPosition||0)));else if("Audio"===type)if(contentType=getMimeType("audio",mediaSourceContainer),mediaSource.enableDirectPlay&&!forceTranscoding)mediaUrl=mediaSource.Path,playMethod="DirectPlay";else{var isDirectStream=mediaSource.SupportsDirectStream;isDirectStream&&!forceTranscoding?(directOptions={Static:!0,mediaSourceId:mediaSource.Id,deviceId:apiClient.deviceId(),api_key:apiClient.accessToken()},mediaSource.ETag&&(directOptions.Tag=mediaSource.ETag),mediaSource.LiveStreamId&&(directOptions.LiveStreamId=mediaSource.LiveStreamId),mediaUrl=apiClient.getUrl("Audio/"+item.Id+"/stream."+mediaSourceContainer,directOptions),playMethod="DirectStream"):mediaSource.SupportsTranscoding&&(mediaUrl=apiClient.getUrl(mediaSource.TranscodingUrl),"hls"===mediaSource.TranscodingSubProtocol?contentType="application/x-mpegURL":(transcodingOffsetTicks=startPosition||0,playerStartPositionTicks=null,contentType=getMimeType("audio",mediaSource.TranscodingContainer)))}else"Game"===type&&(mediaUrl=mediaSource.Path,playMethod="DirectPlay");!mediaUrl&&mediaSource.SupportsDirectPlay&&(mediaUrl=mediaSource.Path,playMethod="DirectPlay");var resultInfo={url:mediaUrl,mimeType:contentType,transcodingOffsetTicks:transcodingOffsetTicks,playMethod:playMethod,playerStartPositionTicks:playerStartPositionTicks,item:item,mediaSource:mediaSource,textTracks:getTextTracks(apiClient,mediaSource),tracks:getTextTracks(apiClient,mediaSource),mediaType:type,liveStreamId:liveStreamId,playSessionId:getParam("playSessionId",mediaUrl),title:item.Name},backdropUrl=backdropImageUrl(apiClient,item,{});return backdropUrl&&(resultInfo.backdropUrl=backdropUrl),Promise.resolve(resultInfo)}function getParam(name,url){name=name.replace(/[\[]/,"\\[").replace(/[\]]/,"\\]");var regexS="[\\?&]"+name+"=([^]*)",regex=new RegExp(regexS,"i"),results=regex.exec(url);return null==results?"":decodeURIComponent(results[1].replace(/\+/g," "))}function getTextTracks(apiClient,mediaSource){for(var subtitleStreams=mediaSource.MediaStreams.filter(function(s){return"Subtitle"===s.Type}),textStreams=subtitleStreams.filter(function(s){return"External"===s.DeliveryMethod}),tracks=[],i=0,length=textStreams.length;i=playlistLength&&(newIndex=0);break;default:newIndex=self.getCurrentPlaylistIndex(player)+1}if(newIndex<0||newIndex>=playlistLength)return null;var item=playlist[newIndex];return item?{item:item,index:newIndex}:null}function queue(options,mode,player){if(player=player||currentPlayer,!player)return self.play(options);if(!enableLocalPlaylistManagement(player))return"next"===mode?player.queueNext(item):player.queue(item);if(options.items)return translateItemsForPlayback(options.items,options).then(function(items){queueAll(items,mode)});if(!options.serverId)throw new Error("serverId required!");return getItemsForPlayback(options.serverId,{Ids:options.ids.join(",")}).then(function(result){return translateItemsForPlayback(result.Items,options).then(function(items){queueAll(items,mode)})})}function queueAll(items,mode){for(var i=0,length=items.length;i1e4&&sendProgressUpdate(player)},500)}function sendProgressUpdate(player){if(!player)throw new Error("player cannot be null");player.lastProgressReport=(new Date).getTime(),self.getPlayerState(player).then(function(state){var currentItem=getPlayerData(player).streamInfo.item;reportPlayback(state,currentItem.ServerId,"reportPlaybackProgress")})}function reportPlayback(state,serverId,method){if(serverId){var info=Object.assign({},state.PlayState);info.ItemId=state.NowPlayingItem.Id;var apiClient=connectionManager.getApiClient(serverId);apiClient[method](info)}}function clearProgressInterval(player){if(!player)throw new Error("player cannot be null");var playerData=getPlayerData(player);playerData.currentProgressInterval&&(clearTimeout(playerData.currentProgressInterval),playerData.currentProgressInterval=null)}var currentPlayer,currentTargetInfo,lastLocalPlayer,currentPlaylistIndex,currentPlaylistItemId,currentPlayOptions,self=this,players=[],currentPairingId=null,repeatMode="RepeatNone",playlist=[],playNextAfterEnded=!0,playerStates={};self.currentItem=function(player){if(!player)throw new Error("player cannot be null");var data=getPlayerData(player);return data.streamInfo?data.streamInfo.item:null},
+self.currentMediaSource=function(player){if(!player)throw new Error("player cannot be null");var data=getPlayerData(player);return data.streamInfo?data.streamInfo.mediaSource:null},self.beginPlayerUpdates=function(player){player.beginPlayerUpdates&&player.beginPlayerUpdates()},self.endPlayerUpdates=function(player){player.endPlayerUpdates&&player.endPlayerUpdates()},self.getPlayerInfo=function(){var player=currentPlayer;if(!player)return null;var target=currentTargetInfo||{};return{name:player.name,isLocalPlayer:player.isLocalPlayer,id:target.id,deviceName:target.deviceName,playableMediaTypes:target.playableMediaTypes,supportedCommands:target.supportedCommands}},self.setActivePlayer=function(player,targetInfo){if("localplayer"===player||"localplayer"===player.name){if(currentPlayer&¤tPlayer.isLocalPlayer)return;return void setCurrentPlayerInternal(null,null)}if("string"==typeof player&&(player=players.filter(function(p){return p.name===player})[0]),!player)throw new Error("null player");setCurrentPlayerInternal(player,targetInfo)},self.trySetActivePlayer=function(player,targetInfo){if("localplayer"===player||"localplayer"===player.name)return void(currentPlayer&¤tPlayer.isLocalPlayer);if("string"==typeof player&&(player=players.filter(function(p){return p.name===player})[0]),!player)throw new Error("null player");if(currentPairingId!==targetInfo.id){currentPairingId=targetInfo.id;var promise=player.tryPair?player.tryPair(targetInfo):Promise.resolve();promise.then(function(){setCurrentPlayerInternal(player,targetInfo)},function(){currentPairingId===targetInfo.id&&(currentPairingId=null)})}},self.trySetActiveDeviceName=function(name){function normalizeName(t){return t.toLowerCase().replace(" ","")}name=normalizeName(name),self.getTargets().then(function(result){var target=result.filter(function(p){return normalizeName(p.name)===name})[0];target&&self.trySetActivePlayer(target.playerName,target)})},self.setDefaultPlayerActive=function(){self.setActivePlayer("localplayer")},self.removeActivePlayer=function(name){var playerInfo=self.getPlayerInfo();playerInfo&&playerInfo.name===name&&self.setDefaultPlayerActive()},self.removeActiveTarget=function(id){var playerInfo=self.getPlayerInfo();playerInfo&&playerInfo.id===id&&self.setDefaultPlayerActive()},self.disconnectFromPlayer=function(){var playerInfo=self.getPlayerInfo();playerInfo&&(playerInfo.supportedCommands.indexOf("EndSession")!==-1?require(["dialog"],function(dialog){var menuItems=[];menuItems.push({name:globalize.translate("ButtonYes"),id:"yes"}),menuItems.push({name:globalize.translate("ButtonNo"),id:"no"}),dialog({buttons:menuItems,text:globalize.translate("ConfirmEndPlayerSession")}).then(function(id){switch(id){case"yes":self.getCurrentPlayer().endSession(),self.setDefaultPlayerActive();break;case"no":self.setDefaultPlayerActive()}})}):self.setDefaultPlayerActive())},self.getTargets=function(){var promises=players.filter(function(p){return!displayPlayerInLocalGroup(p)}).map(getPlayerTargets);return Promise.all(promises).then(function(responses){var targets=[];targets.push({name:globalize.translate("sharedcomponents#HeaderMyDevice"),id:"localplayer",playerName:"localplayer",playableMediaTypes:["Audio","Video","Game"],isLocalPlayer:!0,supportedCommands:getSupportedCommands({isLocalPlayer:!0})});for(var i=0;idatetime.parseISO8601Date(item.EndDate).getTime()||(new Date).getTime()=supported.length&&(index=0),self.setAspectRatio(supported[index].id,player)}},self.setAspectRatio=function(val,player){player=player||currentPlayer,player&&player.setAspectRatio&&player.setAspectRatio(val)},self.getSupportedAspectRatios=function(player){return player=player||currentPlayer,player&&player.getSupportedAspectRatios?player.getSupportedAspectRatios():[]},self.getAspectRatio=function(player){if(player=player||currentPlayer,player&&player.getAspectRatio)return player.getAspectRatio()};var brightnessOsdLoaded;self.setBrightness=function(val,player){player=player||currentPlayer,player&&(brightnessOsdLoaded||(brightnessOsdLoaded=!0,require(["brightnessOsd"])),player.setBrightness(val))},self.getBrightness=function(player){if(player=player||currentPlayer)return player.getBrightness()},self.setVolume=function(val,player){player=player||currentPlayer,player&&player.setVolume(val)},self.getVolume=function(player){if(player=player||currentPlayer)return player.getVolume()},self.volumeUp=function(player){player=player||currentPlayer,player&&player.volumeUp()},self.volumeDown=function(player){player=player||currentPlayer,player&&player.volumeDown()},self.getAudioStreamIndex=function(player){return player=player||currentPlayer,player&&!enableLocalPlaylistManagement(player)?player.getAudioStreamIndex():getPlayerData(player).audioStreamIndex},self.setAudioStreamIndex=function(index,player){return player=player||currentPlayer,player&&!enableLocalPlaylistManagement(player)?player.setAudioStreamIndex(index):void("Transcode"!==getPlayerData(player).streamInfo.playMethod&&player.canSetAudioStreamIndex()?(player.setAudioStreamIndex(index),getPlayerData(player).audioStreamIndex=index):(changeStream(player,getCurrentTicks(player),{AudioStreamIndex:index}),getPlayerData(player).audioStreamIndex=index))},self.getMaxStreamingBitrate=function(player){return player=player||currentPlayer,player&&!enableLocalPlaylistManagement(player)?player.getMaxStreamingBitrate():getPlayerData(player).maxStreamingBitrate||appSettings.maxStreamingBitrate()},self.enableAutomaticBitrateDetection=function(player){return player=player||currentPlayer,player&&!enableLocalPlaylistManagement(player)?player.enableAutomaticBitrateDetection():appSettings.enableAutomaticBitrateDetection()},self.setMaxStreamingBitrate=function(options,player){if(player=player||currentPlayer,player&&!enableLocalPlaylistManagement(player))return player.setMaxStreamingBitrate(options);var promise;options.enableAutomaticBitrateDetection?(appSettings.enableAutomaticBitrateDetection(!0),promise=connectionManager.getApiClient(self.currentItem(player).ServerId).detectBitrate(!0)):(appSettings.enableAutomaticBitrateDetection(!1),promise=Promise.resolve(options.maxBitrate)),promise.then(function(bitrate){appSettings.maxStreamingBitrate(bitrate),changeStream(player,getCurrentTicks(player),{MaxStreamingBitrate:bitrate})})},self.isFullscreen=function(player){return player=player||currentPlayer,!player.isLocalPlayer||player.isFullscreen?player.isFullscreen():fullscreenManager.isFullScreen()},self.toggleFullscreen=function(player){return player=player||currentPlayer,!player.isLocalPlayer||player.toggleFulscreen?player.toggleFulscreen():void(fullscreenManager.isFullScreen()?fullscreenManager.exitFullscreen():fullscreenManager.requestFullscreen())},self.togglePictureInPicture=function(player){return player=player||currentPlayer,player.togglePictureInPicture()},self.getSubtitleStreamIndex=function(player){if(player=player||currentPlayer,player&&!enableLocalPlaylistManagement(player))return player.getSubtitleStreamIndex();if(!player)throw new Error("player cannot be null");return getPlayerData(player).subtitleStreamIndex},self.setSubtitleStreamIndex=function(index,player){if(player=player||currentPlayer,player&&!enableLocalPlaylistManagement(player))return player.setSubtitleStreamIndex(index);var currentStream=getCurrentSubtitleStream(player),newStream=getSubtitleStream(player,index);if(currentStream||newStream){var selectedTrackElementIndex=-1,currentPlayMethod=(getPlayerData(player).streamInfo||{}).playMethod;currentStream&&!newStream?("Encode"===currentStream.DeliveryMethod||"Embed"===currentStream.DeliveryMethod&&"Transcode"===currentPlayMethod)&&changeStream(player,getCurrentTicks(player),{SubtitleStreamIndex:-1}):!currentStream&&newStream?"External"===newStream.DeliveryMethod?selectedTrackElementIndex=index:"Embed"===newStream.DeliveryMethod&&"Transcode"!==currentPlayMethod?selectedTrackElementIndex=index:changeStream(player,getCurrentTicks(player),{SubtitleStreamIndex:index}):currentStream&&newStream&&("External"===newStream.DeliveryMethod||"Embed"===newStream.DeliveryMethod&&"Transcode"!==currentPlayMethod?(selectedTrackElementIndex=index,"External"!==currentStream.DeliveryMethod&&"Embed"!==currentStream.DeliveryMethod&&changeStream(player,getCurrentTicks(player),{SubtitleStreamIndex:-1})):changeStream(player,getCurrentTicks(player),{SubtitleStreamIndex:index})),player.setSubtitleStreamIndex(selectedTrackElementIndex),getPlayerData(player).subtitleStreamIndex=index}},self.toggleDisplayMirroring=function(){self.enableDisplayMirroring(!self.enableDisplayMirroring())},self.enableDisplayMirroring=function(enabled){if(null!=enabled){var val=enabled?"1":"0";return void appSettings.set("displaymirror",val)}return"0"!==(appSettings.get("displaymirror")||"")},self.stop=function(player){return player=player||currentPlayer,player?(playNextAfterEnded=!1,player.stop(!0,!0)):Promise.resolve()},self.playPause=function(player){if(player=player||currentPlayer)return player.playPause?player.playPause():player.paused()?self.unpause(player):self.pause(player)},self.paused=function(player){if(player=player||currentPlayer)return player.paused()},self.pause=function(player){player=player||currentPlayer,player&&player.pause()},self.unpause=function(player){player=player||currentPlayer,player&&player.unpause()},self.seek=function(ticks,player){return ticks=Math.max(0,ticks),player=player||currentPlayer,player&&!enableLocalPlaylistManagement(player)?player.seek(ticks):void changeStream(player,ticks)},self.nextChapter=function(player){player=player||currentPlayer;var item=self.currentItem(player),ticks=getCurrentTicks(player),nextChapter=(item.Chapters||[]).filter(function(i){return i.StartPositionTicks>ticks})[0];nextChapter?self.seek(nextChapter.StartPositionTicks,player):self.nextTrack(player)},self.previousChapter=function(player){player=player||currentPlayer;var item=self.currentItem(player),ticks=getCurrentTicks(player);ticks-=1e8,0===self.getCurrentPlaylistIndex(player)&&(ticks=Math.max(ticks,0));var previousChapters=(item.Chapters||[]).filter(function(i){return i.StartPositionTicks<=ticks});previousChapters.length?self.seek(previousChapters[previousChapters.length-1].StartPositionTicks,player):self.previousTrack(player)},self.fastForward=function(player){if(player=player||currentPlayer,null!=player.fastForward)return void player.fastForward(userSettings.skipForwardLength());var ticks=getCurrentTicks(player);ticks+=1e4*userSettings.skipForwardLength();var runTimeTicks=self.duration(player)||0;ticks0||canPlayerSeek(player)),item&&(state.NowPlayingItem=getNowPlayingItemForReporting(player,item,mediaSource)),state.MediaSource=mediaSource,Promise.resolve(state)},self.currentTime=function(player){return player=player||currentPlayer,player&&!enableLocalPlaylistManagement(player)?player.currentTime():getCurrentTicks(player)},self.duration=function(player){if(player=player||currentPlayer,player&&!enableLocalPlaylistManagement(player))return player.duration();if(!player)throw new Error("player cannot be null");var streamInfo=getPlayerData(player).streamInfo;if(streamInfo&&streamInfo.mediaSource&&streamInfo.mediaSource.RunTimeTicks)return streamInfo.mediaSource.RunTimeTicks;var playerDuration=player.duration();return playerDuration&&(playerDuration*=1e4),playerDuration};var currentId=0;self.getSubtitleUrl=function(textStream,serverId){var apiClient=connectionManager.getApiClient(serverId),textStreamUrl=textStream.IsExternalUrl?textStream.DeliveryUrl:apiClient.getUrl(textStream.DeliveryUrl);return textStreamUrl},self.setCurrentPlaylistItem=function(playlistItemId,player){if(player=player||currentPlayer,player&&!enableLocalPlaylistManagement(player))return player.setCurrentPlaylistItem(playlistItemId);for(var newItem,newItemIndex,i=0,length=playlist.length;i=playlist.length)throw new Error("newIndex out of bounds");moveInArray(playlist,oldIndex,newIndex),events.trigger(player,"playlistitemmove",[{playlistItemId:playlistItemId,newIndex:newIndex}])}},self.getCurrentPlaylistIndex=function(i,player){return player=player||currentPlayer,player&&!enableLocalPlaylistManagement(player)?player.getCurrentPlaylistIndex():findPlaylistIndex(currentPlaylistItemId,playlist)},self.getCurrentPlaylistItemId=function(i,player){return player=player||currentPlayer,player&&!enableLocalPlaylistManagement(player)?player.getCurrentPlaylistItemId():currentPlaylistItemId},self.setRepeatMode=function(value,player){return player=player||currentPlayer,player&&!enableLocalPlaylistManagement(player)?player.setRepeatMode(value):(repeatMode=value,void events.trigger(player,"repeatmodechange"))},self.getRepeatMode=function(player){return player=player||currentPlayer,player&&!enableLocalPlaylistManagement(player)?player.getRepeatMode():repeatMode},self.nextTrack=function(player){if(player=player||currentPlayer,player&&!enableLocalPlaylistManagement(player))return player.nextTrack();var newItemInfo=getNextItemInfo(player);if(newItemInfo){console.log("playing next track");var playOptions=Object.assign({},currentPlayOptions,{startPositionTicks:0});playInternal(newItemInfo.item,playOptions,function(){setPlaylistState(newItemInfo.item.PlaylistItemId,newItemInfo.index)})}},self.previousTrack=function(player){if(player=player||currentPlayer,player&&!enableLocalPlaylistManagement(player))return player.previousTrack();var newIndex=self.getCurrentPlaylistIndex(player)-1;if(newIndex>=0){var newItem=playlist[newIndex];if(newItem){var playOptions=Object.assign({},currentPlayOptions,{startPositionTicks:0});playInternal(newItem,playOptions,function(){setPlaylistState(newItem.PlaylistItemId,newIndex)})}}},self.queue=function(options,player){queue(options,"",player)},self.queueNext=function(options,player){queue(options,"next",player)},events.on(pluginManager,"registered",function(e,plugin){"mediaplayer"===plugin.type&&initMediaPlayer(plugin)}),pluginManager.ofType("mediaplayer").map(initMediaPlayer),window.addEventListener("beforeunload",function(e){var player=currentPlayer;player&&getPlayerData(player).currentProgressInterval&&(playNextAfterEnded=!1,onPlaybackStopped.call(player))}),events.on(serverNotifications,"ServerShuttingDown",function(e,apiClient,data){self.setDefaultPlayerActive()}),events.on(serverNotifications,"ServerRestarting",function(e,apiClient,data){self.setDefaultPlayerActive()})}return new PlaybackManager});
\ No newline at end of file
diff --git a/dashboard-ui/bower_components/emby-webcomponents/strings/de.json b/dashboard-ui/bower_components/emby-webcomponents/strings/de.json
index 678aa5cd1c..ff0266ceb1 100644
--- a/dashboard-ui/bower_components/emby-webcomponents/strings/de.json
+++ b/dashboard-ui/bower_components/emby-webcomponents/strings/de.json
@@ -394,29 +394,29 @@
"Accept": "Akzeptieren",
"Reject": "Ablehnen",
"Connect": "Verbinde",
- "HeaderMyMedia": "My Media",
- "HeaderMyMediaSmall": "My Media (small)",
- "LatestFromLibrary": "Latest {0}",
- "HeaderLatestChannelMedia": "Latest Channel Items",
- "HeaderContinueWatching": "Continue Watching",
- "HeaderContinueListening": "Continue Listening",
- "HeaderActiveRecordings": "Active Recordings",
- "HeaderLatestRecordings": "Latest Recordings",
+ "HeaderMyMedia": "Meine Medien",
+ "HeaderMyMediaSmall": "Meine Medien (Klein)",
+ "LatestFromLibrary": "Neueste {0}",
+ "HeaderLatestChannelMedia": "Neueste Channelinhalte",
+ "HeaderContinueWatching": "Weiterschauen",
+ "HeaderContinueListening": "Weiterh\u00f6ren",
+ "HeaderActiveRecordings": "Aktive Aufnahmen",
+ "HeaderLatestRecordings": "Neueste Aufnahmen",
"LabelDownloadTo": "Herunterladen nach:",
- "HeaderNextUp": "Next Up",
- "HeaderLatestFrom": "Latest from {0}",
- "LabelHomeScreenSectionValue": "Home screen section {0}:",
- "SettingsSaved": "Settings saved.",
- "None": "None",
+ "HeaderNextUp": "Als N\u00e4chstes",
+ "HeaderLatestFrom": "Neuestes von {0}",
+ "LabelHomeScreenSectionValue": "Startseitenbereich {0}:",
+ "SettingsSaved": "Einstellungen gespeichert.",
+ "None": "Keines",
"More": "Mehr",
- "Up": "Up",
- "Down": "Down",
- "HeaderHomeScreen": "Home Screen",
- "HeaderLatestMedia": "Latest Media",
- "HeaderLatestChannelItems": "Latest Channel Items",
- "LabelSelectLastestItemsFolders": "Include items from the following sections in Latest Media",
- "HeaderLibraryOrder": "Library Order",
- "HideWatchedContentFromLatestMedia": "Hide watched content from latest media",
- "HeaderOnNow": "On Now",
- "Guide": "Guide"
+ "Up": "Hoch",
+ "Down": "Runter",
+ "HeaderHomeScreen": "Startseite",
+ "HeaderLatestMedia": "Neueste Medien",
+ "HeaderLatestChannelItems": "Neueste Channelinhalte",
+ "LabelSelectLastestItemsFolders": "Beziehe Inhalte aus folgenden Sektionen in \"Neueste Medien\" mit ein",
+ "HeaderLibraryOrder": "Bibliotheksreihenfolge",
+ "HideWatchedContentFromLatestMedia": "Verberge gesehene Inhalte von neuesten Medien.",
+ "HeaderOnNow": "Gerade l\u00e4uft",
+ "Guide": "TV Guide"
}
\ No newline at end of file
diff --git a/dashboard-ui/bower_components/emby-webcomponents/strings/en-us.json b/dashboard-ui/bower_components/emby-webcomponents/strings/en-us.json
index e472f2bcc4..629e71b271 100644
--- a/dashboard-ui/bower_components/emby-webcomponents/strings/en-us.json
+++ b/dashboard-ui/bower_components/emby-webcomponents/strings/en-us.json
@@ -267,7 +267,6 @@
"ConfirmDeleteItems": "Deleting these items will delete them from both the file system and your media library. Are you sure you wish to continue?",
"PleaseRestartServerName": "Please restart Emby Server - {0}.",
"SyncJobCreated": "Sync job created.",
- "LabelSyncTo": "Sync to:",
"LabelSyncJobName": "Sync job name:",
"LabelQuality": "Quality:",
"LabelSyncNoTargetsHelp": "It looks like you don't currently have any apps that support offline downloading.",
@@ -276,9 +275,9 @@
"LearnMore": "Learn more",
"LabelProfile": "Profile:",
"LabelBitrateMbps": "Bitrate (Mbps):",
- "SyncUnwatchedVideosOnly": "Sync unwatched videos only",
+ "SyncUnwatchedVideosOnly": "Download unwatched videos only",
"SyncUnwatchedVideosOnlyHelp": "Only unwatched videos will be downloaded, and videos will be removed from the device as they are watched.",
- "AutomaticallySyncNewContent": "Automatically sync new content",
+ "AutomaticallySyncNewContent": "Automatically download new content",
"AutomaticallySyncNewContentHelp": "New content added to this folder will be automatically downloaded to the device.",
"LabelItemLimit": "Item limit:",
"LabelItemLimitHelp": "Optional. Set a limit to the number of items that will be downloaded.",
@@ -418,5 +417,9 @@
"HeaderLibraryOrder": "Library Order",
"HideWatchedContentFromLatestMedia": "Hide watched content from latest media",
"HeaderOnNow": "On Now",
+ "HeaderPlaybackError": "Playback Error",
+ "PlaybackErrorNotAllowed": "You're currently not authorized to play this content. Please contact your system administrator for details.",
+ "PlaybackErrorNoCompatibleStream": "No compatible streams are currently available. Please try again later or contact your system administrator for details.",
+ "PlaybackErrorPlaceHolder": "Please insert the disc in order to play this video.",
"Guide": "Guide"
}
\ No newline at end of file
diff --git a/dashboard-ui/bower_components/emby-webcomponents/strings/he.json b/dashboard-ui/bower_components/emby-webcomponents/strings/he.json
index 98338388f5..a454c27216 100644
--- a/dashboard-ui/bower_components/emby-webcomponents/strings/he.json
+++ b/dashboard-ui/bower_components/emby-webcomponents/strings/he.json
@@ -1,37 +1,37 @@
{
- "MessageUnlockAppWithPurchaseOrSupporter": "Unlock this feature with a small one-time purchase, or with an active Emby Premiere subscription.",
- "MessageUnlockAppWithSupporter": "Unlock this feature with an active Emby Premiere subscription.",
- "MessageToValidateSupporter": "If you have an active Emby Premiere subscription, ensure you've setup Emby Premiere in your Emby Server Dashboard, which you can access by clicking Emby Premiere within the main menu.",
- "ValueSpecialEpisodeName": "Special - {0}",
- "Share": "Share",
+ "MessageUnlockAppWithPurchaseOrSupporter": "\u05e0\u05e2\u05d9\u05dc\u05ea \u05ea\u05db\u05d5\u05e0\u05d4 \u05d6\u05d5 \u05e2\u05dd \u05e8\u05db\u05d9\u05e9\u05d4 \u05d7\u05d3 \u05e4\u05e2\u05de\u05d9\u05ea \u05e7\u05d8\u05e0\u05d4, \u05d0\u05d5 \u05e2\u05dd \u05de\u05e0\u05d5\u05d9 \u05e4\u05e2\u05d9\u05dc Premiere \u05d0\u05de\u05d1\u05d9.",
+ "MessageUnlockAppWithSupporter": "\u05d1\u05d9\u05d8\u05d5\u05dc \u05e0\u05e2\u05d9\u05dc\u05d4 \u05e9\u05dc \u05ea\u05db\u05d5\u05e0\u05d4 \u05d6\u05d5 \u05e2\u05dd \u05de\u05e0\u05d5\u05d9 \u05e4\u05e2\u05d9\u05dc \u05e9\u05dc Emby Premiere.",
+ "MessageToValidateSupporter": "\u05d0\u05dd \u05d9\u05e9 \u05dc\u05da \u05de\u05e0\u05d5\u05d9 \u05e4\u05e2\u05d9\u05dc \u05e9\u05dc Emby Premiere, \u05d5\u05d3\u05d0 \u05e9\u05d4\u05d2\u05d3\u05e8\u05ea \u05d0\u05ea Emby Premiere \u05d1\u05de\u05e8\u05db\u05d6 \u05d4\u05e9\u05dc\u05d9\u05d8\u05d4 \u05e9\u05dc \u200b\u200b\u05d0\u05de\u05d1\u05d9 \u05e9\u05e8\u05ea, \u05e9\u05d1\u05d5 \u05d1\u05d0\u05e4\u05e9\u05e8\u05d5\u05ea\u05da \u05dc\u05d2\u05e9\u05ea \u05e2\u05dc-\u05d9\u05d3\u05d9 \u05dc\u05d7\u05d9\u05e6\u05d4 \u05e2\u05dc Emby Premiere \u05d1\u05ea\u05e4\u05e8\u05d9\u05d8 \u05d4\u05e8\u05d0\u05e9\u05d9.",
+ "ValueSpecialEpisodeName": "\u05de\u05d9\u05d5\u05d7\u05d3- {0}",
+ "Share": "\u05e9\u05d9\u05ea\u05d5\u05e3",
"Add": "\u05d4\u05d5\u05e1\u05e3",
- "ServerUpdateNeeded": "This Emby Server needs to be updated. To download the latest version, please visit {0}",
- "LiveTvGuideRequiresUnlock": "The Live TV Guide is currently limited to {0} channels. Click the unlock button to learn how to enjoy the full experience.",
- "AttributeNew": "New",
- "Premiere": "Premiere",
- "Live": "Live",
- "Repeat": "Repeat",
- "TrackCount": "{0} tracks",
- "ItemCount": "{0} items",
- "OriginalAirDateValue": "Original air date: {0}",
- "EndsAtValue": "Ends at {0}",
- "OptionSundayShort": "Sun",
- "OptionMondayShort": "Mon",
- "OptionTuesdayShort": "Tue",
- "OptionWednesdayShort": "Wed",
- "OptionThursdayShort": "Thu",
- "OptionFridayShort": "Fri",
- "OptionSaturdayShort": "Sat",
- "HeaderSelectDate": "Select Date",
- "ButtonOk": "Ok",
+ "ServerUpdateNeeded": "\u05e9\u05e8\u05ea \u05d0\u05de\u05d1\u05d9 \u05d6\u05d4 \u05e6\u05e8\u05d9\u05da \u05dc\u05d4\u05d9\u05d5\u05ea \u05de\u05e2\u05d5\u05d3\u05db\u05df. \u05db\u05d3\u05d9 \u05dc\u05d4\u05d5\u05e8\u05d9\u05d3 \u05d0\u05ea \u05d4\u05d2\u05e8\u05e1\u05d4 \u05d4\u05e2\u05d3\u05db\u05e0\u05d9\u05ea \u05d1\u05d9\u05d5\u05ea\u05e8, \u05d1\u05e7\u05e8 \u05d1\u05db\u05ea\u05d5\u05d1\u05ea {0}",
+ "LiveTvGuideRequiresUnlock": "\u05d1\u05e9\u05dc\u05d1 \u05d6\u05d4, \u05d4\u05de\u05d3\u05e8\u05d9\u05da \u05e9\u05dc Google Live \u05de\u05d5\u05d2\u05d1\u05dc \u05dc {0} \u05e2\u05e8\u05d5\u05e6\u05d9\u05dd. \u05dc\u05d7\u05e5 \u05e2\u05dc \u05dc\u05d7\u05e6\u05df \u05d4\u05e0\u05e2\u05d9\u05dc\u05d4 \u05db\u05d3\u05d9 \u05dc\u05dc\u05de\u05d5\u05d3 \u05db\u05d9\u05e6\u05d3 \u05dc\u05d9\u05d4\u05e0\u05d5\u05ea \u05de\u05d4\u05d7\u05d5\u05d5\u05d9\u05d4 \u05d4\u05de\u05dc\u05d0\u05d4.",
+ "AttributeNew": "\u05d7\u05d3\u05e9",
+ "Premiere": "\u05d4\u05e7\u05e8\u05e0\u05ea \u05d1\u05db\u05d5\u05e8\u05d4",
+ "Live": "\u05e9\u05d9\u05d3\u05d5\u05e8 \u05d7\u05d9",
+ "Repeat": "\u05d7\u05d6\u05d5\u05e8",
+ "TrackCount": "\u05e9\u05d9\u05e8\u05d9\u05dd {0}",
+ "ItemCount": "\u05e4\u05e8\u05d9\u05d8\u05d9\u05dd {0}",
+ "OriginalAirDateValue": "\u05ea\u05d0\u05e8\u05d9\u05da \u05d0\u05d5\u05d5\u05d9\u05e8 \u05de\u05e7\u05d5\u05e8\u05d9: {0}",
+ "EndsAtValue": "\u05de\u05e1\u05ea\u05d9\u05d9\u05dd \u05d1 {0}",
+ "OptionSundayShort": "\u05e8\u05d0\u05e9\u05d5\u05df",
+ "OptionMondayShort": "\u05e9\u05e0\u05d9",
+ "OptionTuesdayShort": "\u05e9\u05dc\u05d9\u05e9\u05d9",
+ "OptionWednesdayShort": "\u05e8\u05d1\u05d9\u05e2\u05d9",
+ "OptionThursdayShort": "\u05d7\u05de\u05d9\u05e9\u05d9",
+ "OptionFridayShort": "\u05e9\u05d9\u05e9\u05d9",
+ "OptionSaturdayShort": "\u05e9\u05d1\u05ea",
+ "HeaderSelectDate": "\u05d1\u05d7\u05e8 \u05ea\u05d0\u05e8\u05d9\u05da",
+ "ButtonOk": "\u05d1\u05e1\u05d3\u05e8",
"ButtonCancel": "\u05d1\u05d8\u05dc",
- "ButtonGotIt": "Got It",
- "ButtonRestart": "Restart",
- "RecordingCancelled": "Recording cancelled.",
- "SeriesCancelled": "Series cancelled.",
- "RecordingScheduled": "Recording scheduled.",
- "SeriesRecordingScheduled": "Series recording scheduled.",
- "HeaderNewRecording": "New Recording",
+ "ButtonGotIt": "\u05d4\u05d1\u05e0\u05ea\u05d9",
+ "ButtonRestart": "\u05d0\u05d9\u05ea\u05d7\u05d5\u05dc",
+ "RecordingCancelled": "\u05d1\u05d8\u05dc \u05d4\u05e7\u05dc\u05d8\u05d4",
+ "SeriesCancelled": "\u05d1\u05d8\u05dc \u05e1\u05d3\u05e8\u05d5\u05ea",
+ "RecordingScheduled": "\u05d4\u05d4\u05e7\u05dc\u05d8\u05d4 \u05de\u05ea\u05d5\u05d6\u05de\u05e0\u05ea.",
+ "SeriesRecordingScheduled": "\u05d4\u05e7\u05dc\u05d8\u05ea \u05e1\u05d3\u05e8\u05d4 \u05de\u05ea\u05d5\u05d6\u05de\u05e0\u05ea.",
+ "HeaderNewRecording": "\u05d4\u05e7\u05dc\u05d8\u05d4 \u05d7\u05d3\u05e9\u05d4",
"Sunday": "\u05e8\u05d0\u05e9\u05d5\u05df",
"Monday": "\u05e9\u05e0\u05d9",
"Tuesday": "\u05e9\u05dc\u05d9\u05e9\u05d9",
@@ -40,311 +40,311 @@
"Friday": "\u05e9\u05d9\u05e9\u05d9",
"Saturday": "\u05e9\u05d1\u05ea",
"Days": "\u05d9\u05de\u05d9\u05dd",
- "RecordSeries": "Record series",
- "HeaderCinemaMode": "Cinema Mode",
- "HeaderCloudSync": "Cloud Sync",
- "HeaderDownloadedMedia": "Downloaded Media",
- "Downloads": "Downloads",
- "HeaderOfflineDownloads": "Offline Media",
- "HeaderOfflineDownloadsDescription": "Download media to your devices for easy offline use.",
- "CloudSyncFeatureDescription": "Sync your media to the cloud for easy backup, archiving, and converting.",
- "CoverArtFeatureDescription": "Cover Art creates fun covers and other treatments to help you personalize your media images.",
- "CoverArt": "Cover Art",
- "ButtonCancelSyncJob": "Cancel download",
- "CancelSyncJobConfirmation": "Cancelling the sync job will remove downloaded media from the device during the next sync process. Are you sure you wish to proceed?",
- "CinemaModeFeatureDescription": "Cinema Mode gives you the true cinema experience with trailers and custom intros before the feature.",
- "HeaderFreeApps": "Free Emby Apps",
- "FreeAppsFeatureDescription": "Enjoy free access to Emby apps for your devices.",
- "HeaderBecomeProjectSupporter": "Get Emby Premiere",
+ "RecordSeries": "\u05d4\u05e7\u05dc\u05d8 \u05e1\u05d3\u05e8\u05d4",
+ "HeaderCinemaMode": "\u05de\u05e6\u05d1 \u05e7\u05d5\u05dc\u05e0\u05d5\u05e2",
+ "HeaderCloudSync": "\u05e1\u05e0\u05db\u05e8\u05d5\u05df \u05e2\u05e0\u05df",
+ "HeaderDownloadedMedia": "\u05d4\u05d5\u05e8\u05d3\u05ea \u05de\u05d3\u05d9\u05d4",
+ "Downloads": "\u05d4\u05d5\u05e8\u05d3\u05d5\u05ea",
+ "HeaderOfflineDownloads": "\u05de\u05d3\u05d9\u05d4 \u05dc\u05d0 \u05de\u05e7\u05d5\u05d5\u05e0\u05ea",
+ "HeaderOfflineDownloadsDescription": "\u05d4\u05d5\u05e8\u05d3 \u05de\u05d3\u05d9\u05d4 \u05dc\u05de\u05db\u05e9\u05d9\u05e8\u05d9\u05dd \u05e9\u05dc\u05da \u05dc\u05e9\u05d9\u05de\u05d5\u05e9 \u05dc\u05d0 \u05de\u05e7\u05d5\u05d5\u05df \u05d1\u05e7\u05dc\u05d5\u05ea.",
+ "CloudSyncFeatureDescription": "\u05e1\u05e0\u05db\u05e8\u05df \u05d0\u05ea \u05d4\u05de\u05d3\u05d9\u05d4 \u05e9\u05dc\u05da \u05dc\u05e2\u05e0\u05df \u05dc\u05e6\u05d5\u05e8\u05da \u05d2\u05d9\u05d1\u05d5\u05d9 \u05e7\u05dc, \u05d0\u05d7\u05e1\u05d5\u05df \u05d1\u05d0\u05e8\u05db\u05d9\u05d5\u05df \u05d5\u05d4\u05de\u05e8\u05d4.",
+ "CoverArtFeatureDescription": "\u05d0\u05de\u05e0\u05d5\u05ea \u05db\u05e8\u05d9\u05db\u05d4 \u05d9\u05d5\u05e6\u05e8 \u05db\u05d9\u05e1\u05d5\u05d9\u05d9 \u05db\u05d9\u05e3 \u05d5\u05d8\u05d9\u05e4\u05d5\u05dc\u05d9\u05dd \u05d0\u05d7\u05e8\u05d9\u05dd \u05e9\u05d9\u05e1\u05d9\u05d9\u05e2\u05d5 \u05dc\u05da \u05dc\u05d4\u05ea\u05d0\u05d9\u05dd \u05d0\u05d9\u05e9\u05d9\u05ea \u05d0\u05ea \u05ea\u05de\u05d5\u05e0\u05d5\u05ea \u05d4\u05de\u05d3\u05d9\u05d4 \u05e9\u05dc\u05da.",
+ "CoverArt": "\u05d0\u05de\u05e0\u05d5\u05ea \u05db\u05e8\u05d9\u05db\u05d4",
+ "ButtonCancelSyncJob": "\u05d1\u05d9\u05d8\u05d5\u05dc \u05d4\u05d5\u05e8\u05d3\u05d4",
+ "CancelSyncJobConfirmation": "\u05d1\u05d9\u05d8\u05d5\u05dc \u05de\u05e9\u05d9\u05de\u05ea \u05d4\u05e1\u05d9\u05e0\u05db\u05e8\u05d5\u05df \u05ea\u05e1\u05d9\u05e8 \u05de\u05d3\u05d9\u05d4 \u05e9\u05d4\u05d5\u05e8\u05d3\u05d4 \u05de\u05d4\u05de\u05db\u05e9\u05d9\u05e8 \u05d1\u05de\u05d4\u05dc\u05da \u05ea\u05d4\u05dc\u05d9\u05da \u05d4\u05e1\u05e0\u05db\u05e8\u05d5\u05df \u05d4\u05d1\u05d0. \u05d4\u05d0\u05dd \u05d0\u05ea\u05d4 \u05d1\u05d8\u05d5\u05d7 \u05e9\u05d1\u05e8\u05e6\u05d5\u05e0\u05da \u05dc\u05d4\u05de\u05e9\u05d9\u05da?",
+ "CinemaModeFeatureDescription": "\u05de\u05e6\u05d1 \u05e7\u05d5\u05dc\u05e0\u05d5\u05e2 \u05e0\u05d5\u05ea\u05df \u05dc\u05da \u05d0\u05ea \u05d4\u05d7\u05d5\u05d5\u05d9\u05d4 \u05d4\u05e7\u05d5\u05dc\u05e0\u05d5\u05e2 \u05d0\u05de\u05d9\u05ea\u05d9 \u05e2\u05dd \u05e7\u05d3\u05d9\u05de\u05d5\u05e0\u05d9\u05dd \u05de\u05d5\u05ea\u05d0\u05de\u05d9\u05dd \u05d0\u05d9\u05e9\u05d9\u05ea \u05dc\u05e4\u05e0\u05d9 \u05d4\u05ea\u05db\u05d5\u05e0\u05d4.",
+ "HeaderFreeApps": "\u05d0\u05e4\u05dc\u05d9\u05e7\u05e6\u05d9\u05d5\u05ea \u05d0\u05de\u05d1\u05d9 \u05d1\u05d7\u05d9\u05e0\u05dd",
+ "FreeAppsFeatureDescription": "\u05d1\u05d0\u05e4\u05e9\u05e8\u05d5\u05ea\u05da \u05dc\u05d9\u05d4\u05e0\u05d5\u05ea \u05de\u05d2\u05d9\u05e9\u05d4 \u05d7\u05d5\u05e4\u05e9\u05d9\u05ea \u05dc\u05d9\u05d9\u05e9\u05d5\u05de\u05d9 Emby \u05e2\u05d1\u05d5\u05e8 \u05d4\u05de\u05db\u05e9\u05d9\u05e8\u05d9\u05dd \u05e9\u05dc\u05da.",
+ "HeaderBecomeProjectSupporter": "\u05e7\u05d1\u05dc Emby Premiere",
"MessageActiveSubscriptionRequiredSeriesRecordings": "An active Emby Premiere subscription is required in order to create automated series recordings.",
- "LabelEmailAddress": "E-mail address:",
- "PromoConvertRecordingsToStreamingFormat": "Automatically convert recordings to a streaming friendly format with Emby Premiere. Recordings will be converted on the fly to MP4 or MKV, based on Emby server settings.",
- "FeatureRequiresEmbyPremiere": "This feature requires an active Emby Premiere subscription.",
- "HeaderConvertYourRecordings": "Convert Your Recordings",
+ "LabelEmailAddress": "\u05db\u05ea\u05d5\u05d1\u05ea \u05d3\u05d5\u05d0\"\u05dc:",
+ "PromoConvertRecordingsToStreamingFormat": "\u05dc\u05d4\u05de\u05d9\u05e8 \u05d1\u05d0\u05d5\u05e4\u05df \u05d0\u05d5\u05d8\u05d5\u05de\u05d8\u05d9 \u05d4\u05e7\u05dc\u05d8\u05d5\u05ea \u05d1\u05e4\u05d5\u05e8\u05de\u05d8 \u05d6\u05d5\u05e8\u05dd \u05d9\u05d3\u05d9\u05d3\u05d5\u05ea\u05d9 \u05e2\u05dd \u05d0\u05de\u05d1\u05d9 Premiere. \u05d4\u05e7\u05dc\u05d8\u05d5\u05ea \u05d9\u05d5\u05de\u05e8\u05d5 \u05e2\u05dc \u05dc\u05d8\u05d5\u05e1 \u05dc MP4 \u05d0\u05d5 MKV, \u05d1\u05d4\u05ea\u05d1\u05e1\u05e1 \u05e2\u05dc \u05d4\u05d2\u05d3\u05e8\u05d5\u05ea \u05e9\u05e8\u05ea \u05d0\u05de\u05d1\u05d9.",
+ "FeatureRequiresEmbyPremiere": "\u05ea\u05db\u05d5\u05e0\u05d4 \u05d6\u05d5 \u05d3\u05d5\u05e8\u05e9\u05ea \u05de\u05e0\u05d5\u05d9 \u05e4\u05e2\u05d9\u05dc \u05e9\u05dc Emby Premiere.",
+ "HeaderConvertYourRecordings": "\u05d4\u05de\u05e8\u05ea \u05d4\u05e7\u05dc\u05d8\u05d5\u05ea \u05e9\u05dc\u05da",
"Record": "\u05d4\u05e7\u05dc\u05d8",
"Save": "\u05e9\u05de\u05d5\u05e8",
"Edit": "\u05e2\u05e8\u05d5\u05da",
- "Download": "Download",
- "Advanced": "Advanced",
+ "Download": "\u05d4\u05d5\u05e8\u05d3\u05d4",
+ "Advanced": "\u05de\u05ea\u05e7\u05d3\u05dd",
"Delete": "\u05de\u05d7\u05e7",
- "HeaderDeleteItem": "Delete Item",
- "ConfirmDeleteItem": "Deleting this item will delete it from both the file system and your media library. Are you sure you wish to continue?",
- "Refresh": "Refresh",
- "RefreshQueued": "Refresh queued.",
- "AddToCollection": "Add to collection",
- "HeaderAddToCollection": "Add to Collection",
- "NewCollection": "\u05d0\u05d5\u05e4\u05e1\u05d9\u05dd \u05d7\u05d3\u05e9\u05d9\u05dd",
- "LabelCollection": "Collection:",
- "Help": "Help",
- "NewCollectionHelp": "Collections allow you to create personalized groupings of movies and other library content.",
+ "HeaderDeleteItem": "\u05de\u05d7\u05e7 \u05e4\u05e8\u05d9\u05d8",
+ "ConfirmDeleteItem": "\u05de\u05d7\u05d9\u05e7\u05ea \u05e4\u05e8\u05d9\u05d8 \u05d6\u05d4 \u05ea\u05de\u05d7\u05e7 \u05d0\u05d5\u05ea\u05d5 \u05d4\u05df \u05de\u05de\u05e2\u05e8\u05db\u05ea \u05d4\u05e7\u05d1\u05e6\u05d9\u05dd \u05d5\u05d4\u05df \u05de\u05e1\u05e4\u05e8\u05d9\u05d9\u05ea \u05d4\u05de\u05d3\u05d9\u05d4 \u05e9\u05dc\u05da. \u05d4\u05d0\u05dd \u05d0\u05ea\u05d4 \u05d1\u05d8\u05d5\u05d7 \u05e9\u05d1\u05e8\u05e6\u05d5\u05e0\u05da \u05dc\u05d4\u05de\u05e9\u05d9\u05da?",
+ "Refresh": "\u05e8\u05e2\u05e0\u05d5\u05df",
+ "RefreshQueued": "\u05e8\u05e2\u05e0\u05df \u05ea\u05d5\u05e8.",
+ "AddToCollection": "\u05dc\u05d4\u05d5\u05e1\u05d9\u05e3 \u05dc\u05d0\u05d5\u05e1\u05e3",
+ "HeaderAddToCollection": "\u05dc\u05d4\u05d5\u05e1\u05d9\u05e3 \u05dc\u05d0\u05d5\u05e1\u05e3",
+ "NewCollection": "\u05d0\u05d5\u05e1\u05e4\u05d9\u05dd \u05d7\u05d3\u05e9\u05d9\u05dd",
+ "LabelCollection": "\u05d0\u05d5\u05e1\u05e4\u05d9\u05dd:",
+ "Help": "\u05e2\u05d6\u05e8\u05d4",
+ "NewCollectionHelp": "\u05d0\u05d5\u05e1\u05e4\u05d9\u05dd \u05de\u05d0\u05e4\u05e9\u05e8\u05d9\u05dd \u05dc\u05da \u05dc\u05d9\u05e6\u05d5\u05e8 \u05e7\u05d9\u05d1\u05d5\u05e6\u05d9\u05dd \u05de\u05d5\u05ea\u05d0\u05de\u05d9\u05dd \u05d0\u05d9\u05e9\u05d9\u05ea \u05e9\u05dc \u05e1\u05e8\u05d8\u05d9\u05dd \u05d5\u05ea\u05d5\u05db\u05df \u05e1\u05e4\u05e8\u05d9\u05d4 \u05d0\u05d7\u05e8.",
"SearchForCollectionInternetMetadata": "\u05d7\u05e4\u05e9 \u05d1\u05d0\u05d9\u05e0\u05e8\u05e0\u05d8 \u05d0\u05d7\u05e8\u05d9 \u05de\u05d9\u05d3\u05e2 \u05d5\u05ea\u05de\u05d5\u05e0\u05d5\u05ea",
"LabelName": "\u05e9\u05dd:",
"NewCollectionNameExample": "\u05dc\u05d3\u05d5\u05d2\u05de\u05d0 :\u05d0\u05d5\u05e1\u05e3 \u05de\u05dc\u05d7\u05de\u05ea \u05d4\u05db\u05d5\u05db\u05d1\u05d9\u05dd",
- "MessageItemsAdded": "Items added.",
- "OptionNew": "New...",
- "LabelPlaylist": "Playlist:",
- "AddToPlaylist": "Add to playlist",
- "HeaderAddToPlaylist": "Add to Playlist",
- "Subtitles": "Subtitles",
- "SearchForSubtitles": "Search for Subtitles",
+ "MessageItemsAdded": "\u05e4\u05e8\u05d9\u05d8\u05d9\u05dd \u05e0\u05d5\u05e1\u05e4\u05d5.",
+ "OptionNew": "\u05d7\u05d3\u05e9...",
+ "LabelPlaylist": "\u05e8\u05e9\u05d9\u05de\u05ea \u05e0\u05d9\u05d2\u05d5\u05df:",
+ "AddToPlaylist": "\u05d4\u05d5\u05e1\u05e3 \u05dc\u05e8\u05e9\u05d9\u05de\u05ea \u05e0\u05d9\u05d2\u05d5\u05df",
+ "HeaderAddToPlaylist": "\u05d4\u05d5\u05e1\u05e3 \u05dc\u05e8\u05e9\u05d9\u05de\u05ea \u05e0\u05d9\u05d2\u05d5\u05df",
+ "Subtitles": "\u05db\u05ea\u05d5\u05d1\u05d9\u05d5\u05ea",
+ "SearchForSubtitles": "\u05d7\u05d9\u05e4\u05d5\u05e9 \u05e9\u05dc \u05db\u05ea\u05d5\u05d1\u05d9\u05d5\u05ea",
"LabelLanguage": "\u05e9\u05e4\u05d4:",
- "Search": "Search",
- "NoSubtitleSearchResultsFound": "No results found.",
- "File": "File",
- "MessageAreYouSureDeleteSubtitles": "Are you sure you wish to delete this subtitle file?",
- "ConfirmDeletion": "Confirm Deletion",
- "MySubtitles": "My Subtitles",
- "MessageDownloadQueued": "Download queued.",
+ "Search": "\u05d7\u05d9\u05e4\u05d5\u05e9",
+ "NoSubtitleSearchResultsFound": "\u05dc\u05d0 \u05e0\u05de\u05e6\u05d0\u05d5 \u05ea\u05d5\u05e6\u05d0\u05d5\u05ea.",
+ "File": "\u05e7\u05d5\u05d1\u05e5",
+ "MessageAreYouSureDeleteSubtitles": "\u05d4\u05d0\u05dd \u05d0\u05ea\u05d4 \u05d1\u05d8\u05d5\u05d7 \u05e9\u05d1\u05e8\u05e6\u05d5\u05e0\u05da \u05dc\u05de\u05d7\u05d5\u05e7 \u05e7\u05d5\u05d1\u05e5 \u05db\u05ea\u05d5\u05d1\u05d9\u05ea \u05d6\u05d4?",
+ "ConfirmDeletion": "\u05d0\u05e9\u05e8 \u05de\u05d7\u05d9\u05e7\u05d4",
+ "MySubtitles": "\u05d4\u05db\u05ea\u05d5\u05d1\u05d9\u05d5\u05ea \u05e9\u05dc\u05d9",
+ "MessageDownloadQueued": "\u05d4\u05d5\u05e8\u05d3 \u05ea\u05d5\u05e8",
"EditSubtitles": "\u05e2\u05e8\u05d5\u05da \u05db\u05ea\u05d5\u05d1\u05d9\u05d5\u05ea",
- "UnlockGuide": "Unlock Guide",
- "RefreshMetadata": "Refresh Metadata",
- "ReplaceExistingImages": "Replace existing images",
- "ReplaceAllMetadata": "Replace all metadata",
- "SearchForMissingMetadata": "Search for missing metadata",
- "LabelRefreshMode": "Refresh mode:",
+ "UnlockGuide": "\u05e0\u05e2\u05d9\u05dc\u05ea \u05de\u05d3\u05e8\u05d9\u05da",
+ "RefreshMetadata": "\u05e8\u05e2\u05e0\u05df \u05de\u05d8\u05d0 \u05e0\u05ea\u05d5\u05e0\u05d9\u05dd",
+ "ReplaceExistingImages": "\u05d4\u05d7\u05dc\u05e3 \u05ea\u05de\u05d5\u05e0\u05d5\u05ea \u05e7\u05d9\u05d9\u05de\u05d5\u05ea",
+ "ReplaceAllMetadata": "\u05d4\u05d7\u05dc\u05e3 \u05d0\u05ea \u05db\u05dc \u05d4\u05de\u05d8\u05d0 \u05e0\u05ea\u05d5\u05e0\u05d9\u05dd",
+ "SearchForMissingMetadata": "\u05d7\u05e4\u05e9 \u05de\u05d8\u05d0 \u05e0\u05ea\u05d5\u05e0\u05d9\u05dd \u05d7\u05e1\u05e8\u05d9\u05dd",
+ "LabelRefreshMode": "\u05de\u05e6\u05d1 \u05e8\u05e2\u05e0\u05d5\u05df:",
"NoItemsFound": "\u05dc\u05d0 \u05e0\u05de\u05e6\u05d0\u05d5 \u05e4\u05e8\u05d9\u05d8\u05d9\u05dd",
- "HeaderSaySomethingLike": "Say Something Like...",
- "ButtonTryAgain": "Try Again",
- "HeaderYouSaid": "You Said...",
- "MessageWeDidntRecognizeCommand": "We're sorry, we didn't recognize that command.",
- "MessageIfYouBlockedVoice": "If you denied voice access to the app you'll need to reconfigure before trying again.",
- "ValueDiscNumber": "Disc {0}",
- "Unrated": "Unrated",
- "Favorite": "Favorite",
- "Like": "Like",
- "Dislike": "Dislike",
- "RefreshDialogHelp": "Metadata is refreshed based on settings and internet services that are enabled in the Emby Server dashboard.",
- "Open": "Open",
+ "HeaderSaySomethingLike": "\u05ea\u05d2\u05d9\u05d3 \u05de\u05e9\u05d4\u05d5 \u05db\u05de\u05d5 ...",
+ "ButtonTryAgain": "\u05e0\u05e1\u05d4 \u05e9\u05e0\u05d9\u05ea",
+ "HeaderYouSaid": "\u05d0\u05ea\u05d4 \u05d0\u05de\u05e8\u05ea...",
+ "MessageWeDidntRecognizeCommand": "\u05d0\u05e0\u05d7\u05e0\u05d5 \u05de\u05e6\u05d8\u05e2\u05e8\u05d9\u05dd, \u05dc\u05d0 \u05d6\u05d9\u05d4\u05d9\u05e0\u05d5 \u05d0\u05ea \u05d4\u05e4\u05e7\u05d5\u05d3\u05d4 \u05d4\u05d6\u05d0\u05ea.",
+ "MessageIfYouBlockedVoice": "\u05d0\u05dd \u05de\u05e0\u05e2\u05ea \u05d2\u05d9\u05e9\u05d4 \u05e7\u05d5\u05dc\u05d9\u05ea \u05dc\u05d0\u05e4\u05dc\u05d9\u05e7\u05e6\u05d9\u05d4 \u05e9\u05ea\u05e6\u05d8\u05e8\u05da \u05dc\u05d4\u05d2\u05d3\u05d9\u05e8 \u05de\u05d7\u05d3\u05e9 \u05dc\u05e4\u05e0\u05d9 \u05e9\u05ea\u05e0\u05e1\u05d4 \u05e9\u05d5\u05d1.",
+ "ValueDiscNumber": "\u05d3\u05d9\u05e1\u05e7 {0}",
+ "Unrated": "\u05d0\u05d9\u05df \u05d3\u05d9\u05e8\u05d5\u05d2",
+ "Favorite": "\u05de\u05d5\u05e2\u05d3\u05e3",
+ "Like": "\u05d0\u05d5\u05d4\u05d1",
+ "Dislike": "\u05dc\u05d0 \u05d0\u05d5\u05d4\u05d1",
+ "RefreshDialogHelp": "\u05d4\u05de\u05d8\u05d0 \u05e0\u05ea\u05d5\u05e0\u05d9\u05dd \u05de\u05ea\u05e8\u05e2\u05e0\u05e0\u05d9\u05dd \u05e2\u05dc \u05e1\u05de\u05da \u05d4\u05d2\u05d3\u05e8\u05d5\u05ea \u05d5\u05e9\u05d9\u05e8\u05d5\u05ea\u05d9 \u05d0\u05d9\u05e0\u05d8\u05e8\u05e0\u05d8 \u05e9\u05de\u05d5\u05e4\u05e2\u05dc\u05d9\u05dd \u05d1\u05dc\u05d5\u05d7 \u05d4\u05de\u05d7\u05d5\u05d5\u05e0\u05d9\u05dd \u05e9\u05dc \u05de\u05e8\u05db\u05d6 \u05d0\u05de\u05d1\u05d9.",
+ "Open": "\u05e4\u05ea\u05d7",
"Play": "\u05e0\u05d2\u05df",
- "AddToPlayQueue": "Add to play queue",
- "Shuffle": "Shuffle",
- "Identify": "Identify",
- "EditImages": "Edit images",
- "EditInfo": "Edit info",
- "Sync": "Sync",
- "InstantMix": "Instant mix",
+ "AddToPlayQueue": "\u05d4\u05d5\u05e1\u05e3 \u05dc\u05ea\u05d5\u05e8 \u05d4\u05e4\u05e2\u05dc\u05d4",
+ "Shuffle": "\u05e2\u05e8\u05d1\u05d1",
+ "Identify": "\u05dc\u05d6\u05d4\u05d5\u05ea",
+ "EditImages": "\u05e2\u05e8\u05d5\u05da \u05ea\u05de\u05d5\u05e0\u05d5\u05ea",
+ "EditInfo": "\u05e2\u05e8\u05d5\u05da \u05de\u05d9\u05d3\u05e2",
+ "Sync": "\u05e1\u05e0\u05db\u05e8\u05df",
+ "InstantMix": "\u05de\u05d9\u05e7\u05e1 \u05de\u05d9\u05d9\u05d3\u05d9",
"ViewAlbum": "\u05e6\u05e4\u05d4 \u05d1\u05d0\u05dc\u05d1\u05d5\u05dd",
"ViewArtist": "\u05e6\u05e4\u05d4 \u05d1\u05d0\u05de\u05df",
- "QueueAllFromHere": "Queue all from here",
- "PlayAllFromHere": "Play all from here",
- "PlayFromBeginning": "Play from beginning",
- "ResumeAt": "Resume from {0}",
- "RemoveFromPlaylist": "Remove from playlist",
- "RemoveFromCollection": "Remove from collection",
- "Trailer": "Trailer",
- "MarkPlayed": "Mark played",
- "MarkUnplayed": "Mark unplayed",
- "GroupVersions": "Group versions",
- "PleaseSelectTwoItems": "Please select at least two items.",
- "TryMultiSelect": "Try Multi-Select",
- "TryMultiSelectMessage": "To edit multiple media items, just click and hold any poster and select the items you want to manage. Try it!",
- "HeaderConfirmRecordingCancellation": "Confirm Recording Cancellation",
- "MessageConfirmRecordingCancellation": "Are you sure you wish to cancel this recording?",
- "Error": "Error",
- "VoiceInput": "Voice Input",
+ "QueueAllFromHere": "\u05d4\u05d5\u05e1\u05e3 \u05d4\u05db\u05dc \u05de\u05db\u05d0\u05df \u05dc\u05ea\u05d5\u05e8",
+ "PlayAllFromHere": "\u05e0\u05d2\u05df \u05d4\u05db\u05dc \u05de\u05db\u05d0\u05df",
+ "PlayFromBeginning": "\u05e0\u05d2\u05df \u05de\u05d4\u05ea\u05d7\u05dc\u05d4",
+ "ResumeAt": "\u05d4\u05de\u05e9\u05da \u05de {0}",
+ "RemoveFromPlaylist": "\u05d4\u05e1\u05e8 \u05de\u05e8\u05e9\u05d9\u05de\u05ea \u05d4\u05e0\u05d9\u05d2\u05d5\u05df",
+ "RemoveFromCollection": "\u05d4\u05e1\u05e8 \u05de\u05d0\u05d5\u05e1\u05e4\u05d9\u05dd",
+ "Trailer": "\u05e7\u05d8\u05e2\u05d9 \u05e1\u05e8\u05d8",
+ "MarkPlayed": "\u05e1\u05de\u05df \u05e0\u05d5\u05d2\u05df",
+ "MarkUnplayed": "\u05e1\u05de\u05df \u05dc\u05d0 \u05e0\u05d5\u05d2\u05df",
+ "GroupVersions": "\u05d2\u05e8\u05e1\u05d0\u05d5\u05ea \u05e7\u05d1\u05d5\u05e6\u05ea\u05d9\u05d5\u05ea",
+ "PleaseSelectTwoItems": "\u05d1\u05d7\u05e8 \u05dc\u05e4\u05d7\u05d5\u05ea \u05e9\u05e0\u05d9 \u05e4\u05e8\u05d9\u05d8\u05d9\u05dd.",
+ "TryMultiSelect": "\u05e0\u05e1\u05d4 \u05d1\u05d7\u05d9\u05e8\u05d4 \u05de\u05e8\u05d5\u05d1\u05d4",
+ "TryMultiSelectMessage": "\u05db\u05d3\u05d9 \u05dc\u05e2\u05e8\u05d5\u05da \u05e4\u05e8\u05d9\u05d8\u05d9 \u05de\u05d3\u05d9\u05d4 \u05de\u05e8\u05d5\u05d1\u05d9\u05dd, \u05e4\u05e9\u05d5\u05d8 \u05dc\u05d7\u05e5 \u05dc\u05d7\u05d9\u05e6\u05d4 \u05d0\u05e8\u05d5\u05db\u05d4 \u05e2\u05dc \u05db\u05dc \u05e4\u05d5\u05e1\u05d8\u05e8 \u05d5\u05d1\u05d7\u05e8 \u05d0\u05ea \u05d4\u05e4\u05e8\u05d9\u05d8\u05d9\u05dd \u05e9\u05d1\u05e8\u05e6\u05d5\u05e0\u05da \u05dc\u05e0\u05d4\u05dc. \u05e0\u05e1\u05d4 \u05d6\u05d0\u05ea!",
+ "HeaderConfirmRecordingCancellation": "\u05d0\u05e9\u05e8 \u05d1\u05d9\u05d8\u05d5\u05dc \u05d4\u05e7\u05dc\u05d8\u05d4",
+ "MessageConfirmRecordingCancellation": "\u05d4\u05d0\u05dd \u05d0\u05ea\u05d4 \u05d1\u05d8\u05d5\u05d7 \u05e9\u05d1\u05e8\u05e6\u05d5\u05e0\u05da \u05dc\u05d1\u05d8\u05dc \u05d4\u05e7\u05dc\u05d8\u05d4 \u05d6\u05d5?",
+ "Error": "\u05e9\u05d2\u05d9\u05d0\u05d4",
+ "VoiceInput": "\u05e7\u05dc\u05d8 \u05e7\u05d5\u05dc\u05d9",
"LabelContentType": "\u05e1\u05d5\u05d2 \u05d4\u05ea\u05d5\u05db\u05df",
- "LabelPath": "Path:",
- "LabelTitle": "Title:",
- "LabelOriginalTitle": "Original title:",
- "LabelSortTitle": "Sort title:",
- "LabelDateAdded": "Date added:",
- "ConfigureDateAdded": "Configure how date added is determined in the Emby Server dashboard under Library settings",
- "LabelStatus": "Status:",
- "LabelArtists": "\u05d0\u05de\u05df",
- "LabelArtistsHelp": "Separate multiple using ;",
- "LabelAlbumArtists": "Album artists:",
- "LabelAlbum": "Album:",
- "LabelCommunityRating": "Community rating:",
- "LabelVoteCount": "Vote count:",
- "LabelCriticRating": "Critic rating:",
- "LabelCriticRatingSummary": "Critic rating summary:",
- "LabelAwardSummary": "Award summary:",
- "LabelWebsite": "Website:",
- "LabelTagline": "Tagline:",
- "LabelOverview": "Overview:",
- "LabelShortOverview": "Short overview:",
- "LabelReleaseDate": "Release date:",
- "LabelYear": "\u05e9\u05e0\u05d4",
- "LabelPlaceOfBirth": "Place of birth:",
- "LabelAirDays": "Air days:",
- "LabelAirTime": "Air time:",
- "LabelRuntimeMinutes": "Run time (minutes):",
- "LabelParentalRating": "Parental rating:",
- "LabelCustomRating": "Custom rating:",
- "LabelOriginalAspectRatio": "Original aspect ratio:",
- "LabelPlayers": "Players:",
- "Label3DFormat": "3D format:",
- "HeaderAlternateEpisodeNumbers": "Alternate Episode Numbers",
- "LabelDvdSeasonNumber": "Dvd season number:",
- "LabelDvdEpisodeNumber": "Dvd episode number:",
- "LabelAbsoluteEpisodeNumber": "Absolute episode number:",
- "HeaderSpecialEpisodeInfo": "Special Episode Info",
- "LabelAirsBeforeSeason": "Airs before season:",
- "LabelAirsAfterSeason": "Airs after season:",
- "LabelAirsBeforeEpisode": "Airs before episode:",
- "HeaderExternalIds": "External Ids:",
- "HeaderDisplaySettings": "Display Settings",
- "LabelTreatImageAs": "Treat image as:",
- "LabelDisplayOrder": "Display order:",
- "Countries": "Countries",
- "Genres": "Genres",
- "HeaderPlotKeywords": "Plot Keywords",
- "Studios": "Studios",
- "Tags": "Tags",
- "HeaderMetadataSettings": "Metadata Settings",
- "People": "People",
+ "LabelPath": "\u05e0\u05ea\u05d9\u05d1:",
+ "LabelTitle": "\u05db\u05d5\u05ea\u05e8\u05ea:",
+ "LabelOriginalTitle": "\u05db\u05d5\u05ea\u05e8\u05ea \u05de\u05e7\u05d5\u05e8\u05d9\u05ea:",
+ "LabelSortTitle": "\u05de\u05d9\u05d9\u05df \u05db\u05d5\u05ea\u05e8\u05ea:",
+ "LabelDateAdded": "\u05ea\u05d0\u05e8\u05d9\u05da \u05d4\u05d5\u05e1\u05e3:",
+ "ConfigureDateAdded": "\u05d4\u05d2\u05d3\u05e8 \u05db\u05d9\u05e6\u05d3 \u05ea\u05d0\u05e8\u05d9\u05da \u05d4\u05ea\u05d5\u05e1\u05e4\u05ea \u05e0\u05e7\u05d1\u05e2 \u05d1\u05dc\u05d5\u05d7 \u05d4\u05de\u05d7\u05d5\u05d5\u05e0\u05d9\u05dd \u05e9\u05dc \u05e9\u05e8\u05ea Amby \u05ea\u05d7\u05ea \u05d4\u05d2\u05d3\u05e8\u05d5\u05ea \u05e1\u05e4\u05e8\u05d9\u05d4",
+ "LabelStatus": "\u05e1\u05d8\u05d8\u05d5\u05e1:",
+ "LabelArtists": "\u05d0\u05d5\u05de\u05e0\u05d9\u05dd:",
+ "LabelArtistsHelp": "\u05d4\u05e4\u05e8\u05d3 \u05de\u05e8\u05d5\u05d1\u05d9\u05dd \u05d1\u05d0\u05de\u05e6\u05e2\u05d5\u05ea;",
+ "LabelAlbumArtists": "\u05d0\u05dc\u05d1\u05d5\u05dd \u05d0\u05d5\u05de\u05e0\u05d9\u05dd:",
+ "LabelAlbum": "\u05d0\u05dc\u05d1\u05d5\u05dd:",
+ "LabelCommunityRating": "\u05d3\u05d9\u05e8\u05d5\u05d2 \u05d4\u05e7\u05d4\u05d9\u05dc\u05d4:",
+ "LabelVoteCount": "\u05e1\u05e4\u05d9\u05e8\u05ea \u05d4\u05e6\u05d1\u05e2\u05d5\u05ea:",
+ "LabelCriticRating": "\u05d3\u05d9\u05e8\u05d5\u05d2 \u05d1\u05d9\u05e7\u05d5\u05e8\u05ea:",
+ "LabelCriticRatingSummary": "\u05e1\u05d9\u05db\u05d5\u05dd \u05d3\u05d9\u05e8\u05d5\u05d2\u05d9\u05dd \u05d1\u05d9\u05e7\u05d5\u05e8\u05ea\u05d9\u05d9\u05dd:",
+ "LabelAwardSummary": "\u05e1\u05d9\u05db\u05d5\u05dd \u05e4\u05e8\u05e1:",
+ "LabelWebsite": "\u05d0\u05ea\u05e8:",
+ "LabelTagline": "\u05e9\u05d5\u05e8\u05ea \u05ea\u05d9\u05d5\u05d2:",
+ "LabelOverview": "\u05e1\u05e7\u05d9\u05e8\u05d4 \u05db\u05dc\u05dc\u05d9\u05ea:",
+ "LabelShortOverview": "\u05e1\u05e7\u05d9\u05e8\u05d4 \u05e7\u05e6\u05e8\u05d4:",
+ "LabelReleaseDate": "\u05ea\u05d0\u05e8\u05d9\u05da \u05d4\u05d5\u05e6\u05d0\u05d4:",
+ "LabelYear": "\u05e9\u05e0\u05d4:",
+ "LabelPlaceOfBirth": "\u05de\u05e7\u05d5\u05dd \u05dc\u05d9\u05d3\u05d4:",
+ "LabelAirDays": "\u05d9\u05de\u05d9 \u05d0\u05d5\u05d9\u05e8:",
+ "LabelAirTime": "\u05d6\u05de\u05df \u05d0\u05d5\u05d5\u05d9\u05e8:",
+ "LabelRuntimeMinutes": "\u05d6\u05de\u05df \u05e8\u05d9\u05e6\u05d4 (\u05d3\u05e7\u05d5\u05ea):",
+ "LabelParentalRating": "\u05d3\u05d9\u05e8\u05d5\u05d2 \u05d4\u05d4\u05d5\u05e8\u05d9\u05dd:",
+ "LabelCustomRating": "\u05d3\u05d9\u05e8\u05d5\u05d2 \u05de\u05d5\u05ea\u05d0\u05dd \u05d0\u05d9\u05e9\u05d9\u05ea:",
+ "LabelOriginalAspectRatio": "\u05d9\u05d7\u05e1 \u05d2\u05d5\u05d1\u05d4-\u05e8\u05d5\u05d7\u05d1 \u05de\u05e7\u05d5\u05e8\u05d9:",
+ "LabelPlayers": "\u05e9\u05d7\u05e7\u05e0\u05d9\u05dd:",
+ "Label3DFormat": "\u05e4\u05d5\u05e8\u05de\u05d8 \u05ea\u05dc\u05ea-\u05de\u05de\u05d3\u05d9:",
+ "HeaderAlternateEpisodeNumbers": "\u05de\u05e1\u05e4\u05e8\u05d9\u05dd \u05d7\u05dc\u05d5\u05e4\u05d9\u05d9\u05dd",
+ "LabelDvdSeasonNumber": "\u05de\u05e1\u05e4\u05e8 \u05d4\u05e2\u05d5\u05e0\u05d4 \u05e9\u05dc \u05d4- DVD:",
+ "LabelDvdEpisodeNumber": "\u05de\u05e1\u05e4\u05e8 \u05e4\u05e8\u05e7 DVD:",
+ "LabelAbsoluteEpisodeNumber": "\u05de\u05e1\u05e4\u05e8 \u05e4\u05e8\u05e7 \u05de\u05d5\u05d7\u05dc\u05d8:",
+ "HeaderSpecialEpisodeInfo": "\u05e4\u05e8\u05d8\u05d9 \u05d0\u05e4\u05d9\u05d6\u05d5\u05d3\u05d5\u05ea \u05de\u05d9\u05d5\u05d7\u05d3\u05d5\u05ea",
+ "LabelAirsBeforeSeason": "\u05d1\u05d0\u05d5\u05d5\u05d9\u05e8 \u05dc\u05e4\u05e0\u05d9 \u05d4\u05e2\u05d5\u05e0\u05d4:",
+ "LabelAirsAfterSeason": "\u05d1\u05d0\u05d5\u05d5\u05d9\u05e8 \u05d0\u05d7\u05e8\u05d9 \u05d4\u05e2\u05d5\u05e0\u05d4:",
+ "LabelAirsBeforeEpisode": "\u05d1\u05d0\u05d5\u05d5\u05d9\u05e8 \u05dc\u05e4\u05e0\u05d9 \u05e4\u05e8\u05e7:",
+ "HeaderExternalIds": "\u05de\u05d6\u05d4\u05d9\u05dd \u05d7\u05d9\u05e6\u05d5\u05e0\u05d9\u05d9\u05dd:",
+ "HeaderDisplaySettings": "\u05d4\u05d2\u05d3\u05e8\u05d5\u05ea \u05ea\u05e6\u05d5\u05d2\u05d4",
+ "LabelTreatImageAs": "\u05d4\u05ea\u05d9\u05d9\u05d7\u05e1 \u05dc\u05ea\u05de\u05d5\u05e0\u05d4 \u05db:",
+ "LabelDisplayOrder": "\u05e1\u05d3\u05e8 \u05ea\u05e6\u05d5\u05d2\u05d4:",
+ "Countries": "\u05de\u05d3\u05d9\u05e0\u05d5\u05ea",
+ "Genres": "\u05d6'\u05d0\u05e0\u05e8\u05d9\u05dd",
+ "HeaderPlotKeywords": "\u05de\u05d2\u05e8\u05e9 \u05de\u05d9\u05dc\u05d5\u05ea \u05de\u05e4\u05ea\u05d7",
+ "Studios": "\u05d0\u05d5\u05dc\u05e4\u05e0\u05d9",
+ "Tags": "\u05ea\u05d2\u05d9\u05dd",
+ "HeaderMetadataSettings": "\u05d4\u05d2\u05d3\u05e8\u05d5\u05ea \u05de\u05d8\u05d0 \u05e0\u05ea\u05d5\u05e0\u05d9\u05dd",
+ "People": "\u05d0\u05e0\u05e9\u05d9\u05dd",
"LabelMetadataDownloadLanguage": "\u05e9\u05e4\u05ea \u05d4\u05d5\u05e8\u05d3\u05d4 \u05de\u05d5\u05e2\u05d3\u05e4\u05ea:",
- "LabelLockItemToPreventChanges": "Lock this item to prevent future changes",
- "MessageLeaveEmptyToInherit": "Leave empty to inherit settings from a parent item, or the global default value.",
+ "LabelLockItemToPreventChanges": "\u05e0\u05e2\u05dc \u05e4\u05e8\u05d9\u05d8 \u05d6\u05d4 \u05db\u05d3\u05d9 \u05dc\u05de\u05e0\u05d5\u05e2 \u05e9\u05d9\u05e0\u05d5\u05d9\u05d9\u05dd \u05e2\u05ea\u05d9\u05d3\u05d9\u05d9\u05dd",
+ "MessageLeaveEmptyToInherit": "\u05d4\u05e9\u05d0\u05e8 \u05e8\u05d9\u05e7 \u05db\u05d3\u05d9 \u05dc\u05e8\u05e9\u05ea \u05d0\u05ea \u05d4\u05d4\u05d2\u05d3\u05e8\u05d5\u05ea \u05de\u05e4\u05e8\u05d9\u05d8 \u05d0\u05d1, \u05d0\u05d5 \u05d0\u05ea \u05e2\u05e8\u05da \u05d1\u05e8\u05d9\u05e8\u05ea \u05d4\u05de\u05d7\u05d3\u05dc \u05d4\u05d2\u05dc\u05d5\u05d1\u05dc\u05d9.",
"LabelCountry": "\u05de\u05d3\u05d9\u05e0\u05d4:",
- "LabelDynamicExternalId": "{0} Id:",
- "LabelBirthYear": "Birth year:",
- "LabelBirthDate": "Birth date:",
- "LabelDeathDate": "Death date:",
- "LabelEndDate": "End date:",
- "LabelSeasonNumber": "Season number:",
- "LabelEpisodeNumber": "Episode number:",
- "LabelTrackNumber": "Track number:",
- "LabelNumber": "Number:",
- "LabelDiscNumber": "Disc number:",
- "LabelParentNumber": "Parent number:",
- "SortName": "Sort name",
- "ReleaseDate": "Release date",
+ "LabelDynamicExternalId": "{0} \u05ea\u05e2\u05d5\u05d3\u05ea \u05d6\u05d4\u05d5\u05ea:",
+ "LabelBirthYear": "\u05e9\u05e0\u05ea \u05dc\u05d9\u05d3\u05d4:",
+ "LabelBirthDate": "\u05ea\u05d0\u05e8\u05d9\u05da \u05dc\u05d9\u05d3\u05d4:",
+ "LabelDeathDate": "\u05ea\u05d0\u05e8\u05d9\u05da \u05d4\u05de\u05d5\u05d5\u05ea:",
+ "LabelEndDate": "\u05ea\u05d0\u05e8\u05d9\u05da \u05e1\u05d9\u05d5\u05dd:",
+ "LabelSeasonNumber": "\u05de\u05e1\u05e4\u05e8 \u05e2\u05d5\u05e0\u05d4:",
+ "LabelEpisodeNumber": "\u05de\u05e1\u05e4\u05e8 \u05e4\u05e8\u05e7:",
+ "LabelTrackNumber": "\u05e7\u05d8\u05e2 \u05de\u05e1\u05e4\u05e8:",
+ "LabelNumber": "\u05de\u05e1\u05e4\u05e8:",
+ "LabelDiscNumber": "\u05de\u05e1\u05e4\u05e8 \u05d3\u05d9\u05e1\u05e7:",
+ "LabelParentNumber": "\u05de\u05e1\u05e4\u05e8 \u05d0\u05d1:",
+ "SortName": "\u05de\u05d9\u05d9\u05df \u05dc\u05e4\u05d9 \u05e9\u05dd",
+ "ReleaseDate": "\u05ea\u05d0\u05e8\u05d9\u05da \u05e9\u05d9\u05d7\u05e8\u05d5\u05e8",
"Continuing": "\u05de\u05de\u05e9\u05d9\u05da",
"Ended": "\u05d4\u05e1\u05ea\u05d9\u05d9\u05dd",
- "HeaderEnabledFields": "Enabled Fields",
- "HeaderEnabledFieldsHelp": "Uncheck a field to lock it and prevent it's data from being changed.",
- "Backdrops": "Backdrops",
- "Images": "Images",
- "Keywords": "Keywords",
- "Runtime": "Runtime",
- "ProductionLocations": "Production locations",
- "BirthLocation": "Birth location",
- "ParentalRating": "Parental Rating",
- "Name": "Name",
- "Overview": "Overview",
- "LabelType": "\u05e1\u05d5\u05d2",
- "LabelPersonRole": "Role:",
- "LabelPersonRoleHelp": "Example: Ice cream truck driver",
- "Actor": "Actor",
- "Composer": "Composer",
- "Director": "Director",
- "GuestStar": "Guest star",
- "Producer": "Producer",
- "Writer": "Writer",
- "MessageNoSyncJobsFound": "No sync jobs found. Create sync jobs using the Sync buttons found throughout the app.",
- "MessageNoDownloadsFound": "No offline downloads. Make your media available offline by clicking Make Available Offline throughout the app.",
- "InstallingPackage": "Installing {0}",
+ "HeaderEnabledFields": "\u05e9\u05d3\u05d5\u05ea \u05d6\u05de\u05d9\u05e0\u05d9\u05dd",
+ "HeaderEnabledFieldsHelp": "\u05d1\u05d8\u05dc \u05d0\u05ea \u05d4\u05e1\u05d9\u05de\u05d5\u05df \u05d1\u05e9\u05d3\u05d4 \u05db\u05d3\u05d9 \u05dc\u05e0\u05e2\u05d5\u05dc \u05d0\u05d5\u05ea\u05d5 \u05d5\u05dc\u05de\u05e0\u05d5\u05e2 \u05e9\u05d9\u05e0\u05d5\u05d9 \u05d1\u05e0\u05ea\u05d5\u05e0\u05d9\u05dd.",
+ "Backdrops": "\u05ea\u05e4\u05d0\u05d5\u05e8\u05d5\u05ea",
+ "Images": "\u05ea\u05de\u05d5\u05e0\u05d5\u05ea",
+ "Keywords": "\u05de\u05d9\u05dc\u05d5\u05ea \u05de\u05e4\u05ea\u05d7",
+ "Runtime": "\u05d6\u05de\u05df \u05e8\u05d9\u05e6\u05d4",
+ "ProductionLocations": "\u05de\u05d9\u05e7\u05d5\u05de\u05d9 \u05d9\u05d9\u05e6\u05d5\u05e8",
+ "BirthLocation": "\u05de\u05d9\u05e7\u05d5\u05dd \u05dc\u05d9\u05d3\u05d4",
+ "ParentalRating": "\u05d3\u05d9\u05e8\u05d5\u05d2 \u05d4\u05d4\u05d5\u05e8\u05d9\u05dd",
+ "Name": "\u05e9\u05dd",
+ "Overview": "\u05e1\u05e7\u05d9\u05e8\u05d4 \u05db\u05dc\u05dc\u05d9\u05ea",
+ "LabelType": "\u05e1\u05d5\u05d2:",
+ "LabelPersonRole": "\u05ea\u05e4\u05e7\u05d9\u05d3:",
+ "LabelPersonRoleHelp": "\u05d3\u05d5\u05d2\u05de\u05d4: \u05e0\u05d4\u05d2 \u05de\u05e9\u05d0\u05d9\u05ea \u05d2\u05dc\u05d9\u05d3\u05d4",
+ "Actor": "\u05e9\u05d7\u05e7\u05df",
+ "Composer": "\u05de\u05dc\u05d7\u05d9\u05df",
+ "Director": "\u05de\u05e0\u05d4\u05dc",
+ "GuestStar": "\u05db\u05d5\u05db\u05d1 \u05d0\u05d5\u05e8\u05d7",
+ "Producer": "\u05d1\u05de\u05d0\u05d9",
+ "Writer": "\u05db\u05d5\u05ea\u05d1",
+ "MessageNoSyncJobsFound": "\u05dc\u05d0 \u05e0\u05de\u05e6\u05d0\u05d5 \u05de\u05e9\u05d9\u05de\u05d5\u05ea \u05e1\u05d9\u05e0\u05db\u05e8\u05d5\u05df. \u05e6\u05d5\u05e8 \u05e2\u05d1\u05d5\u05d3\u05d5\u05ea \u05e1\u05d9\u05e0\u05db\u05e8\u05d5\u05df \u05d1\u05d0\u05de\u05e6\u05e2\u05d5\u05ea \u05dc\u05d7\u05e6\u05e0\u05d9 \u05d4\u05e1\u05e0\u05db\u05e8\u05d5\u05df \u05e9\u05e0\u05de\u05e6\u05d0\u05d5 \u05d1\u05db\u05dc \u05d4\u05d0\u05e4\u05dc\u05d9\u05e7\u05e6\u05d9\u05d4.",
+ "MessageNoDownloadsFound": "\u05d0\u05d9\u05df \u05d4\u05d5\u05e8\u05d3\u05d5\u05ea \u05dc\u05d0 \u05de\u05e7\u05d5\u05d5\u05e0\u05d5\u05ea. \u05d4\u05e4\u05d5\u05da \u05d0\u05ea \u05d4\u05de\u05d3\u05d9\u05d4 \u05dc\u05d6\u05de\u05d9\u05e0\u05d4 \u05d1\u05de\u05e6\u05d1 \u05dc\u05d0 \u05de\u05e7\u05d5\u05d5\u05df \u05e2\u05dc \u05d9\u05d3\u05d9 \u05dc\u05d7\u05d9\u05e6\u05d4 \u05e2\u05dc \u05d4\u05e4\u05d5\u05da \u05dc\u05d6\u05de\u05d9\u05df \u05d1\u05de\u05e6\u05d1 \u05d6\u05de\u05d9\u05df \u05d1\u05db\u05dc \u05d4\u05d0\u05e4\u05dc\u05d9\u05e7\u05e6\u05d9\u05d4.",
+ "InstallingPackage": "\u05de\u05ea\u05e7\u05d9\u05df {0}",
"PackageInstallCompleted": "{0} installation completed.",
- "PackageInstallFailed": "{0} installation failed.",
- "PackageInstallCancelled": "{0} installation cancelled.",
- "SeriesYearToPresent": "{0} - Present",
- "ValueOneItem": "1 item",
- "ValueOneSong": "1 song",
- "ValueSongCount": "{0} songs",
- "ValueOneMovie": "1 movie",
- "ValueMovieCount": "{0} movies",
- "ValueOneSeries": "1 series",
- "ValueSeriesCount": "{0} series",
- "ValueOneEpisode": "1 episode",
- "ValueEpisodeCount": "{0} episodes",
- "ValueOneGame": "1 game",
- "ValueGameCount": "{0} games",
- "ValueOneAlbum": "1 album",
- "ValueAlbumCount": "{0} albums",
- "ValueOneMusicVideo": "1 music video",
- "ValueMusicVideoCount": "{0} music videos",
- "ValueMinutes": "{0} min",
- "HeaderIdentifyItemHelp": "Enter one or more search criteria. Remove criteria to increase search results.",
- "PleaseEnterNameOrId": "Please enter a name or an external Id.",
- "MessageItemSaved": "Item saved.",
- "SearchResults": "Search Results",
- "SyncToOtherDevice": "Sync to other device",
- "MakeAvailableOffline": "Make available offline",
- "ServerNameIsRestarting": "Emby Server - {0} is restarting.",
- "ServerNameIsShuttingDown": "Emby Server - {0} is shutting down.",
- "HeaderDeleteItems": "Delete Items",
- "ConfirmDeleteItems": "Deleting these items will delete them from both the file system and your media library. Are you sure you wish to continue?",
- "PleaseRestartServerName": "Please restart Emby Server - {0}.",
- "SyncJobCreated": "Sync job created.",
- "LabelSyncTo": "Sync to:",
- "LabelSyncJobName": "Sync job name:",
- "LabelQuality": "Quality:",
- "LabelSyncNoTargetsHelp": "It looks like you don't currently have any apps that support offline downloading.",
- "DownloadScheduled": "Download scheduled",
- "HeaderSyncRequiresSub": "Sync requires an active Emby Premiere subscription.",
- "LearnMore": "Learn more",
- "LabelProfile": "Profile:",
- "LabelBitrateMbps": "Bitrate (Mbps):",
- "SyncUnwatchedVideosOnly": "Sync unwatched videos only",
- "SyncUnwatchedVideosOnlyHelp": "Only unwatched videos will be downloaded, and videos will be removed from the device as they are watched.",
- "AutomaticallySyncNewContent": "Automatically sync new content",
- "AutomaticallySyncNewContentHelp": "New content added to this folder will be automatically downloaded to the device.",
- "LabelItemLimit": "Item limit:",
- "LabelItemLimitHelp": "Optional. Set a limit to the number of items that will be downloaded.",
- "PleaseSelectDeviceToSyncTo": "Please select a device to download to.",
- "Screenshots": "Screenshots",
- "MoveRight": "Move right",
- "MoveLeft": "Move left",
- "ConfirmDeleteImage": "Delete image?",
- "HeaderEditImages": "Edit Images",
- "Settings": "Settings",
- "ShowIndicatorsFor": "Show indicators for:",
- "NewEpisodes": "New episodes",
- "HDPrograms": "HD programs",
- "LiveBroadcasts": "Live broadcasts",
- "Premieres": "Premieres",
- "RepeatEpisodes": "Repeat episodes",
- "DvrSubscriptionRequired": "Emby DVR requires an active Emby Premiere subscription.",
- "HeaderCancelRecording": "Cancel Recording",
- "CancelRecording": "Cancel recording",
- "HeaderKeepRecording": "Keep Recording",
- "HeaderCancelSeries": "Cancel Series",
- "HeaderKeepSeries": "Keep Series",
- "HeaderLearnMore": "Learn More",
- "DeleteMedia": "Delete media",
- "SeriesSettings": "Series settings",
- "HeaderRecordingOptions": "Recording Options",
- "CancelSeries": "Cancel series",
- "DoNotRecord": "Do not record",
- "HeaderSeriesOptions": "Series Options",
- "LabelChannels": "Channels:",
- "ChannelNameOnly": "Channel {0} only",
- "Anytime": "Anytime",
- "AroundTime": "Around {0}",
- "LabelAirtime": "Airtime:",
- "AllChannels": "All channels",
- "LabelRecord": "Record:",
- "NewEpisodesOnly": "New episodes only",
- "AllEpisodes": "All episodes",
- "LabelStartWhenPossible": "Start when possible:",
- "LabelStopWhenPossible": "Stop when possible:",
- "MinutesBefore": "minutes before",
- "MinutesAfter": "minutes after",
- "SkipEpisodesAlreadyInMyLibrary": "Don't record episodes that are already in my library",
- "SkipEpisodesAlreadyInMyLibraryHelp": "Episodes will be compared using season and episode numbers, when available.",
- "LabelKeepUpTo": "Keep up to:",
- "AsManyAsPossible": "As many as possible",
- "DefaultErrorMessage": "There was an error processing the request. Please try again later.",
- "LabelKeep:": "Keep:",
- "UntilIDelete": "Until I delete",
- "UntilSpaceNeeded": "Until space needed",
- "Categories": "Categories",
- "Sports": "Sports",
- "News": "News",
- "Movies": "Movies",
- "Kids": "Kids",
- "EnableColorCodedBackgrounds": "Enable color coded backgrounds",
- "SortChannelsBy": "Sort channels by:",
- "RecentlyWatched": "Recently watched",
- "ChannelNumber": "Channel number",
- "HeaderBenefitsEmbyPremiere": "Benefits of Emby Premiere",
- "ThankYouForTryingEnjoyOneMinute": "Please enjoy one minute of playback. Thank you for trying Emby.",
- "HeaderTryPlayback": "Try Playback",
- "HowDidYouPay": "How did you pay?",
- "IHaveEmbyPremiere": "I have Emby Premiere",
- "IPurchasedThisApp": "I purchased this app",
- "ButtonRestorePreviousPurchase": "Restore Purchase",
+ "PackageInstallFailed": "\u05d4\u05d4\u05ea\u05e7\u05e0\u05d4 {0} \u05e0\u05db\u05e9\u05dc\u05d4.",
+ "PackageInstallCancelled": "{0} \u05d4\u05d4\u05ea\u05e7\u05e0\u05d4 \u05d1\u05d5\u05d8\u05dc\u05d4.",
+ "SeriesYearToPresent": "{0} - \u05d4\u05d9\u05d5\u05dd",
+ "ValueOneItem": "\u05e4\u05e8\u05d9\u05d8 1",
+ "ValueOneSong": "\u05e9\u05d9\u05e8 1",
+ "ValueSongCount": "{0} \u05e9\u05d9\u05e8\u05d9\u05dd",
+ "ValueOneMovie": "\u05e1\u05e8\u05d8 1",
+ "ValueMovieCount": "{0} \u05e1\u05e8\u05d8\u05d9\u05dd",
+ "ValueOneSeries": "1 \u05e1\u05d3\u05e8\u05d4",
+ "ValueSeriesCount": "{0} \u05e1\u05d3\u05e8\u05d5\u05ea",
+ "ValueOneEpisode": "\u05e4\u05e8\u05e7 1",
+ "ValueEpisodeCount": "{0} \u05e4\u05e8\u05e7\u05d9\u05dd",
+ "ValueOneGame": "\u05de\u05e9\u05d7\u05e7 1",
+ "ValueGameCount": "{0} \u05de\u05e9\u05d7\u05e7\u05d9\u05dd",
+ "ValueOneAlbum": "\u05d0\u05dc\u05d1\u05d5\u05dd 1",
+ "ValueAlbumCount": "{0} \u05d0\u05dc\u05d1\u05d5\u05de\u05d9\u05dd",
+ "ValueOneMusicVideo": "\u05d5\u05d9\u05d3\u05d0\u05d5 \u05e7\u05dc\u05d9\u05e4 1",
+ "ValueMusicVideoCount": "{0} \u05d5\u05d9\u05d3\u05d0\u05d5 \u05e7\u05dc\u05d9\u05e4\u05d9\u05dd",
+ "ValueMinutes": "{0} \u05d3\u05e7\u05d5\u05ea",
+ "HeaderIdentifyItemHelp": "\u05d4\u05d6\u05df \u05e7\u05e8\u05d9\u05d8\u05e8\u05d9\u05d5\u05df \u05d7\u05d9\u05e4\u05d5\u05e9 \u05d0\u05d7\u05d3 \u05d0\u05d5 \u05d9\u05d5\u05ea\u05e8. \u05d4\u05e1\u05e8 \u05e7\u05e8\u05d9\u05d8\u05e8\u05d9\u05d5\u05e0\u05d9\u05dd \u05db\u05d3\u05d9 \u05dc\u05d4\u05d2\u05d3\u05d9\u05dc \u05d0\u05ea \u05ea\u05d5\u05e6\u05d0\u05d5\u05ea \u05d4\u05d7\u05d9\u05e4\u05d5\u05e9.",
+ "PleaseEnterNameOrId": "\u05d4\u05d6\u05df \u05e9\u05dd \u05d0\u05d5 \u05de\u05d6\u05d4\u05d4 \u05d7\u05d9\u05e6\u05d5\u05e0\u05d9.",
+ "MessageItemSaved": "\u05d4\u05e4\u05e8\u05d9\u05d8 \u05e0\u05e9\u05de\u05e8.",
+ "SearchResults": "\u05ea\u05d5\u05e6\u05d0\u05d5\u05ea \u05d7\u05d9\u05e4\u05d5\u05e9",
+ "SyncToOtherDevice": "\u05e1\u05e0\u05db\u05e8\u05df \u05dc\u05de\u05db\u05e9\u05d9\u05e8 \u05d0\u05d7\u05e8",
+ "MakeAvailableOffline": "\u05d4\u05e4\u05d5\u05da \u05dc\u05d6\u05de\u05d9\u05df \u05d1\u05de\u05e6\u05d1 \u05dc\u05d0 \u05de\u05e7\u05d5\u05d5\u05df",
+ "ServerNameIsRestarting": "\u05e9\u05e8\u05ea Emby - {0} \u05de\u05d5\u05e4\u05e2\u05dc \u05de\u05d7\u05d3\u05e9.",
+ "ServerNameIsShuttingDown": "\u05e9\u05e8\u05ea Emby - {0} \u05e0\u05db\u05d1\u05d4.",
+ "HeaderDeleteItems": "\u05de\u05d7\u05d9\u05e7\u05ea \u05e4\u05e8\u05d9\u05d8\u05d9\u05dd",
+ "ConfirmDeleteItems": "\u05de\u05d7\u05d9\u05e7\u05ea \u05e4\u05e8\u05d9\u05d8\u05d9\u05dd \u05d0\u05dc\u05d4 \u05ea\u05de\u05d7\u05e7 \u05d0\u05d5\u05ea\u05dd \u05d4\u05df \u05de\u05de\u05e2\u05e8\u05db\u05ea \u05d4\u05e7\u05d1\u05e6\u05d9\u05dd \u05d5\u05d4\u05df \u05de\u05e1\u05e4\u05e8\u05d9\u05d9\u05ea \u05d4\u05de\u05d3\u05d9\u05d4 \u05e9\u05dc\u05da. \u05d4\u05d0\u05dd \u05d0\u05ea\u05d4 \u05d1\u05d8\u05d5\u05d7 \u05e9\u05d1\u05e8\u05e6\u05d5\u05e0\u05da \u05dc\u05d4\u05de\u05e9\u05d9\u05da?",
+ "PleaseRestartServerName": "\u05d0\u05e0\u05d0 \u05d4\u05e4\u05e2\u05dc \u05de\u05d7\u05d3\u05e9 \u05d0\u05ea \u05e9\u05e8\u05ea Emby - {0}.",
+ "SyncJobCreated": "\u05e0\u05d5\u05e6\u05e8\u05d4 \u05e2\u05d1\u05d5\u05d3\u05ea \u05e1\u05d9\u05e0\u05db\u05e8\u05d5\u05df.",
+ "LabelSyncTo": "\u05e1\u05e0\u05db\u05e8\u05df \u05dc:",
+ "LabelSyncJobName": "\u05e1\u05e0\u05db\u05e8\u05df \u05d0\u05ea \u05e9\u05dd \u05d4\u05e2\u05d1\u05d5\u05d3\u05d4:",
+ "LabelQuality": "\u05d0\u05d9\u05db\u05d5\u05ea:",
+ "LabelSyncNoTargetsHelp": "\u05e0\u05e8\u05d0\u05d4 \u05e9\u05d0\u05d9\u05df \u05dc\u05da \u05db\u05e8\u05d2\u05e2 \u05d0\u05e4\u05dc\u05d9\u05e7\u05e6\u05d9\u05d5\u05ea \u05d4\u05ea\u05d5\u05de\u05db\u05d5\u05ea \u05d1\u05d4\u05d5\u05e8\u05d3\u05d4 \u05d1\u05de\u05e6\u05d1 \u05dc\u05d0 \u05de\u05e7\u05d5\u05d5\u05df.",
+ "DownloadScheduled": "\u05d4\u05d5\u05e8\u05d3\u05d4 \u05de\u05ea\u05d5\u05d6\u05de\u05e0\u05ea",
+ "HeaderSyncRequiresSub": "\u05d4\u05e1\u05d9\u05e0\u05db\u05e8\u05d5\u05df \u05d3\u05d5\u05e8\u05e9 \u05de\u05e0\u05d5\u05d9 \u05e4\u05e2\u05d9\u05dc \u05e9\u05dc Emby Premiere.",
+ "LearnMore": "\u05dc\u05de\u05d3 \u05e2\u05d5\u05d3",
+ "LabelProfile": "\u05e4\u05e8\u05d5\u05e4\u05d9\u05dc:",
+ "LabelBitrateMbps": "\u05e7\u05e6\u05d1 \u05e1\u05d9\u05d1\u05d9\u05d5\u05ea (Mbps):",
+ "SyncUnwatchedVideosOnly": "\u05e1\u05e0\u05db\u05e8\u05df \u05e1\u05e8\u05d8\u05d5\u05e0\u05d9\u05dd \u05dc\u05d0 \u05de\u05e1\u05d5\u05e0\u05db\u05e8\u05e0\u05d9\u05dd \u05d1\u05dc\u05d1\u05d3",
+ "SyncUnwatchedVideosOnlyHelp": "\u05e8\u05e7 \u05e1\u05e8\u05d8\u05d5\u05e0\u05d9\u05dd \u05e9\u05dc\u05d0 \u05d4\u05d5\u05e8\u05d3\u05d5 \u05d9\u05d5\u05e8\u05d3\u05d5, \u05d5\u05e1\u05e8\u05d8\u05d5\u05e0\u05d9\u05dd \u05d9\u05d5\u05e1\u05e8\u05d5 \u05de\u05d4\u05de\u05db\u05e9\u05d9\u05e8 \u05db\u05e4\u05d9 \u05e9\u05d4\u05dd \u05e6\u05e4\u05d5.",
+ "AutomaticallySyncNewContent": "\u05e1\u05e0\u05db\u05e8\u05df \u05ea\u05d5\u05db\u05df \u05d7\u05d3\u05e9 \u05d1\u05d0\u05d5\u05e4\u05df \u05d0\u05d5\u05d8\u05d5\u05de\u05d8\u05d9",
+ "AutomaticallySyncNewContentHelp": "\u05ea\u05d5\u05db\u05df \u05d7\u05d3\u05e9 \u05e9\u05e0\u05d5\u05e1\u05e3 \u05dc\u05ea\u05d9\u05e7\u05d9\u05d4 \u05d6\u05d5 \u05d9\u05d5\u05e8\u05d9\u05d3 \u05d1\u05d0\u05d5\u05e4\u05df \u05d0\u05d5\u05d8\u05d5\u05de\u05d8\u05d9 \u05dc\u05de\u05db\u05e9\u05d9\u05e8.",
+ "LabelItemLimit": "\u05de\u05d2\u05d1\u05dc\u05ea \u05e4\u05e8\u05d9\u05d8:",
+ "LabelItemLimitHelp": "\u05d0\u05d5\u05e4\u05e6\u05d9\u05d5\u05e0\u05d0\u05dc\u05d9. \u05d4\u05d2\u05d3\u05e8 \u05de\u05d2\u05d1\u05dc\u05d4 \u05dc\u05de\u05e1\u05e4\u05e8 \u05d4\u05e4\u05e8\u05d9\u05d8\u05d9\u05dd \u05e9\u05d9\u05d5\u05e8\u05d3\u05d5.",
+ "PleaseSelectDeviceToSyncTo": "\u05d1\u05d7\u05e8 \u05de\u05db\u05e9\u05d9\u05e8 \u05dc\u05d4\u05d5\u05e8\u05d3\u05d4 \u05d0\u05dc\u05d9\u05d5.",
+ "Screenshots": "\u05e6\u05d9\u05dc\u05d5\u05de\u05d9 \u05de\u05e1\u05da",
+ "MoveRight": "\u05d6\u05d5\u05d6 \u05d9\u05de\u05d9\u05e0\u05d4",
+ "MoveLeft": "\u05d6\u05d5\u05d6 \u05e9\u05de\u05d0\u05dc\u05d4",
+ "ConfirmDeleteImage": "\u05dc\u05de\u05d7\u05d5\u05e7 \u05d0\u05ea \u05d4\u05ea\u05de\u05d5\u05e0\u05d4?",
+ "HeaderEditImages": "\u05e2\u05e8\u05d5\u05da \u05ea\u05de\u05d5\u05e0\u05d5\u05ea",
+ "Settings": "\u05d4\u05d2\u05d3\u05e8\u05d5\u05ea",
+ "ShowIndicatorsFor": "\u05d4\u05e6\u05d2 \u05de\u05d7\u05d5\u05d5\u05e0\u05d9\u05dd \u05e2\u05d1\u05d5\u05e8:",
+ "NewEpisodes": "\u05e4\u05e8\u05e7\u05d9\u05dd \u05d7\u05d3\u05e9\u05d9\u05dd",
+ "HDPrograms": "\u05ea\u05d5\u05db\u05e0\u05d9\u05d5\u05ea HD",
+ "LiveBroadcasts": "\u05e9\u05d9\u05d3\u05d5\u05e8\u05d9\u05dd \u05d7\u05d9\u05d9\u05dd",
+ "Premieres": "\u05d1\u05db\u05d5\u05e8\u05d5\u05ea",
+ "RepeatEpisodes": "\u05d7\u05d6\u05d5\u05e8 \u05e2\u05dc \u05e4\u05e8\u05e7\u05d9\u05dd",
+ "DvrSubscriptionRequired": "\u05d0\u05de\u05d1\u05d9 DVR \u05d3\u05d5\u05e8\u05e9\u05ea \u05de\u05e0\u05d5\u05d9 \u05e4\u05e2\u05d9\u05dc \u05e9\u05dc Emby Premiere.",
+ "HeaderCancelRecording": "\u05d1\u05d9\u05d8\u05d5\u05dc \u05d4\u05e7\u05dc\u05d8\u05d4",
+ "CancelRecording": "\u05d1\u05d9\u05d8\u05d5\u05dc \u05d4\u05e7\u05dc\u05d8\u05d4",
+ "HeaderKeepRecording": "\u05e9\u05de\u05d5\u05e8 \u05e2\u05dc \u05d4\u05e7\u05dc\u05d8\u05d4",
+ "HeaderCancelSeries": "\u05d1\u05d8\u05dc \u05e1\u05d3\u05e8\u05d4",
+ "HeaderKeepSeries": "\u05e9\u05de\u05d5\u05e8 \u05e1\u05d3\u05e8\u05d4",
+ "HeaderLearnMore": "\u05dc\u05de\u05d3 \u05e2\u05d5\u05d3",
+ "DeleteMedia": "\u05de\u05d7\u05e7 \u05de\u05d3\u05d9\u05d4",
+ "SeriesSettings": "\u05d4\u05d2\u05d3\u05e8\u05d5\u05ea \u05e1\u05d3\u05e8\u05d4",
+ "HeaderRecordingOptions": "\u05d0\u05e4\u05e9\u05e8\u05d5\u05d9\u05d5\u05ea \u05d4\u05e7\u05dc\u05d8\u05d4",
+ "CancelSeries": "\u05d1\u05d8\u05dc \u05e1\u05d3\u05e8\u05d4",
+ "DoNotRecord": "\u05d0\u05dc \u05ea\u05e7\u05dc\u05d9\u05d8",
+ "HeaderSeriesOptions": "\u05d0\u05e4\u05e9\u05e8\u05d5\u05d9\u05d5\u05ea \u05e1\u05d3\u05e8\u05d4",
+ "LabelChannels": "\u05e2\u05e8\u05d5\u05e6\u05d9\u05dd:",
+ "ChannelNameOnly": "\u05e2\u05e8\u05d5\u05e5 {0} \u05d1\u05dc\u05d1\u05d3",
+ "Anytime": "\u05d1\u05db\u05dc \u05e2\u05ea",
+ "AroundTime": "\u05d1\u05e1\u05d1\u05d9\u05d1\u05d5\u05ea {0}",
+ "LabelAirtime": "\u05d6\u05de\u05df \u05d0\u05d5\u05d5\u05d9\u05e8:",
+ "AllChannels": "\u05db\u05dc \u05d4\u05e2\u05e8\u05d5\u05e6\u05d9\u05dd",
+ "LabelRecord": "\u05d4\u05e7\u05dc\u05d8\u05d4:",
+ "NewEpisodesOnly": "\u05e4\u05e8\u05e7\u05d9\u05dd \u05d7\u05d3\u05e9\u05d9\u05dd \u05d1\u05dc\u05d1\u05d3",
+ "AllEpisodes": "\u05db\u05dc \u05d4\u05e4\u05e8\u05e7\u05d9\u05dd",
+ "LabelStartWhenPossible": "\u05d4\u05ea\u05d7\u05dc \u05d1\u05e8\u05d2\u05e2 \u05e9\u05e0\u05d9\u05ea\u05df:",
+ "LabelStopWhenPossible": "\u05d4\u05e4\u05e1\u05e7 \u05d1\u05e8\u05d2\u05e2 \u05e9\u05d0\u05e4\u05e9\u05e8",
+ "MinutesBefore": "\u05d3\u05e7\u05d5\u05ea \u05dc\u05e4\u05e0\u05d9",
+ "MinutesAfter": "\u05d3\u05e7\u05d5\u05ea \u05d0\u05d7\u05e8\u05d9",
+ "SkipEpisodesAlreadyInMyLibrary": "\u05d0\u05dc \u05ea\u05e7\u05dc\u05d9\u05d8\u05d5 \u05e4\u05e8\u05e7\u05d9\u05dd \u05e9\u05db\u05d1\u05e8 \u05e0\u05de\u05e6\u05d0\u05d9\u05dd \u05d1\u05e1\u05e4\u05e8\u05d9\u05d9\u05d4 \u05e9\u05dc\u05d9",
+ "SkipEpisodesAlreadyInMyLibraryHelp": "\u05e4\u05e8\u05e7\u05d9\u05dd \u05d9\u05d5\u05e9\u05d5\u05d5 \u05d1\u05d0\u05de\u05e6\u05e2\u05d5\u05ea \u05d4\u05e2\u05d5\u05e0\u05d4 \u05d5\u05d0\u05ea \u05d4\u05e4\u05e8\u05e7 \u05e4\u05e8\u05e7, \u05db\u05d0\u05e9\u05e8 \u05d6\u05de\u05d9\u05df.",
+ "LabelKeepUpTo": "\u05e9\u05de\u05d5\u05e8 \u05e2\u05d3 \u05dc:",
+ "AsManyAsPossible": "\u05db\u05de\u05d4 \u05e9\u05d9\u05d5\u05ea\u05e8",
+ "DefaultErrorMessage": "\u05d0\u05d9\u05e8\u05e2\u05d4 \u05e9\u05d2\u05d9\u05d0\u05d4 \u05d1\u05e2\u05d9\u05d1\u05d5\u05d3 \u05d4\u05d1\u05e7\u05e9\u05d4. \u05d1\u05d1\u05e7\u05e9\u05d4 \u05e0\u05e1\u05d4 \u05e9\u05d5\u05d1 \u05de\u05d0\u05d5\u05d7\u05e8 \u05d9\u05d5\u05ea\u05e8.",
+ "LabelKeep:": "\u05e9\u05de\u05d5\u05e8:",
+ "UntilIDelete": "\u05e2\u05d3 \u05e9\u05d0\u05de\u05d7\u05e7",
+ "UntilSpaceNeeded": "\u05e2\u05d3 \u05d4\u05e6\u05d5\u05e8\u05da \u05d1\u05de\u05e8\u05d7\u05d1",
+ "Categories": "\u05e7\u05d8\u05d2\u05d5\u05e8\u05d9\u05d5\u05ea",
+ "Sports": "\u05e1\u05e4\u05d5\u05e8\u05d8",
+ "News": "\u05d7\u05d3\u05e9\u05d5\u05ea",
+ "Movies": "\u05e1\u05e8\u05d8\u05d9\u05dd",
+ "Kids": "\u05d9\u05dc\u05d3\u05d9\u05dd",
+ "EnableColorCodedBackgrounds": "\u05d0\u05e4\u05e9\u05e8 \u05e8\u05e7\u05e2 \u05d1\u05e6\u05d1\u05e2 \u05de\u05e7\u05d5\u05d3\u05d3",
+ "SortChannelsBy": "\u05de\u05d9\u05d9\u05df \u05e2\u05e8\u05d5\u05e6\u05d9\u05dd \u05dc\u05e4\u05d9:",
+ "RecentlyWatched": "\u05e0\u05e6\u05e4\u05d4 \u05dc\u05d0\u05d7\u05e8\u05d5\u05e0\u05d4",
+ "ChannelNumber": "\u05de\u05e1\u05e4\u05e8 \u05e2\u05e8\u05d5\u05e5",
+ "HeaderBenefitsEmbyPremiere": "\u05d4\u05d9\u05ea\u05e8\u05d5\u05e0\u05d5\u05ea \u05e9\u05dc \u05d0\u05de\u05d1\u05d9 Premiere",
+ "ThankYouForTryingEnjoyOneMinute": "\u05d0\u05e0\u05d0 \u05dc\u05d9\u05d4\u05e0\u05d5\u05ea \u05d3\u05e7\u05d4 \u05d0\u05d7\u05ea \u05e9\u05dc \u05d4\u05e9\u05de\u05e2\u05d4. \u05ea\u05d5\u05d3\u05d4 \u05e9\u05e0\u05d9\u05e1\u05d9\u05ea \u05d0\u05ea \u05d0\u05de\u05d1\u05d9.",
+ "HeaderTryPlayback": "\u05e0\u05e1\u05d4 \u05d4\u05e4\u05e2\u05dc\u05d4",
+ "HowDidYouPay": "\u05d0\u05d9\u05da \u05e9\u05d9\u05dc\u05de\u05ea?",
+ "IHaveEmbyPremiere": "\u05d9\u05e9 \u05dc\u05d9 \u05d0\u05de\u05d1\u05d9 Premiere",
+ "IPurchasedThisApp": "\u05e8\u05db\u05e9\u05ea\u05d9 \u05d0\u05ea \u05d4\u05d0\u05e4\u05dc\u05d9\u05e7\u05e6\u05d9\u05d4 \u05d4\u05d6\u05d5",
+ "ButtonRestorePreviousPurchase": "\u05e9\u05d7\u05d6\u05e8 \u05e8\u05db\u05d9\u05e9\u05d4",
"ButtonUnlockWithPurchase": "Unlock with Purchase",
"ButtonUnlockPrice": "Unlock {0}",
"EmbyPremiereMonthlyWithPrice": "Emby Premiere Monthly {0}",
diff --git a/dashboard-ui/connectlogin.html b/dashboard-ui/connectlogin.html
index 53af8f5ca1..bf39280f7c 100644
--- a/dashboard-ui/connectlogin.html
+++ b/dashboard-ui/connectlogin.html
@@ -1,6 +1,6 @@