mirror of
https://github.com/4gray/iptvnator.git
synced 2026-10-16 22:26:16 -08:00
fix(pwa): harden self-hosted runtime boundaries
This commit is contained in:
1 parent
ff9c13058c
commit
55efc24608
57 files changed
+984
-257
No files matched your search
@@ -5,6 +5,7 @@ import {
|
||||
} from '@angular/common/http';
|
||||
import {
|
||||
ApplicationConfig,
|
||||
inject,
|
||||
importProvidersFrom,
|
||||
provideZoneChangeDetection,
|
||||
} from '@angular/core';
|
||||
@@ -19,7 +20,7 @@ import { provideStoreDevtools } from '@ngrx/store-devtools';
|
||||
import { TranslateLoader, TranslateModule } from '@ngx-translate/core';
|
||||
import { TranslateHttpLoader } from '@ngx-translate/http-loader';
|
||||
import { PlaylistEffects, playlistReducer } from '@iptvnator/m3u-state';
|
||||
import { NgxIndexedDBModule, NgxIndexedDBService } from 'ngx-indexed-db';
|
||||
import { NgxIndexedDBModule } from 'ngx-indexed-db';
|
||||
import { NgxSkeletonLoaderModule } from 'ngx-skeleton-loader';
|
||||
import {
|
||||
PORTAL_EXTERNAL_PLAYBACK,
|
||||
@@ -95,9 +96,9 @@ export function getInitialLanguage(): string {
|
||||
*/
|
||||
export function DataFactory() {
|
||||
if (window.electron) {
|
||||
return new ElectronService();
|
||||
return inject(ElectronService);
|
||||
}
|
||||
return new PwaService();
|
||||
return inject(PwaService);
|
||||
}
|
||||
|
||||
export const appConfig: ApplicationConfig = {
|
||||
@@ -135,7 +136,6 @@ export const appConfig: ApplicationConfig = {
|
||||
{
|
||||
provide: DataService,
|
||||
useFactory: DataFactory,
|
||||
deps: [NgxIndexedDBService, HttpClient],
|
||||
},
|
||||
{
|
||||
provide: PORTAL_PLAYER,
|
||||
|
||||
@@ -2,9 +2,11 @@ import { Component, signal } from '@angular/core';
|
||||
import { ComponentFixture, TestBed } from '@angular/core/testing';
|
||||
import { By } from '@angular/platform-browser';
|
||||
import { ResolvedPortalPlayback } from '@iptvnator/shared/interfaces';
|
||||
import { EmbeddedMpvOverlayVisibilityService } from '../../../../libs/ui/playback/src/lib/embedded-mpv-player/embedded-mpv-overlay-visibility.service';
|
||||
import { EmbeddedMpvPlayerComponent } from '../../../../libs/ui/playback/src/lib/embedded-mpv-player/embedded-mpv-player.component';
|
||||
import { EmbeddedMpvSessionController } from '../../../../libs/ui/playback/src/lib/embedded-mpv-player/embedded-mpv-session-controller';
|
||||
import {
|
||||
EmbeddedMpvOverlayVisibilityService,
|
||||
EmbeddedMpvPlayerComponent,
|
||||
EmbeddedMpvSessionController,
|
||||
} from '@iptvnator/ui/playback';
|
||||
|
||||
@Component({
|
||||
imports: [EmbeddedMpvPlayerComponent],
|
||||
|
||||
@@ -391,11 +391,11 @@
|
||||
"PLAYBACK_DIAGNOSTICS": {
|
||||
"UNSUPPORTED_CONTAINER": {
|
||||
"TITLE": "This stream container is likely unsupported by the browser player",
|
||||
"DESCRIPTION": "Chromium/Electron may not decode this container inline. Try MPV or VLC for broader codec support."
|
||||
"DESCRIPTION": "The browser player may not decode this container inline. Copy the stream URL and open it in an external player such as MPV, VLC, or IINA for broader codec support."
|
||||
},
|
||||
"UNSUPPORTED_CODEC": {
|
||||
"TITLE": "This stream codec is likely unsupported by the browser player",
|
||||
"DESCRIPTION": "The stream advertises codecs that the built-in Chromium player may not decode. MPV or VLC can often play it."
|
||||
"DESCRIPTION": "The stream advertises codecs that the browser player may not decode. Copy the stream URL and open it in an external player such as MPV, VLC, or IINA."
|
||||
},
|
||||
"MEDIA_DECODE_ERROR": {
|
||||
"TITLE": "The browser player could not decode this stream",
|
||||
@@ -407,7 +407,7 @@
|
||||
},
|
||||
"BROWSER_ACCESS_ERROR": {
|
||||
"TITLE": "The browser player could not access this stream",
|
||||
"DESCRIPTION": "The request may be blocked by CORS, mixed content, or provider header/proxy restrictions. MPV or VLC can often bypass browser-player access limits."
|
||||
"DESCRIPTION": "The request may be blocked by CORS, mixed content, or provider header/proxy restrictions. Copy the stream URL and open it in an external player such as MPV, VLC, or IINA to bypass browser-player access limits."
|
||||
},
|
||||
"DRM_OR_ENCRYPTION": {
|
||||
"TITLE": "This stream may be encrypted or DRM-protected",
|
||||
@@ -418,7 +418,7 @@
|
||||
"DESCRIPTION": "The stream failed in the built-in player, but the error did not identify a specific codec, container, or network cause."
|
||||
},
|
||||
"NATIVE_FALLBACK_TITLE": "Open it in a native player instead",
|
||||
"INLINE_FAILURE_TITLE": "Check the stream or try again",
|
||||
"INLINE_FAILURE_TITLE": "Copy the URL or try again",
|
||||
"ACTION_OPEN_MPV": "Open in MPV",
|
||||
"ACTION_OPEN_VLC": "Open in VLC",
|
||||
"ACTION_OPEN_MPV_HINT": "configured player",
|
||||
|
||||
@@ -391,11 +391,11 @@
|
||||
"PLAYBACK_DIAGNOSTICS": {
|
||||
"UNSUPPORTED_CONTAINER": {
|
||||
"TITLE": "This stream container is likely unsupported by the browser player",
|
||||
"DESCRIPTION": "Chromium/Electron may not decode this container inline. Try MPV or VLC for broader codec support."
|
||||
"DESCRIPTION": "The browser player may not decode this container inline. Copy the stream URL and open it in an external player such as MPV, VLC, or IINA for broader codec support."
|
||||
},
|
||||
"UNSUPPORTED_CODEC": {
|
||||
"TITLE": "This stream codec is likely unsupported by the browser player",
|
||||
"DESCRIPTION": "The stream advertises codecs that the built-in Chromium player may not decode. MPV or VLC can often play it."
|
||||
"DESCRIPTION": "The stream advertises codecs that the browser player may not decode. Copy the stream URL and open it in an external player such as MPV, VLC, or IINA."
|
||||
},
|
||||
"MEDIA_DECODE_ERROR": {
|
||||
"TITLE": "The browser player could not decode this stream",
|
||||
@@ -407,7 +407,7 @@
|
||||
},
|
||||
"BROWSER_ACCESS_ERROR": {
|
||||
"TITLE": "The browser player could not access this stream",
|
||||
"DESCRIPTION": "The request may be blocked by CORS, mixed content, or provider header/proxy restrictions. MPV or VLC can often bypass browser-player access limits."
|
||||
"DESCRIPTION": "The request may be blocked by CORS, mixed content, or provider header/proxy restrictions. Copy the stream URL and open it in an external player such as MPV, VLC, or IINA to bypass browser-player access limits."
|
||||
},
|
||||
"DRM_OR_ENCRYPTION": {
|
||||
"TITLE": "This stream may be encrypted or DRM-protected",
|
||||
@@ -418,7 +418,7 @@
|
||||
"DESCRIPTION": "The stream failed in the built-in player, but the error did not identify a specific codec, container, or network cause."
|
||||
},
|
||||
"NATIVE_FALLBACK_TITLE": "Open it in a native player instead",
|
||||
"INLINE_FAILURE_TITLE": "Check the stream or try again",
|
||||
"INLINE_FAILURE_TITLE": "Copy the URL or try again",
|
||||
"ACTION_OPEN_MPV": "Open in MPV",
|
||||
"ACTION_OPEN_VLC": "Open in VLC",
|
||||
"ACTION_OPEN_MPV_HINT": "configured player",
|
||||
|
||||
@@ -391,11 +391,11 @@
|
||||
"PLAYBACK_DIAGNOSTICS": {
|
||||
"UNSUPPORTED_CONTAINER": {
|
||||
"TITLE": "This stream container is likely unsupported by the browser player",
|
||||
"DESCRIPTION": "Chromium/Electron may not decode this container inline. Try MPV or VLC for broader codec support."
|
||||
"DESCRIPTION": "The browser player may not decode this container inline. Copy the stream URL and open it in an external player such as MPV, VLC, or IINA for broader codec support."
|
||||
},
|
||||
"UNSUPPORTED_CODEC": {
|
||||
"TITLE": "This stream codec is likely unsupported by the browser player",
|
||||
"DESCRIPTION": "The stream advertises codecs that the built-in Chromium player may not decode. MPV or VLC can often play it."
|
||||
"DESCRIPTION": "The stream advertises codecs that the browser player may not decode. Copy the stream URL and open it in an external player such as MPV, VLC, or IINA."
|
||||
},
|
||||
"MEDIA_DECODE_ERROR": {
|
||||
"TITLE": "The browser player could not decode this stream",
|
||||
@@ -407,7 +407,7 @@
|
||||
},
|
||||
"BROWSER_ACCESS_ERROR": {
|
||||
"TITLE": "The browser player could not access this stream",
|
||||
"DESCRIPTION": "The request may be blocked by CORS, mixed content, or provider header/proxy restrictions. MPV or VLC can often bypass browser-player access limits."
|
||||
"DESCRIPTION": "The request may be blocked by CORS, mixed content, or provider header/proxy restrictions. Copy the stream URL and open it in an external player such as MPV, VLC, or IINA to bypass browser-player access limits."
|
||||
},
|
||||
"DRM_OR_ENCRYPTION": {
|
||||
"TITLE": "This stream may be encrypted or DRM-protected",
|
||||
@@ -418,7 +418,7 @@
|
||||
"DESCRIPTION": "The stream failed in the built-in player, but the error did not identify a specific codec, container, or network cause."
|
||||
},
|
||||
"NATIVE_FALLBACK_TITLE": "Open it in a native player instead",
|
||||
"INLINE_FAILURE_TITLE": "Check the stream or try again",
|
||||
"INLINE_FAILURE_TITLE": "Copy the URL or try again",
|
||||
"ACTION_OPEN_MPV": "Open in MPV",
|
||||
"ACTION_OPEN_VLC": "Open in VLC",
|
||||
"ACTION_OPEN_MPV_HINT": "configured player",
|
||||
|
||||
@@ -391,11 +391,11 @@
|
||||
"PLAYBACK_DIAGNOSTICS": {
|
||||
"UNSUPPORTED_CONTAINER": {
|
||||
"TITLE": "This stream container is likely unsupported by the browser player",
|
||||
"DESCRIPTION": "Chromium/Electron may not decode this container inline. Try MPV or VLC for broader codec support."
|
||||
"DESCRIPTION": "The browser player may not decode this container inline. Copy the stream URL and open it in an external player such as MPV, VLC, or IINA for broader codec support."
|
||||
},
|
||||
"UNSUPPORTED_CODEC": {
|
||||
"TITLE": "This stream codec is likely unsupported by the browser player",
|
||||
"DESCRIPTION": "The stream advertises codecs that the built-in Chromium player may not decode. MPV or VLC can often play it."
|
||||
"DESCRIPTION": "The stream advertises codecs that the browser player may not decode. Copy the stream URL and open it in an external player such as MPV, VLC, or IINA."
|
||||
},
|
||||
"MEDIA_DECODE_ERROR": {
|
||||
"TITLE": "The browser player could not decode this stream",
|
||||
@@ -407,7 +407,7 @@
|
||||
},
|
||||
"BROWSER_ACCESS_ERROR": {
|
||||
"TITLE": "The browser player could not access this stream",
|
||||
"DESCRIPTION": "The request may be blocked by CORS, mixed content, or provider header/proxy restrictions. MPV or VLC can often bypass browser-player access limits."
|
||||
"DESCRIPTION": "The request may be blocked by CORS, mixed content, or provider header/proxy restrictions. Copy the stream URL and open it in an external player such as MPV, VLC, or IINA to bypass browser-player access limits."
|
||||
},
|
||||
"DRM_OR_ENCRYPTION": {
|
||||
"TITLE": "This stream may be encrypted or DRM-protected",
|
||||
@@ -418,7 +418,7 @@
|
||||
"DESCRIPTION": "The stream failed in the built-in player, but the error did not identify a specific codec, container, or network cause."
|
||||
},
|
||||
"NATIVE_FALLBACK_TITLE": "Open it in a native player instead",
|
||||
"INLINE_FAILURE_TITLE": "Check the stream or try again",
|
||||
"INLINE_FAILURE_TITLE": "Copy the URL or try again",
|
||||
"ACTION_OPEN_MPV": "Open in MPV",
|
||||
"ACTION_OPEN_VLC": "Open in VLC",
|
||||
"ACTION_OPEN_MPV_HINT": "configured player",
|
||||
|
||||
@@ -391,11 +391,11 @@
|
||||
"PLAYBACK_DIAGNOSTICS": {
|
||||
"UNSUPPORTED_CONTAINER": {
|
||||
"TITLE": "This stream container is likely unsupported by the browser player",
|
||||
"DESCRIPTION": "Chromium/Electron may not decode this container inline. Try MPV or VLC for broader codec support."
|
||||
"DESCRIPTION": "The browser player may not decode this container inline. Copy the stream URL and open it in an external player such as MPV, VLC, or IINA for broader codec support."
|
||||
},
|
||||
"UNSUPPORTED_CODEC": {
|
||||
"TITLE": "This stream codec is likely unsupported by the browser player",
|
||||
"DESCRIPTION": "The stream advertises codecs that the built-in Chromium player may not decode. MPV or VLC can often play it."
|
||||
"DESCRIPTION": "The stream advertises codecs that the browser player may not decode. Copy the stream URL and open it in an external player such as MPV, VLC, or IINA."
|
||||
},
|
||||
"MEDIA_DECODE_ERROR": {
|
||||
"TITLE": "The browser player could not decode this stream",
|
||||
@@ -407,7 +407,7 @@
|
||||
},
|
||||
"BROWSER_ACCESS_ERROR": {
|
||||
"TITLE": "The browser player could not access this stream",
|
||||
"DESCRIPTION": "The request may be blocked by CORS, mixed content, or provider header/proxy restrictions. MPV or VLC can often bypass browser-player access limits."
|
||||
"DESCRIPTION": "The request may be blocked by CORS, mixed content, or provider header/proxy restrictions. Copy the stream URL and open it in an external player such as MPV, VLC, or IINA to bypass browser-player access limits."
|
||||
},
|
||||
"DRM_OR_ENCRYPTION": {
|
||||
"TITLE": "This stream may be encrypted or DRM-protected",
|
||||
@@ -418,7 +418,7 @@
|
||||
"DESCRIPTION": "The stream failed in the built-in player, but the error did not identify a specific codec, container, or network cause."
|
||||
},
|
||||
"NATIVE_FALLBACK_TITLE": "Open it in a native player instead",
|
||||
"INLINE_FAILURE_TITLE": "Check the stream or try again",
|
||||
"INLINE_FAILURE_TITLE": "Copy the URL or try again",
|
||||
"ACTION_OPEN_MPV": "Open in MPV",
|
||||
"ACTION_OPEN_VLC": "Open in VLC",
|
||||
"ACTION_OPEN_MPV_HINT": "configured player",
|
||||
|
||||
@@ -391,11 +391,11 @@
|
||||
"PLAYBACK_DIAGNOSTICS": {
|
||||
"UNSUPPORTED_CONTAINER": {
|
||||
"TITLE": "This stream container is likely unsupported by the browser player",
|
||||
"DESCRIPTION": "Chromium/Electron may not decode this container inline. Try MPV or VLC for broader codec support."
|
||||
"DESCRIPTION": "The browser player may not decode this container inline. Copy the stream URL and open it in an external player such as MPV, VLC, or IINA for broader codec support."
|
||||
},
|
||||
"UNSUPPORTED_CODEC": {
|
||||
"TITLE": "This stream codec is likely unsupported by the browser player",
|
||||
"DESCRIPTION": "The stream advertises codecs that the built-in Chromium player may not decode. MPV or VLC can often play it."
|
||||
"DESCRIPTION": "The stream advertises codecs that the browser player may not decode. Copy the stream URL and open it in an external player such as MPV, VLC, or IINA."
|
||||
},
|
||||
"MEDIA_DECODE_ERROR": {
|
||||
"TITLE": "The browser player could not decode this stream",
|
||||
@@ -407,7 +407,7 @@
|
||||
},
|
||||
"BROWSER_ACCESS_ERROR": {
|
||||
"TITLE": "The browser player could not access this stream",
|
||||
"DESCRIPTION": "The request may be blocked by CORS, mixed content, or provider header/proxy restrictions. MPV or VLC can often bypass browser-player access limits."
|
||||
"DESCRIPTION": "The request may be blocked by CORS, mixed content, or provider header/proxy restrictions. Copy the stream URL and open it in an external player such as MPV, VLC, or IINA to bypass browser-player access limits."
|
||||
},
|
||||
"DRM_OR_ENCRYPTION": {
|
||||
"TITLE": "This stream may be encrypted or DRM-protected",
|
||||
@@ -418,7 +418,7 @@
|
||||
"DESCRIPTION": "The stream failed in the built-in player, but the error did not identify a specific codec, container, or network cause."
|
||||
},
|
||||
"NATIVE_FALLBACK_TITLE": "Open it in a native player instead",
|
||||
"INLINE_FAILURE_TITLE": "Check the stream or try again",
|
||||
"INLINE_FAILURE_TITLE": "Copy the URL or try again",
|
||||
"ACTION_OPEN_MPV": "Open in MPV",
|
||||
"ACTION_OPEN_VLC": "Open in VLC",
|
||||
"ACTION_OPEN_MPV_HINT": "configured player",
|
||||
|
||||
@@ -391,11 +391,11 @@
|
||||
"PLAYBACK_DIAGNOSTICS": {
|
||||
"UNSUPPORTED_CONTAINER": {
|
||||
"TITLE": "This stream container is likely unsupported by the browser player",
|
||||
"DESCRIPTION": "Chromium/Electron may not decode this container inline. Try MPV or VLC for broader codec support."
|
||||
"DESCRIPTION": "The browser player may not decode this container inline. Copy the stream URL and open it in an external player such as MPV, VLC, or IINA for broader codec support."
|
||||
},
|
||||
"UNSUPPORTED_CODEC": {
|
||||
"TITLE": "This stream codec is likely unsupported by the browser player",
|
||||
"DESCRIPTION": "The stream advertises codecs that the built-in Chromium player may not decode. MPV or VLC can often play it."
|
||||
"DESCRIPTION": "The stream advertises codecs that the browser player may not decode. Copy the stream URL and open it in an external player such as MPV, VLC, or IINA."
|
||||
},
|
||||
"MEDIA_DECODE_ERROR": {
|
||||
"TITLE": "The browser player could not decode this stream",
|
||||
@@ -407,7 +407,7 @@
|
||||
},
|
||||
"BROWSER_ACCESS_ERROR": {
|
||||
"TITLE": "The browser player could not access this stream",
|
||||
"DESCRIPTION": "The request may be blocked by CORS, mixed content, or provider header/proxy restrictions. MPV or VLC can often bypass browser-player access limits."
|
||||
"DESCRIPTION": "The request may be blocked by CORS, mixed content, or provider header/proxy restrictions. Copy the stream URL and open it in an external player such as MPV, VLC, or IINA to bypass browser-player access limits."
|
||||
},
|
||||
"DRM_OR_ENCRYPTION": {
|
||||
"TITLE": "This stream may be encrypted or DRM-protected",
|
||||
@@ -418,7 +418,7 @@
|
||||
"DESCRIPTION": "The stream failed in the built-in player, but the error did not identify a specific codec, container, or network cause."
|
||||
},
|
||||
"NATIVE_FALLBACK_TITLE": "Open it in a native player instead",
|
||||
"INLINE_FAILURE_TITLE": "Check the stream or try again",
|
||||
"INLINE_FAILURE_TITLE": "Copy the URL or try again",
|
||||
"ACTION_OPEN_MPV": "Open in MPV",
|
||||
"ACTION_OPEN_VLC": "Open in VLC",
|
||||
"ACTION_OPEN_MPV_HINT": "configured player",
|
||||
|
||||
@@ -391,11 +391,11 @@
|
||||
"PLAYBACK_DIAGNOSTICS": {
|
||||
"UNSUPPORTED_CONTAINER": {
|
||||
"TITLE": "This stream container is likely unsupported by the browser player",
|
||||
"DESCRIPTION": "Chromium/Electron may not decode this container inline. Try MPV or VLC for broader codec support."
|
||||
"DESCRIPTION": "The browser player may not decode this container inline. Copy the stream URL and open it in an external player such as MPV, VLC, or IINA for broader codec support."
|
||||
},
|
||||
"UNSUPPORTED_CODEC": {
|
||||
"TITLE": "This stream codec is likely unsupported by the browser player",
|
||||
"DESCRIPTION": "The stream advertises codecs that the built-in Chromium player may not decode. MPV or VLC can often play it."
|
||||
"DESCRIPTION": "The stream advertises codecs that the browser player may not decode. Copy the stream URL and open it in an external player such as MPV, VLC, or IINA."
|
||||
},
|
||||
"MEDIA_DECODE_ERROR": {
|
||||
"TITLE": "The browser player could not decode this stream",
|
||||
@@ -407,7 +407,7 @@
|
||||
},
|
||||
"BROWSER_ACCESS_ERROR": {
|
||||
"TITLE": "The browser player could not access this stream",
|
||||
"DESCRIPTION": "The request may be blocked by CORS, mixed content, or provider header/proxy restrictions. MPV or VLC can often bypass browser-player access limits."
|
||||
"DESCRIPTION": "The request may be blocked by CORS, mixed content, or provider header/proxy restrictions. Copy the stream URL and open it in an external player such as MPV, VLC, or IINA to bypass browser-player access limits."
|
||||
},
|
||||
"DRM_OR_ENCRYPTION": {
|
||||
"TITLE": "This stream may be encrypted or DRM-protected",
|
||||
@@ -418,7 +418,7 @@
|
||||
"DESCRIPTION": "The stream failed in the built-in player, but the error did not identify a specific codec, container, or network cause."
|
||||
},
|
||||
"NATIVE_FALLBACK_TITLE": "Open it in a native player instead",
|
||||
"INLINE_FAILURE_TITLE": "Check the stream or try again",
|
||||
"INLINE_FAILURE_TITLE": "Copy the URL or try again",
|
||||
"ACTION_OPEN_MPV": "Open in MPV",
|
||||
"ACTION_OPEN_VLC": "Open in VLC",
|
||||
"ACTION_OPEN_MPV_HINT": "configured player",
|
||||
|
||||
@@ -391,11 +391,11 @@
|
||||
"PLAYBACK_DIAGNOSTICS": {
|
||||
"UNSUPPORTED_CONTAINER": {
|
||||
"TITLE": "This stream container is likely unsupported by the browser player",
|
||||
"DESCRIPTION": "Chromium/Electron may not decode this container inline. Try MPV or VLC for broader codec support."
|
||||
"DESCRIPTION": "The browser player may not decode this container inline. Copy the stream URL and open it in an external player such as MPV, VLC, or IINA for broader codec support."
|
||||
},
|
||||
"UNSUPPORTED_CODEC": {
|
||||
"TITLE": "This stream codec is likely unsupported by the browser player",
|
||||
"DESCRIPTION": "The stream advertises codecs that the built-in Chromium player may not decode. MPV or VLC can often play it."
|
||||
"DESCRIPTION": "The stream advertises codecs that the browser player may not decode. Copy the stream URL and open it in an external player such as MPV, VLC, or IINA."
|
||||
},
|
||||
"MEDIA_DECODE_ERROR": {
|
||||
"TITLE": "The browser player could not decode this stream",
|
||||
@@ -407,7 +407,7 @@
|
||||
},
|
||||
"BROWSER_ACCESS_ERROR": {
|
||||
"TITLE": "The browser player could not access this stream",
|
||||
"DESCRIPTION": "The request may be blocked by CORS, mixed content, or provider header/proxy restrictions. MPV or VLC can often bypass browser-player access limits."
|
||||
"DESCRIPTION": "The request may be blocked by CORS, mixed content, or provider header/proxy restrictions. Copy the stream URL and open it in an external player such as MPV, VLC, or IINA to bypass browser-player access limits."
|
||||
},
|
||||
"DRM_OR_ENCRYPTION": {
|
||||
"TITLE": "This stream may be encrypted or DRM-protected",
|
||||
@@ -418,7 +418,7 @@
|
||||
"DESCRIPTION": "The stream failed in the built-in player, but the error did not identify a specific codec, container, or network cause."
|
||||
},
|
||||
"NATIVE_FALLBACK_TITLE": "Open it in a native player instead",
|
||||
"INLINE_FAILURE_TITLE": "Check the stream or try again",
|
||||
"INLINE_FAILURE_TITLE": "Copy the URL or try again",
|
||||
"ACTION_OPEN_MPV": "Open in MPV",
|
||||
"ACTION_OPEN_VLC": "Open in VLC",
|
||||
"ACTION_OPEN_MPV_HINT": "configured player",
|
||||
|
||||
@@ -391,11 +391,11 @@
|
||||
"PLAYBACK_DIAGNOSTICS": {
|
||||
"UNSUPPORTED_CONTAINER": {
|
||||
"TITLE": "This stream container is likely unsupported by the browser player",
|
||||
"DESCRIPTION": "Chromium/Electron may not decode this container inline. Try MPV or VLC for broader codec support."
|
||||
"DESCRIPTION": "The browser player may not decode this container inline. Copy the stream URL and open it in an external player such as MPV, VLC, or IINA for broader codec support."
|
||||
},
|
||||
"UNSUPPORTED_CODEC": {
|
||||
"TITLE": "This stream codec is likely unsupported by the browser player",
|
||||
"DESCRIPTION": "The stream advertises codecs that the built-in Chromium player may not decode. MPV or VLC can often play it."
|
||||
"DESCRIPTION": "The stream advertises codecs that the browser player may not decode. Copy the stream URL and open it in an external player such as MPV, VLC, or IINA."
|
||||
},
|
||||
"MEDIA_DECODE_ERROR": {
|
||||
"TITLE": "The browser player could not decode this stream",
|
||||
@@ -407,7 +407,7 @@
|
||||
},
|
||||
"BROWSER_ACCESS_ERROR": {
|
||||
"TITLE": "The browser player could not access this stream",
|
||||
"DESCRIPTION": "The request may be blocked by CORS, mixed content, or provider header/proxy restrictions. MPV or VLC can often bypass browser-player access limits."
|
||||
"DESCRIPTION": "The request may be blocked by CORS, mixed content, or provider header/proxy restrictions. Copy the stream URL and open it in an external player such as MPV, VLC, or IINA to bypass browser-player access limits."
|
||||
},
|
||||
"DRM_OR_ENCRYPTION": {
|
||||
"TITLE": "This stream may be encrypted or DRM-protected",
|
||||
@@ -418,7 +418,7 @@
|
||||
"DESCRIPTION": "The stream failed in the built-in player, but the error did not identify a specific codec, container, or network cause."
|
||||
},
|
||||
"NATIVE_FALLBACK_TITLE": "Open it in a native player instead",
|
||||
"INLINE_FAILURE_TITLE": "Check the stream or try again",
|
||||
"INLINE_FAILURE_TITLE": "Copy the URL or try again",
|
||||
"ACTION_OPEN_MPV": "Open in MPV",
|
||||
"ACTION_OPEN_VLC": "Open in VLC",
|
||||
"ACTION_OPEN_MPV_HINT": "configured player",
|
||||
|
||||
@@ -391,11 +391,11 @@
|
||||
"PLAYBACK_DIAGNOSTICS": {
|
||||
"UNSUPPORTED_CONTAINER": {
|
||||
"TITLE": "This stream container is likely unsupported by the browser player",
|
||||
"DESCRIPTION": "Chromium/Electron may not decode this container inline. Try MPV or VLC for broader codec support."
|
||||
"DESCRIPTION": "The browser player may not decode this container inline. Copy the stream URL and open it in an external player such as MPV, VLC, or IINA for broader codec support."
|
||||
},
|
||||
"UNSUPPORTED_CODEC": {
|
||||
"TITLE": "This stream codec is likely unsupported by the browser player",
|
||||
"DESCRIPTION": "The stream advertises codecs that the built-in Chromium player may not decode. MPV or VLC can often play it."
|
||||
"DESCRIPTION": "The stream advertises codecs that the browser player may not decode. Copy the stream URL and open it in an external player such as MPV, VLC, or IINA."
|
||||
},
|
||||
"MEDIA_DECODE_ERROR": {
|
||||
"TITLE": "The browser player could not decode this stream",
|
||||
@@ -407,7 +407,7 @@
|
||||
},
|
||||
"BROWSER_ACCESS_ERROR": {
|
||||
"TITLE": "The browser player could not access this stream",
|
||||
"DESCRIPTION": "The request may be blocked by CORS, mixed content, or provider header/proxy restrictions. MPV or VLC can often bypass browser-player access limits."
|
||||
"DESCRIPTION": "The request may be blocked by CORS, mixed content, or provider header/proxy restrictions. Copy the stream URL and open it in an external player such as MPV, VLC, or IINA to bypass browser-player access limits."
|
||||
},
|
||||
"DRM_OR_ENCRYPTION": {
|
||||
"TITLE": "This stream may be encrypted or DRM-protected",
|
||||
@@ -418,7 +418,7 @@
|
||||
"DESCRIPTION": "The stream failed in the built-in player, but the error did not identify a specific codec, container, or network cause."
|
||||
},
|
||||
"NATIVE_FALLBACK_TITLE": "Open it in a native player instead",
|
||||
"INLINE_FAILURE_TITLE": "Check the stream or try again",
|
||||
"INLINE_FAILURE_TITLE": "Copy the URL or try again",
|
||||
"ACTION_OPEN_MPV": "Open in MPV",
|
||||
"ACTION_OPEN_VLC": "Open in VLC",
|
||||
"ACTION_OPEN_MPV_HINT": "configured player",
|
||||
|
||||
@@ -391,11 +391,11 @@
|
||||
"PLAYBACK_DIAGNOSTICS": {
|
||||
"UNSUPPORTED_CONTAINER": {
|
||||
"TITLE": "This stream container is likely unsupported by the browser player",
|
||||
"DESCRIPTION": "Chromium/Electron may not decode this container inline. Try MPV or VLC for broader codec support."
|
||||
"DESCRIPTION": "The browser player may not decode this container inline. Copy the stream URL and open it in an external player such as MPV, VLC, or IINA for broader codec support."
|
||||
},
|
||||
"UNSUPPORTED_CODEC": {
|
||||
"TITLE": "This stream codec is likely unsupported by the browser player",
|
||||
"DESCRIPTION": "The stream advertises codecs that the built-in Chromium player may not decode. MPV or VLC can often play it."
|
||||
"DESCRIPTION": "The stream advertises codecs that the browser player may not decode. Copy the stream URL and open it in an external player such as MPV, VLC, or IINA."
|
||||
},
|
||||
"MEDIA_DECODE_ERROR": {
|
||||
"TITLE": "The browser player could not decode this stream",
|
||||
@@ -407,7 +407,7 @@
|
||||
},
|
||||
"BROWSER_ACCESS_ERROR": {
|
||||
"TITLE": "The browser player could not access this stream",
|
||||
"DESCRIPTION": "The request may be blocked by CORS, mixed content, or provider header/proxy restrictions. MPV or VLC can often bypass browser-player access limits."
|
||||
"DESCRIPTION": "The request may be blocked by CORS, mixed content, or provider header/proxy restrictions. Copy the stream URL and open it in an external player such as MPV, VLC, or IINA to bypass browser-player access limits."
|
||||
},
|
||||
"DRM_OR_ENCRYPTION": {
|
||||
"TITLE": "This stream may be encrypted or DRM-protected",
|
||||
@@ -418,7 +418,7 @@
|
||||
"DESCRIPTION": "The stream failed in the built-in player, but the error did not identify a specific codec, container, or network cause."
|
||||
},
|
||||
"NATIVE_FALLBACK_TITLE": "Open it in a native player instead",
|
||||
"INLINE_FAILURE_TITLE": "Check the stream or try again",
|
||||
"INLINE_FAILURE_TITLE": "Copy the URL or try again",
|
||||
"ACTION_OPEN_MPV": "Open in MPV",
|
||||
"ACTION_OPEN_VLC": "Open in VLC",
|
||||
"ACTION_OPEN_MPV_HINT": "configured player",
|
||||
|
||||
@@ -391,11 +391,11 @@
|
||||
"PLAYBACK_DIAGNOSTICS": {
|
||||
"UNSUPPORTED_CONTAINER": {
|
||||
"TITLE": "This stream container is likely unsupported by the browser player",
|
||||
"DESCRIPTION": "Chromium/Electron may not decode this container inline. Try MPV or VLC for broader codec support."
|
||||
"DESCRIPTION": "The browser player may not decode this container inline. Copy the stream URL and open it in an external player such as MPV, VLC, or IINA for broader codec support."
|
||||
},
|
||||
"UNSUPPORTED_CODEC": {
|
||||
"TITLE": "This stream codec is likely unsupported by the browser player",
|
||||
"DESCRIPTION": "The stream advertises codecs that the built-in Chromium player may not decode. MPV or VLC can often play it."
|
||||
"DESCRIPTION": "The stream advertises codecs that the browser player may not decode. Copy the stream URL and open it in an external player such as MPV, VLC, or IINA."
|
||||
},
|
||||
"MEDIA_DECODE_ERROR": {
|
||||
"TITLE": "The browser player could not decode this stream",
|
||||
@@ -407,7 +407,7 @@
|
||||
},
|
||||
"BROWSER_ACCESS_ERROR": {
|
||||
"TITLE": "The browser player could not access this stream",
|
||||
"DESCRIPTION": "The request may be blocked by CORS, mixed content, or provider header/proxy restrictions. MPV or VLC can often bypass browser-player access limits."
|
||||
"DESCRIPTION": "The request may be blocked by CORS, mixed content, or provider header/proxy restrictions. Copy the stream URL and open it in an external player such as MPV, VLC, or IINA to bypass browser-player access limits."
|
||||
},
|
||||
"DRM_OR_ENCRYPTION": {
|
||||
"TITLE": "This stream may be encrypted or DRM-protected",
|
||||
@@ -418,7 +418,7 @@
|
||||
"DESCRIPTION": "The stream failed in the built-in player, but the error did not identify a specific codec, container, or network cause."
|
||||
},
|
||||
"NATIVE_FALLBACK_TITLE": "Open it in a native player instead",
|
||||
"INLINE_FAILURE_TITLE": "Check the stream or try again",
|
||||
"INLINE_FAILURE_TITLE": "Copy the URL or try again",
|
||||
"ACTION_OPEN_MPV": "Open in MPV",
|
||||
"ACTION_OPEN_VLC": "Open in VLC",
|
||||
"ACTION_OPEN_MPV_HINT": "configured player",
|
||||
|
||||
@@ -391,11 +391,11 @@
|
||||
"PLAYBACK_DIAGNOSTICS": {
|
||||
"UNSUPPORTED_CONTAINER": {
|
||||
"TITLE": "This stream container is likely unsupported by the browser player",
|
||||
"DESCRIPTION": "Chromium/Electron may not decode this container inline. Try MPV or VLC for broader codec support."
|
||||
"DESCRIPTION": "The browser player may not decode this container inline. Copy the stream URL and open it in an external player such as MPV, VLC, or IINA for broader codec support."
|
||||
},
|
||||
"UNSUPPORTED_CODEC": {
|
||||
"TITLE": "This stream codec is likely unsupported by the browser player",
|
||||
"DESCRIPTION": "The stream advertises codecs that the built-in Chromium player may not decode. MPV or VLC can often play it."
|
||||
"DESCRIPTION": "The stream advertises codecs that the browser player may not decode. Copy the stream URL and open it in an external player such as MPV, VLC, or IINA."
|
||||
},
|
||||
"MEDIA_DECODE_ERROR": {
|
||||
"TITLE": "The browser player could not decode this stream",
|
||||
@@ -407,7 +407,7 @@
|
||||
},
|
||||
"BROWSER_ACCESS_ERROR": {
|
||||
"TITLE": "The browser player could not access this stream",
|
||||
"DESCRIPTION": "The request may be blocked by CORS, mixed content, or provider header/proxy restrictions. MPV or VLC can often bypass browser-player access limits."
|
||||
"DESCRIPTION": "The request may be blocked by CORS, mixed content, or provider header/proxy restrictions. Copy the stream URL and open it in an external player such as MPV, VLC, or IINA to bypass browser-player access limits."
|
||||
},
|
||||
"DRM_OR_ENCRYPTION": {
|
||||
"TITLE": "This stream may be encrypted or DRM-protected",
|
||||
@@ -418,7 +418,7 @@
|
||||
"DESCRIPTION": "The stream failed in the built-in player, but the error did not identify a specific codec, container, or network cause."
|
||||
},
|
||||
"NATIVE_FALLBACK_TITLE": "Open it in a native player instead",
|
||||
"INLINE_FAILURE_TITLE": "Check the stream or try again",
|
||||
"INLINE_FAILURE_TITLE": "Copy the URL or try again",
|
||||
"ACTION_OPEN_MPV": "Open in MPV",
|
||||
"ACTION_OPEN_VLC": "Open in VLC",
|
||||
"ACTION_OPEN_MPV_HINT": "configured player",
|
||||
|
||||
@@ -391,11 +391,11 @@
|
||||
"PLAYBACK_DIAGNOSTICS": {
|
||||
"UNSUPPORTED_CONTAINER": {
|
||||
"TITLE": "Контейнер потока, вероятно, не поддерживается встроенным браузерным плеером",
|
||||
"DESCRIPTION": "Chromium/Electron может не воспроизводить этот контейнер внутри приложения. Попробуйте MPV или VLC с более широкой поддержкой кодеков."
|
||||
"DESCRIPTION": "Браузерный плеер может не декодировать этот контейнер внутри приложения. Скопируйте URL потока и откройте его во внешнем плеере, например MPV, VLC или IINA."
|
||||
},
|
||||
"UNSUPPORTED_CODEC": {
|
||||
"TITLE": "Кодек потока, вероятно, не поддерживается встроенным браузерным плеером",
|
||||
"DESCRIPTION": "Поток сообщает кодеки, которые встроенный Chromium-плеер может не декодировать. MPV или VLC часто справляются с такими потоками."
|
||||
"DESCRIPTION": "Поток сообщает кодеки, которые браузерный плеер может не декодировать. Скопируйте URL потока и откройте его во внешнем плеере, например MPV, VLC или IINA."
|
||||
},
|
||||
"MEDIA_DECODE_ERROR": {
|
||||
"TITLE": "Браузерный плеер не смог декодировать этот поток",
|
||||
@@ -407,7 +407,7 @@
|
||||
},
|
||||
"BROWSER_ACCESS_ERROR": {
|
||||
"TITLE": "Браузерный плеер не получил доступ к потоку",
|
||||
"DESCRIPTION": "Запрос может быть заблокирован CORS, mixed content или требованиями провайдера/прокси к заголовкам. MPV или VLC часто обходят такие ограничения браузерного плеера."
|
||||
"DESCRIPTION": "Запрос может быть заблокирован CORS, mixed content или требованиями провайдера/прокси к заголовкам. Скопируйте URL потока и откройте его во внешнем плеере, например MPV, VLC или IINA."
|
||||
},
|
||||
"DRM_OR_ENCRYPTION": {
|
||||
"TITLE": "Поток может быть зашифрован или защищен DRM",
|
||||
@@ -418,12 +418,12 @@
|
||||
"DESCRIPTION": "Поток не воспроизвелся во встроенном плеере, но ошибка не указала конкретную причину в кодеке, контейнере или сети."
|
||||
},
|
||||
"NATIVE_FALLBACK_TITLE": "Откройте поток во внешнем плеере",
|
||||
"INLINE_FAILURE_TITLE": "Проверьте поток или повторите попытку",
|
||||
"INLINE_FAILURE_TITLE": "Скопируйте URL или повторите попытку",
|
||||
"ACTION_OPEN_MPV": "Открыть в MPV",
|
||||
"ACTION_OPEN_VLC": "Открыть в VLC",
|
||||
"ACTION_OPEN_MPV_HINT": "настроенный плеер",
|
||||
"ACTION_OPEN_VLC_HINT": "настроенный плеер",
|
||||
"ACTION_COPY_URL": "Скопировать URL",
|
||||
"ACTION_COPY_URL": "Скопировать URL потока",
|
||||
"ACTION_RETRY": "Повторить",
|
||||
"DETAILS_SUMMARY": "Технические сведения",
|
||||
"CODEC_HINT": "Обнаружены {{codecs}}. Браузерные плееры Chromium/Electron часто имеют ограниченную поддержку этих кодеков.",
|
||||
|
||||
@@ -391,11 +391,11 @@
|
||||
"PLAYBACK_DIAGNOSTICS": {
|
||||
"UNSUPPORTED_CONTAINER": {
|
||||
"TITLE": "This stream container is likely unsupported by the browser player",
|
||||
"DESCRIPTION": "Chromium/Electron may not decode this container inline. Try MPV or VLC for broader codec support."
|
||||
"DESCRIPTION": "The browser player may not decode this container inline. Copy the stream URL and open it in an external player such as MPV, VLC, or IINA for broader codec support."
|
||||
},
|
||||
"UNSUPPORTED_CODEC": {
|
||||
"TITLE": "This stream codec is likely unsupported by the browser player",
|
||||
"DESCRIPTION": "The stream advertises codecs that the built-in Chromium player may not decode. MPV or VLC can often play it."
|
||||
"DESCRIPTION": "The stream advertises codecs that the browser player may not decode. Copy the stream URL and open it in an external player such as MPV, VLC, or IINA."
|
||||
},
|
||||
"MEDIA_DECODE_ERROR": {
|
||||
"TITLE": "The browser player could not decode this stream",
|
||||
@@ -407,7 +407,7 @@
|
||||
},
|
||||
"BROWSER_ACCESS_ERROR": {
|
||||
"TITLE": "The browser player could not access this stream",
|
||||
"DESCRIPTION": "The request may be blocked by CORS, mixed content, or provider header/proxy restrictions. MPV or VLC can often bypass browser-player access limits."
|
||||
"DESCRIPTION": "The request may be blocked by CORS, mixed content, or provider header/proxy restrictions. Copy the stream URL and open it in an external player such as MPV, VLC, or IINA to bypass browser-player access limits."
|
||||
},
|
||||
"DRM_OR_ENCRYPTION": {
|
||||
"TITLE": "This stream may be encrypted or DRM-protected",
|
||||
@@ -418,7 +418,7 @@
|
||||
"DESCRIPTION": "The stream failed in the built-in player, but the error did not identify a specific codec, container, or network cause."
|
||||
},
|
||||
"NATIVE_FALLBACK_TITLE": "Open it in a native player instead",
|
||||
"INLINE_FAILURE_TITLE": "Check the stream or try again",
|
||||
"INLINE_FAILURE_TITLE": "Copy the URL or try again",
|
||||
"ACTION_OPEN_MPV": "Open in MPV",
|
||||
"ACTION_OPEN_VLC": "Open in VLC",
|
||||
"ACTION_OPEN_MPV_HINT": "configured player",
|
||||
|
||||
@@ -391,11 +391,11 @@
|
||||
"PLAYBACK_DIAGNOSTICS": {
|
||||
"UNSUPPORTED_CONTAINER": {
|
||||
"TITLE": "This stream container is likely unsupported by the browser player",
|
||||
"DESCRIPTION": "Chromium/Electron may not decode this container inline. Try MPV or VLC for broader codec support."
|
||||
"DESCRIPTION": "The browser player may not decode this container inline. Copy the stream URL and open it in an external player such as MPV, VLC, or IINA for broader codec support."
|
||||
},
|
||||
"UNSUPPORTED_CODEC": {
|
||||
"TITLE": "This stream codec is likely unsupported by the browser player",
|
||||
"DESCRIPTION": "The stream advertises codecs that the built-in Chromium player may not decode. MPV or VLC can often play it."
|
||||
"DESCRIPTION": "The stream advertises codecs that the browser player may not decode. Copy the stream URL and open it in an external player such as MPV, VLC, or IINA."
|
||||
},
|
||||
"MEDIA_DECODE_ERROR": {
|
||||
"TITLE": "The browser player could not decode this stream",
|
||||
@@ -407,7 +407,7 @@
|
||||
},
|
||||
"BROWSER_ACCESS_ERROR": {
|
||||
"TITLE": "The browser player could not access this stream",
|
||||
"DESCRIPTION": "The request may be blocked by CORS, mixed content, or provider header/proxy restrictions. MPV or VLC can often bypass browser-player access limits."
|
||||
"DESCRIPTION": "The request may be blocked by CORS, mixed content, or provider header/proxy restrictions. Copy the stream URL and open it in an external player such as MPV, VLC, or IINA to bypass browser-player access limits."
|
||||
},
|
||||
"DRM_OR_ENCRYPTION": {
|
||||
"TITLE": "This stream may be encrypted or DRM-protected",
|
||||
@@ -418,7 +418,7 @@
|
||||
"DESCRIPTION": "The stream failed in the built-in player, but the error did not identify a specific codec, container, or network cause."
|
||||
},
|
||||
"NATIVE_FALLBACK_TITLE": "Open it in a native player instead",
|
||||
"INLINE_FAILURE_TITLE": "Check the stream or try again",
|
||||
"INLINE_FAILURE_TITLE": "Copy the URL or try again",
|
||||
"ACTION_OPEN_MPV": "Open in MPV",
|
||||
"ACTION_OPEN_VLC": "Open in VLC",
|
||||
"ACTION_OPEN_MPV_HINT": "configured player",
|
||||
|
||||
@@ -391,11 +391,11 @@
|
||||
"PLAYBACK_DIAGNOSTICS": {
|
||||
"UNSUPPORTED_CONTAINER": {
|
||||
"TITLE": "This stream container is likely unsupported by the browser player",
|
||||
"DESCRIPTION": "Chromium/Electron may not decode this container inline. Try MPV or VLC for broader codec support."
|
||||
"DESCRIPTION": "The browser player may not decode this container inline. Copy the stream URL and open it in an external player such as MPV, VLC, or IINA for broader codec support."
|
||||
},
|
||||
"UNSUPPORTED_CODEC": {
|
||||
"TITLE": "This stream codec is likely unsupported by the browser player",
|
||||
"DESCRIPTION": "The stream advertises codecs that the built-in Chromium player may not decode. MPV or VLC can often play it."
|
||||
"DESCRIPTION": "The stream advertises codecs that the browser player may not decode. Copy the stream URL and open it in an external player such as MPV, VLC, or IINA."
|
||||
},
|
||||
"MEDIA_DECODE_ERROR": {
|
||||
"TITLE": "The browser player could not decode this stream",
|
||||
@@ -407,7 +407,7 @@
|
||||
},
|
||||
"BROWSER_ACCESS_ERROR": {
|
||||
"TITLE": "The browser player could not access this stream",
|
||||
"DESCRIPTION": "The request may be blocked by CORS, mixed content, or provider header/proxy restrictions. MPV or VLC can often bypass browser-player access limits."
|
||||
"DESCRIPTION": "The request may be blocked by CORS, mixed content, or provider header/proxy restrictions. Copy the stream URL and open it in an external player such as MPV, VLC, or IINA to bypass browser-player access limits."
|
||||
},
|
||||
"DRM_OR_ENCRYPTION": {
|
||||
"TITLE": "This stream may be encrypted or DRM-protected",
|
||||
@@ -418,7 +418,7 @@
|
||||
"DESCRIPTION": "The stream failed in the built-in player, but the error did not identify a specific codec, container, or network cause."
|
||||
},
|
||||
"NATIVE_FALLBACK_TITLE": "Open it in a native player instead",
|
||||
"INLINE_FAILURE_TITLE": "Check the stream or try again",
|
||||
"INLINE_FAILURE_TITLE": "Copy the URL or try again",
|
||||
"ACTION_OPEN_MPV": "Open in MPV",
|
||||
"ACTION_OPEN_VLC": "Open in VLC",
|
||||
"ACTION_OPEN_MPV_HINT": "configured player",
|
||||
|
||||
Reference in new issue
Block a user