diff --git a/README.md b/README.md index db5f61c92..a7d1c594b 100644 --- a/README.md +++ b/README.md @@ -24,7 +24,7 @@ The application is a cross-platform, open-source project built with Electron and - M3u and M3u8 playlist support 📺 - Radio playlist support with dedicated audio player 📻 - Xtream Code (XC) and Stalker portal (STB) support -- External player support - MPV, VLC +- External player support - MPV and VLC; macOS accepts `mpv.app` / `VLC.app` bundle paths. IINA can be launched via its executable path on macOS (best-effort: controls and position polling are MPV IPC only) - Add playlists from the file system or remote URLs 📂 - Automatic playlist updates on application startup - Channel search functionality 🔍 diff --git a/apps/web/src/app/settings/settings-playback-section.component.html b/apps/web/src/app/settings/settings-playback-section.component.html index eb1011636..76494e5e6 100644 --- a/apps/web/src/app/settings/settings-playback-section.component.html +++ b/apps/web/src/app/settings/settings-playback-section.component.html @@ -148,13 +148,16 @@ } - @if (form().value.player === 'mpv') { + @if (isDesktop() && form().value.player === 'mpv') {

{{ 'SETTINGS.MPV_PLAYER_PATH_LABEL' | translate }}

{{ 'SETTINGS.MPV_PLAYER_PATH_DESCRIPTION' | translate }}

+

+ {{ 'SETTINGS.MPV_COMPATIBLE_PLAYER_TIP' | translate }} +

@@ -184,7 +187,7 @@
} - @if (form().value.player === 'vlc') { + @if (isDesktop() && form().value.player === 'vlc') {

{{ 'SETTINGS.VLC_PLAYER_PATH_LABEL' | translate }}

diff --git a/apps/web/src/app/settings/settings-playback-section.component.spec.ts b/apps/web/src/app/settings/settings-playback-section.component.spec.ts index 8aa611bdf..77fefc620 100644 --- a/apps/web/src/app/settings/settings-playback-section.component.spec.ts +++ b/apps/web/src/app/settings/settings-playback-section.component.spec.ts @@ -1,10 +1,17 @@ import { ComponentFixture, TestBed } from '@angular/core/testing'; import { FormControl, FormGroup, ReactiveFormsModule } from '@angular/forms'; import { NoopAnimationsModule } from '@angular/platform-browser/animations'; -import { TranslateModule } from '@ngx-translate/core'; +import { TranslateModule, TranslateService } from '@ngx-translate/core'; import { StreamFormat, VideoPlayer } from 'shared-interfaces'; import { SettingsPlaybackSectionComponent } from './settings-playback-section.component'; +const MPV_PATH_DESCRIPTION = + 'Set the path to MPV. On macOS you can use the MPV app bundle, such as /Applications/mpv.app, or the executable path.'; +const MPV_COMPATIBLE_PLAYER_TIP = + 'IINA can be launched as an MPV-compatible player on macOS, but use its executable path, such as /Applications/IINA.app/Contents/MacOS/iina-cli or /Applications/IINA.app/Contents/MacOS/IINA. IPTVnator controls, position polling, and reuse-instance behavior are guaranteed only for MPV IPC.'; +const VLC_PATH_DESCRIPTION = + 'Set the path to VLC. On macOS you can use the VLC app bundle, such as /Applications/VLC.app, or the executable path.'; + describe('SettingsPlaybackSectionComponent', () => { let fixture: ComponentFixture; @@ -18,6 +25,20 @@ describe('SettingsPlaybackSectionComponent', () => { ], }).compileComponents(); + const translate = TestBed.inject(TranslateService); + translate.setTranslation( + 'en', + { + SETTINGS: { + MPV_PLAYER_PATH_DESCRIPTION: MPV_PATH_DESCRIPTION, + MPV_COMPATIBLE_PLAYER_TIP: MPV_COMPATIBLE_PLAYER_TIP, + VLC_PLAYER_PATH_DESCRIPTION: VLC_PATH_DESCRIPTION, + }, + }, + true + ); + translate.use('en'); + fixture = TestBed.createComponent(SettingsPlaybackSectionComponent); fixture.componentRef.setInput('form', createForm()); fixture.componentRef.setInput('activeSection', 'playback'); @@ -119,6 +140,92 @@ describe('SettingsPlaybackSectionComponent', () => { ) ).toBeNull(); }); + + it('shows MPV bundle guidance and the IINA executable tip for desktop MPV playback', () => { + fixture.componentRef.setInput('form', createForm(VideoPlayer.MPV)); + fixture.componentRef.setInput('isDesktop', true); + fixture.detectChanges(); + + expect(fixture.nativeElement.textContent).toContain( + MPV_PATH_DESCRIPTION + ); + expect( + fixture.nativeElement.querySelector( + '[data-test-id="mpv-compatible-player-tip"]' + ) + ).not.toBeNull(); + expect(fixture.nativeElement.textContent).toContain( + MPV_COMPATIBLE_PLAYER_TIP + ); + }); + + it('hides MPV path guidance and the IINA executable tip outside desktop builds', () => { + fixture.componentRef.setInput('form', createForm(VideoPlayer.MPV)); + fixture.componentRef.setInput('isDesktop', false); + fixture.detectChanges(); + + expect(fixture.nativeElement.textContent).not.toContain( + MPV_PATH_DESCRIPTION + ); + expect(fixture.nativeElement.textContent).not.toContain( + MPV_COMPATIBLE_PLAYER_TIP + ); + expect( + fixture.nativeElement.querySelector( + '[data-test-id="mpv-compatible-player-tip"]' + ) + ).toBeNull(); + }); + + it('shows VLC bundle guidance without the IINA tip for desktop VLC playback', () => { + fixture.componentRef.setInput('form', createForm(VideoPlayer.VLC)); + fixture.componentRef.setInput('isDesktop', true); + fixture.detectChanges(); + + expect(fixture.nativeElement.textContent).toContain( + VLC_PATH_DESCRIPTION + ); + expect( + fixture.nativeElement.querySelector( + '[data-test-id="mpv-compatible-player-tip"]' + ) + ).toBeNull(); + expect(fixture.nativeElement.textContent).not.toContain( + MPV_COMPATIBLE_PLAYER_TIP + ); + }); + + it('hides VLC path guidance outside desktop builds', () => { + fixture.componentRef.setInput('form', createForm(VideoPlayer.VLC)); + fixture.componentRef.setInput('isDesktop', false); + fixture.detectChanges(); + + expect(fixture.nativeElement.textContent).not.toContain( + VLC_PATH_DESCRIPTION + ); + expect( + fixture.nativeElement.querySelector( + '[data-test-id="mpv-compatible-player-tip"]' + ) + ).toBeNull(); + }); + + it('does not show external-player path guidance for embedded players', () => { + fixture.componentRef.setInput('isDesktop', true); + fixture.detectChanges(); + + expect(fixture.nativeElement.textContent).not.toContain( + MPV_PATH_DESCRIPTION + ); + expect(fixture.nativeElement.textContent).not.toContain( + VLC_PATH_DESCRIPTION + ); + expect( + fixture.nativeElement.querySelector( + '[data-test-id="mpv-compatible-player-tip"]' + ) + ).toBeNull(); + }); }); function createForm(player = VideoPlayer.VideoJs): FormGroup { diff --git a/apps/web/src/assets/i18n/ar.json b/apps/web/src/assets/i18n/ar.json index bc3e4e2a3..89077016b 100644 --- a/apps/web/src/assets/i18n/ar.json +++ b/apps/web/src/assets/i18n/ar.json @@ -318,12 +318,13 @@ "IMPORT_ERROR": "خطأ في الاستيراد، يرجى تجربة ملف آخر.", "PLAYLISTS_REMOVED": "All playlists and playlist data were removed.", "MPV_PLAYER_PATH_LABEL": "مسار مشغل MPV", - "MPV_PLAYER_PATH_DESCRIPTION": "حدد مسار مشغل MPV في نظامك.", + "MPV_PLAYER_PATH_DESCRIPTION": "حدد مسار MPV. على macOS يمكنك استخدام حزمة تطبيق MPV مثل /Applications/mpv.app أو مسار الملف التنفيذي.", + "MPV_COMPATIBLE_PLAYER_TIP": "يمكن تشغيل IINA كمشغل متوافق مع MPV على macOS، لكن استخدم مسار الملف التنفيذي مثل /Applications/IINA.app/Contents/MacOS/iina-cli أو /Applications/IINA.app/Contents/MacOS/IINA. عناصر تحكم IPTVnator وتتبع الموضع وإعادة استخدام النافذة مضمونة فقط مع MPV IPC.", "MPV_PLAYER_PATH": "مسار مشغل MPV", "MPV_REUSE_INSTANCE_LABEL": "إعادة استخدام نسخة MPV", "MPV_REUSE_INSTANCE_DESCRIPTION": "عند التفعيل، سيتم إعادة استخدام نفس نافذة MPV لتشغيل البثوث المختلفة. عند التعطيل، يفتح كل بث في نافذة MPV جديدة.", "VLC_PLAYER_PATH_LABEL": "مسار VLC", - "VLC_PLAYER_PATH_DESCRIPTION": "حدد مسار مشغل VLC في نظامك.", + "VLC_PLAYER_PATH_DESCRIPTION": "حدد مسار VLC. على macOS يمكنك استخدام حزمة تطبيق VLC مثل /Applications/VLC.app أو مسار الملف التنفيذي.", "VLC_PLAYER_PATH": "مسار مشغل VLC", "VLC_REUSE_INSTANCE_LABEL": "إعادة استخدام نسخة VLC", "VLC_REUSE_INSTANCE_DESCRIPTION": "عند التفعيل، سيتم إعادة استخدام نفس نافذة VLC لتشغيل البثوث المختلفة. عند التعطيل، يفتح كل بث في نافذة VLC جديدة.", diff --git a/apps/web/src/assets/i18n/ary.json b/apps/web/src/assets/i18n/ary.json index d610e18e8..d0e98eae8 100644 --- a/apps/web/src/assets/i18n/ary.json +++ b/apps/web/src/assets/i18n/ary.json @@ -318,12 +318,13 @@ "IMPORT_ERROR": "خطأ في الاستيراد، عفاك جرب بملف آخر.", "PLAYLISTS_REMOVED": "All playlists and playlist data were removed.", "MPV_PLAYER_PATH_LABEL": "مسار mpv", - "MPV_PLAYER_PATH_DESCRIPTION": "حدد مسار مشغل mpv في السيستيم ديالك. غادي يستعمل المسار اللي عطيتيه لملف mpv بدل اللي كيتلقى في $PATH.", + "MPV_PLAYER_PATH_DESCRIPTION": "حدد مسار MPV. فـ macOS تقدر تستعمل باقة تطبيق MPV بحال /Applications/mpv.app أو مسار الملف التنفيذي.", + "MPV_COMPATIBLE_PLAYER_TIP": "IINA يقدر يتفتح كمشغل متوافق مع MPV فـ macOS، ولكن استعمل مسار الملف التنفيذي بحال /Applications/IINA.app/Contents/MacOS/iina-cli أو /Applications/IINA.app/Contents/MacOS/IINA. تحكم IPTVnator وتتبع الموضع وإعادة استعمال النافذة مضمونين غير مع MPV IPC.", "MPV_PLAYER_PATH": "مسار مشغل mpv", "MPV_REUSE_INSTANCE_LABEL": "إعادة استخدام نسخة MPV", "MPV_REUSE_INSTANCE_DESCRIPTION": "إلى كانت مفعلة، نفس نافذة MPV غادي تستعمل لتشغيل بثوث مختلفة. إلى كانت معطلة، كل بث كيتحل في نافذة MPV جديدة.", "VLC_PLAYER_PATH_LABEL": "مسار VLC", - "VLC_PLAYER_PATH_DESCRIPTION": "حدد مسار مشغل VLC في السيستيم ديالك. غادي يستعمل المسار اللي عطيتيه لملف VLC بدل المسار الافتراضي ديال السيستيم ديالنا.", + "VLC_PLAYER_PATH_DESCRIPTION": "حدد مسار VLC. فـ macOS تقدر تستعمل باقة تطبيق VLC بحال /Applications/VLC.app أو مسار الملف التنفيذي.", "VLC_PLAYER_PATH": "مسار مشغل VLC", "VLC_REUSE_INSTANCE_LABEL": "إعادة استخدام نسخة VLC", "VLC_REUSE_INSTANCE_DESCRIPTION": "إلى كانت مفعلة، نفس نافذة VLC غادي تستعمل لتشغيل بثوث مختلفة. إلى كانت معطلة، كل بث كيتحل في نافذة VLC جديدة.", diff --git a/apps/web/src/assets/i18n/by.json b/apps/web/src/assets/i18n/by.json index 1326d4742..4d12859fd 100644 --- a/apps/web/src/assets/i18n/by.json +++ b/apps/web/src/assets/i18n/by.json @@ -318,12 +318,13 @@ "IMPORT_ERROR": "Памылка імпарту, калі ласка, паспрабуйце імпартаваць іншы файл.", "PLAYLISTS_REMOVED": "All playlists and playlist data were removed.", "MPV_PLAYER_PATH_LABEL": "Шлях да mpv прайгравальніка", - "MPV_PLAYER_PATH_DESCRIPTION": "Усталюйце шлях да прайгравальніка MPV у вашай сістэме. Будзе выкарыстаны ўказаны шлях да бінарнага файла MPV замест таго, што знойдзены ў $PATH.", + "MPV_PLAYER_PATH_DESCRIPTION": "Укажыце шлях да MPV. На macOS можна выкарыстоўваць пакет праграмы MPV, напрыклад /Applications/mpv.app, або шлях да выканальнага файла.", + "MPV_COMPATIBLE_PLAYER_TIP": "IINA можна запускаць як MPV-сумяшчальны прайгравальнік на macOS, але выкарыстоўвайце шлях да выканальнага файла, напрыклад /Applications/IINA.app/Contents/MacOS/iina-cli або /Applications/IINA.app/Contents/MacOS/IINA. Кіраванне IPTVnator, апытанне пазіцыі і паўторнае выкарыстанне акна гарантаваныя толькі для MPV IPC.", "MPV_PLAYER_PATH": "Шлях да mpv прайгравальніка", "MPV_REUSE_INSTANCE_LABEL": "Паўторна выкарыстоўваць асобнік MPV", "MPV_REUSE_INSTANCE_DESCRIPTION": "Калі ўключана, тое ж акно MPV будзе паўторна выкарыстоўвацца для прайгравання розных патокаў. Калі адключана, кожны паток адкрываецца ў новым акне MPV.", "VLC_PLAYER_PATH_LABEL": "Шлях да VLC прайгравальніка", - "VLC_PLAYER_PATH_DESCRIPTION": "Усталюйце шлях да прайгравальніка VLC у вашай сістэме. \nЁн будзе выкарыстоўваць прадастаўлены шлях да бінарнага файла VLC замест шляху па змаўчанні.", + "VLC_PLAYER_PATH_DESCRIPTION": "Укажыце шлях да VLC. На macOS можна выкарыстоўваць пакет праграмы VLC, напрыклад /Applications/VLC.app, або шлях да выканальнага файла.", "VLC_PLAYER_PATH": "Шлях да VLC прайгравальніка", "VLC_REUSE_INSTANCE_LABEL": "Паўторна выкарыстоўваць асобнік VLC", "VLC_REUSE_INSTANCE_DESCRIPTION": "Калі ўключана, тое ж акно VLC будзе паўторна выкарыстоўвацца для прайгравання розных патокаў. Калі адключана, кожны паток адкрываецца ў новым акне VLC.", diff --git a/apps/web/src/assets/i18n/de.json b/apps/web/src/assets/i18n/de.json index 12134643c..1a0b45ffb 100644 --- a/apps/web/src/assets/i18n/de.json +++ b/apps/web/src/assets/i18n/de.json @@ -318,12 +318,13 @@ "IMPORT_ERROR": "Importfehler. Bitte versuchen Sie es mit einer anderen Datei.", "PLAYLISTS_REMOVED": "All playlists and playlist data were removed.", "MPV_PLAYER_PATH_LABEL": "MPV-Pfad", - "MPV_PLAYER_PATH_DESCRIPTION": "Legen Sie den Pfad zum MPV-Player in Ihrem System fest. Es wird der bereitgestellte Pfad zu einer MPV-Binärdatei anstelle des in $PATH gefundenen verwendet.", + "MPV_PLAYER_PATH_DESCRIPTION": "Lege den Pfad zu MPV fest. Unter macOS kannst du das MPV-App-Bundle wie /Applications/mpv.app oder den ausführbaren Pfad verwenden.", + "MPV_COMPATIBLE_PLAYER_TIP": "IINA kann unter macOS als MPV-kompatibler Player gestartet werden, verwende dafür aber den ausführbaren Pfad wie /Applications/IINA.app/Contents/MacOS/iina-cli oder /Applications/IINA.app/Contents/MacOS/IINA. IPTVnator-Steuerung, Positionsabfrage und Wiederverwendung der Instanz sind nur für MPV IPC garantiert.", "MPV_PLAYER_PATH": "MPV-Player-Pfad", "MPV_REUSE_INSTANCE_LABEL": "MPV-Instanz wiederverwenden", "MPV_REUSE_INSTANCE_DESCRIPTION": "Wenn aktiviert, wird dasselbe MPV-Fenster zum Abspielen verschiedener Streams wiederverwendet. Wenn deaktiviert, wird jeder Stream in einem neuen MPV-Fenster geöffnet.", "VLC_PLAYER_PATH_LABEL": "VLC-Pfad", - "VLC_PLAYER_PATH_DESCRIPTION": "Legen Sie den Pfad zum VLC-Player in Ihrem System fest. \nEs wird der bereitgestellte Pfad zu einer VLC-Binärdatei anstelle des Standardpfads für unser System verwendet.", + "VLC_PLAYER_PATH_DESCRIPTION": "Lege den Pfad zu VLC fest. Unter macOS kannst du das VLC-App-Bundle wie /Applications/VLC.app oder den ausführbaren Pfad verwenden.", "VLC_PLAYER_PATH": "VLC-Playerpfad", "VLC_REUSE_INSTANCE_LABEL": "VLC-Instanz wiederverwenden", "VLC_REUSE_INSTANCE_DESCRIPTION": "Wenn aktiviert, wird dasselbe VLC-Fenster zum Abspielen verschiedener Streams wiederverwendet. Wenn deaktiviert, wird jeder Stream in einem neuen VLC-Fenster geöffnet.", diff --git a/apps/web/src/assets/i18n/el.json b/apps/web/src/assets/i18n/el.json index e98dbcb92..73fe688b5 100644 --- a/apps/web/src/assets/i18n/el.json +++ b/apps/web/src/assets/i18n/el.json @@ -318,12 +318,13 @@ "IMPORT_ERROR": "Σφάλμα εισαγωγής, δοκιμάστε με άλλο αρχείο.", "PLAYLISTS_REMOVED": "All playlists and playlist data were removed.", "MPV_PLAYER_PATH_LABEL": "διαδρομή mpv", - "MPV_PLAYER_PATH_DESCRIPTION": "Ορίστε τη διαδρομή προς το mpv player στο σύστημά σας. Θα χρησιμοποιήσει την παρεχόμενη διαδρομή προς ένα δυαδικό αρχείο mpv αντί για αυτήν που βρίσκεται στο $PATH.", + "MPV_PLAYER_PATH_DESCRIPTION": "Ορίστε τη διαδρομή προς το MPV. Στο macOS μπορείτε να χρησιμοποιήσετε το πακέτο εφαρμογής MPV, όπως /Applications/mpv.app, ή τη διαδρομή του εκτελέσιμου αρχείου.", + "MPV_COMPATIBLE_PLAYER_TIP": "Το IINA μπορεί να εκκινηθεί ως συμβατό με MPV πρόγραμμα αναπαραγωγής στο macOS, αλλά χρησιμοποιήστε τη διαδρομή του εκτελέσιμου, όπως /Applications/IINA.app/Contents/MacOS/iina-cli ή /Applications/IINA.app/Contents/MacOS/IINA. Τα στοιχεία ελέγχου του IPTVnator, η παρακολούθηση θέσης και η επαναχρησιμοποίηση instance είναι εγγυημένα μόνο για MPV IPC.", "MPV_PLAYER_PATH": "διαδρομή mpv προγράμματος αναπαραγωγής", "MPV_REUSE_INSTANCE_LABEL": "Επαναχρησιμοποίηση της παρουσίας MPV", "MPV_REUSE_INSTANCE_DESCRIPTION": "Όταν είναι ενεργοποιημένη, το ίδιο παράθυρο MPV θα επαναχρησιμοποιηθεί για την αναπαραγωγή διαφορετικών ροών. Όταν είναι απενεργοποιημένη, κάθε ροή ανοίγει σε ένα νέο παράθυρο MPV.", "VLC_PLAYER_PATH_LABEL": "διαδρομή VLC", - "VLC_PLAYER_PATH_DESCRIPTION": "Ορίστε τη διαδρομή προς το VLC player στο σύστημά σας. Θα χρησιμοποιήσει την παρεχόμενη διαδρομή προς ένα δυαδικό αρχείο VLC αντί για την προεπιλεγμένη διαδρομή για το σύστημά μας.", + "VLC_PLAYER_PATH_DESCRIPTION": "Ορίστε τη διαδρομή προς το VLC. Στο macOS μπορείτε να χρησιμοποιήσετε το πακέτο εφαρμογής VLC, όπως /Applications/VLC.app, ή τη διαδρομή του εκτελέσιμου αρχείου.", "VLC_PLAYER_PATH": "διαδρομή VLC player", "VLC_REUSE_INSTANCE_LABEL": "Επαναχρησιμοποίηση της παρουσίας VLC", "VLC_REUSE_INSTANCE_DESCRIPTION": "Όταν είναι ενεργοποιημένη, το ίδιο παράθυρο VLC θα επαναχρησιμοποιηθεί για την αναπαραγωγή διαφορετικών ροών. Όταν είναι απενεργοποιημένη, κάθε ροή ανοίγει σε ένα νέο παράθυρο VLC.", diff --git a/apps/web/src/assets/i18n/en.json b/apps/web/src/assets/i18n/en.json index 9f6ace9f0..3ac2322f6 100644 --- a/apps/web/src/assets/i18n/en.json +++ b/apps/web/src/assets/i18n/en.json @@ -320,7 +320,8 @@ "IMPORT_ERROR": "Import error, please try with another file.", "PLAYLISTS_REMOVED": "All playlists and playlist data were removed.", "MPV_PLAYER_PATH_LABEL": "mpv path", - "MPV_PLAYER_PATH_DESCRIPTION": "Set path to mpv player in your system. It will use the provided path to a mpv binary instead of using the one found in $PATH.", + "MPV_PLAYER_PATH_DESCRIPTION": "Set the path to MPV. On macOS you can use the MPV app bundle, such as /Applications/mpv.app, or the executable path.", + "MPV_COMPATIBLE_PLAYER_TIP": "IINA can be launched as an MPV-compatible player on macOS, but use its executable path, such as /Applications/IINA.app/Contents/MacOS/iina-cli or /Applications/IINA.app/Contents/MacOS/IINA. IPTVnator controls, position polling, and reuse-instance behavior are guaranteed only for MPV IPC.", "MPV_PLAYER_PATH": "mpv player path", "MPV_REUSE_INSTANCE_LABEL": "Reuse MPV instance", "MPV_REUSE_INSTANCE_DESCRIPTION": "When enabled, the same MPV window will be reused for playing different streams. When disabled, each stream opens in a new MPV window.", @@ -329,7 +330,7 @@ "RECORDING_FOLDER": "Recording folder", "RECORDING_FOLDER_SELECT": "Select recording folder", "VLC_PLAYER_PATH_LABEL": "VLC path", - "VLC_PLAYER_PATH_DESCRIPTION": "Set path to VLC player in your system. It will use the provided path to a VLC binary instead of the default path for our system.", + "VLC_PLAYER_PATH_DESCRIPTION": "Set the path to VLC. On macOS you can use the VLC app bundle, such as /Applications/VLC.app, or the executable path.", "VLC_PLAYER_PATH": "VLC player path", "VLC_REUSE_INSTANCE_LABEL": "Reuse VLC instance", "VLC_REUSE_INSTANCE_DESCRIPTION": "When enabled, the same VLC window will be reused for playing different streams. When disabled, each stream opens in a new VLC window.", diff --git a/apps/web/src/assets/i18n/es.json b/apps/web/src/assets/i18n/es.json index 76b8a66ea..23dbf76e0 100644 --- a/apps/web/src/assets/i18n/es.json +++ b/apps/web/src/assets/i18n/es.json @@ -318,12 +318,13 @@ "IMPORT_ERROR": "Error de importación, intente con otro archivo.", "PLAYLISTS_REMOVED": "All playlists and playlist data were removed.", "MPV_PLAYER_PATH_LABEL": "Ruta de mpv", - "MPV_PLAYER_PATH_DESCRIPTION": "Establece la ruta al reproductor mpv en tu sistema. Se usará la ruta proporcionada al binario de mpv en lugar de la encontrada en $PATH.", + "MPV_PLAYER_PATH_DESCRIPTION": "Establece la ruta a MPV. En macOS puedes usar el paquete de la app MPV, como /Applications/mpv.app, o la ruta del ejecutable.", + "MPV_COMPATIBLE_PLAYER_TIP": "IINA puede iniciarse como reproductor compatible con MPV en macOS, pero usa su ruta ejecutable, como /Applications/IINA.app/Contents/MacOS/iina-cli o /Applications/IINA.app/Contents/MacOS/IINA. Los controles de IPTVnator, el seguimiento de posición y la reutilización de instancia solo están garantizados con MPV IPC.", "MPV_PLAYER_PATH": "ruta del reproductor mpv", "MPV_REUSE_INSTANCE_LABEL": "Reutilizar instancia de MPV", "MPV_REUSE_INSTANCE_DESCRIPTION": "Cuando esta opción está activada, se reutiliza la misma ventana de MPV para reproducir distintos streams. Cuando está desactivada, cada stream se abre en una nueva ventana de MPV.", "VLC_PLAYER_PATH_LABEL": "ruta VLC", - "VLC_PLAYER_PATH_DESCRIPTION": "Establezca la ruta al reproductor VLC en su sistema. \nUtilizará la ruta proporcionada a un binario VLC en lugar de la ruta predeterminada para nuestro sistema.", + "VLC_PLAYER_PATH_DESCRIPTION": "Establece la ruta a VLC. En macOS puedes usar el paquete de la app VLC, como /Applications/VLC.app, o la ruta del ejecutable.", "VLC_PLAYER_PATH": "Ruta del reproductor VLC", "VLC_REUSE_INSTANCE_LABEL": "Reutilizar instancia de VLC", "VLC_REUSE_INSTANCE_DESCRIPTION": "Cuando esta opción está activada, se reutiliza la misma ventana de VLC para reproducir distintos streams. Cuando está desactivada, cada stream se abre en una nueva ventana de VLC.", diff --git a/apps/web/src/assets/i18n/fr.json b/apps/web/src/assets/i18n/fr.json index db4fc35a6..8136fdde7 100644 --- a/apps/web/src/assets/i18n/fr.json +++ b/apps/web/src/assets/i18n/fr.json @@ -318,12 +318,13 @@ "IMPORT_ERROR": "Erreur d'importation, veuillez essayer avec un autre fichier.", "PLAYLISTS_REMOVED": "All playlists and playlist data were removed.", "MPV_PLAYER_PATH_LABEL": "Chemin mpv", - "MPV_PLAYER_PATH_DESCRIPTION": "Définissez le chemin d'accès au lecteur mpv dans votre système. Il utilisera le chemin fourni vers un binaire mpv au lieu de celui trouvé dans $PATH.", + "MPV_PLAYER_PATH_DESCRIPTION": "Définissez le chemin vers MPV. Sur macOS, vous pouvez utiliser le bundle de l’app MPV, comme /Applications/mpv.app, ou le chemin de l’exécutable.", + "MPV_COMPATIBLE_PLAYER_TIP": "IINA peut être lancé comme lecteur compatible MPV sur macOS, mais utilisez son chemin exécutable, comme /Applications/IINA.app/Contents/MacOS/iina-cli ou /Applications/IINA.app/Contents/MacOS/IINA. Les contrôles IPTVnator, le suivi de position et la réutilisation d’instance ne sont garantis qu’avec MPV IPC.", "MPV_PLAYER_PATH": "Chemin du lecteur mpv", "MPV_REUSE_INSTANCE_LABEL": "Réutiliser l'instance MPV", "MPV_REUSE_INSTANCE_DESCRIPTION": "Lorsqu'elle est activée, la même fenêtre MPV sera réutilisée pour lire différents flux. Lorsqu'elle est désactivée, chaque flux s'ouvre dans une nouvelle fenêtre MPV.", "VLC_PLAYER_PATH_LABEL": "Chemin VLC", - "VLC_PLAYER_PATH_DESCRIPTION": "Définissez le chemin d'accès au lecteur VLC dans votre système. Il utilisera le chemin fourni vers un binaire VLC au lieu du chemin par défaut.", + "VLC_PLAYER_PATH_DESCRIPTION": "Définissez le chemin vers VLC. Sur macOS, vous pouvez utiliser le bundle de l’app VLC, comme /Applications/VLC.app, ou le chemin de l’exécutable.", "VLC_PLAYER_PATH": "Chemin du lecteur VLC", "VLC_REUSE_INSTANCE_LABEL": "Réutiliser l'instance VLC", "VLC_REUSE_INSTANCE_DESCRIPTION": "Lorsqu'elle est activée, la même fenêtre VLC sera réutilisée pour lire différents flux. Lorsqu'elle est désactivée, chaque flux s'ouvre dans une nouvelle fenêtre VLC.", diff --git a/apps/web/src/assets/i18n/it.json b/apps/web/src/assets/i18n/it.json index 91b11a273..dc686b2c6 100644 --- a/apps/web/src/assets/i18n/it.json +++ b/apps/web/src/assets/i18n/it.json @@ -318,12 +318,13 @@ "IMPORT_ERROR": "Errore di importazione, prova con un altro file.", "PLAYLISTS_REMOVED": "All playlists and playlist data were removed.", "MPV_PLAYER_PATH_LABEL": "percorso mpv", - "MPV_PLAYER_PATH_DESCRIPTION": "Imposta il percorso per il lettore mpv in questo tuo sistema. Verrà usato il percorso fornito per un eseguibile mpv invece di usare quello trovato in $PATH.", + "MPV_PLAYER_PATH_DESCRIPTION": "Imposta il percorso di MPV. Su macOS puoi usare il bundle dell’app MPV, come /Applications/mpv.app, oppure il percorso dell’eseguibile.", + "MPV_COMPATIBLE_PLAYER_TIP": "IINA può essere avviato come player compatibile con MPV su macOS, ma usa il suo percorso eseguibile, come /Applications/IINA.app/Contents/MacOS/iina-cli o /Applications/IINA.app/Contents/MacOS/IINA. I controlli di IPTVnator, il polling della posizione e il riuso dell’istanza sono garantiti solo con MPV IPC.", "MPV_PLAYER_PATH": "percorso riproduttore mpv", "MPV_REUSE_INSTANCE_LABEL": "Riutilizza istanza MPV", "MPV_REUSE_INSTANCE_DESCRIPTION": "Quando attivo, la stessa finestra MPV viene riutilizzata per riprodurre stream diversi. Quando disattivo, ogni stream viene aperto in una nuova finestra MPV.", "VLC_PLAYER_PATH_LABEL": "Percorso VLC", - "VLC_PLAYER_PATH_DESCRIPTION": "Imposta il percorso del lettore VLC nel sistema. Verrà usato il percorso fornito per il file exe VLC invece del percorso predefinito per il sistema.", + "VLC_PLAYER_PATH_DESCRIPTION": "Imposta il percorso di VLC. Su macOS puoi usare il bundle dell’app VLC, come /Applications/VLC.app, oppure il percorso dell’eseguibile.", "VLC_PLAYER_PATH": "Percorso lettore VLC", "VLC_REUSE_INSTANCE_LABEL": "Riutilizza istanza VLC", "VLC_REUSE_INSTANCE_DESCRIPTION": "Quando attivo, la stessa finestra VLC viene riutilizzata per riprodurre stream diversi. Quando disattivo, ogni stream viene aperto in una nuova finestra VLC.", diff --git a/apps/web/src/assets/i18n/ja.json b/apps/web/src/assets/i18n/ja.json index b22801e33..a927ee680 100644 --- a/apps/web/src/assets/i18n/ja.json +++ b/apps/web/src/assets/i18n/ja.json @@ -318,12 +318,13 @@ "IMPORT_ERROR": "インポートエラー。別のファイルで試してください。", "PLAYLISTS_REMOVED": "All playlists and playlist data were removed.", "MPV_PLAYER_PATH_LABEL": "mpvのパス", - "MPV_PLAYER_PATH_DESCRIPTION": "システム内のmpvプレーヤーのパスを設定します。$PATHで見つかったものの代わりに、指定されたmpvバイナリのパスを使用します。", + "MPV_PLAYER_PATH_DESCRIPTION": "MPV へのパスを設定します。macOS では /Applications/mpv.app のような MPV アプリバンドル、または実行ファイルのパスを使用できます。", + "MPV_COMPATIBLE_PLAYER_TIP": "IINA は macOS で MPV 互換プレーヤーとして起動できますが、/Applications/IINA.app/Contents/MacOS/iina-cli または /Applications/IINA.app/Contents/MacOS/IINA のような実行ファイルのパスを指定してください。IPTVnator の操作、位置ポーリング、インスタンス再利用は MPV IPC でのみ保証されます。", "MPV_PLAYER_PATH": "mpvプレーヤーのパス", "MPV_REUSE_INSTANCE_LABEL": "MPVインスタンスを再利用", "MPV_REUSE_INSTANCE_DESCRIPTION": "有効にすると、異なるストリームの再生に同じMPVウィンドウが再利用されます。無効にすると、各ストリームが新しいMPVウィンドウで開きます。", "VLC_PLAYER_PATH_LABEL": "VLCのパス", - "VLC_PLAYER_PATH_DESCRIPTION": "システム内のVLCプレーヤーのパスを設定します。システムのデフォルトパスの代わりに、指定されたVLCバイナリのパスを使用します。", + "VLC_PLAYER_PATH_DESCRIPTION": "VLC へのパスを設定します。macOS では /Applications/VLC.app のような VLC アプリバンドル、または実行ファイルのパスを使用できます。", "VLC_PLAYER_PATH": "VLCプレーヤーのパス", "VLC_REUSE_INSTANCE_LABEL": "VLCインスタンスを再利用", "VLC_REUSE_INSTANCE_DESCRIPTION": "有効にすると、異なるストリームの再生に同じVLCウィンドウが再利用されます。無効にすると、各ストリームが新しいVLCウィンドウで開きます。", diff --git a/apps/web/src/assets/i18n/ko.json b/apps/web/src/assets/i18n/ko.json index dcf07fe03..22d98d4da 100644 --- a/apps/web/src/assets/i18n/ko.json +++ b/apps/web/src/assets/i18n/ko.json @@ -318,12 +318,13 @@ "IMPORT_ERROR": "가져오기 오류가 발생했습니다. 다른 파일로 시도해 보세요.", "PLAYLISTS_REMOVED": "All playlists and playlist data were removed.", "MPV_PLAYER_PATH_LABEL": "mpv 경로", - "MPV_PLAYER_PATH_DESCRIPTION": "시스템에서 mpv 플레이어 경로를 설정합니다. $PATH에서 찾은 mpv 대신 제공된 경로의 mpv 바이너리를 사용합니다.", + "MPV_PLAYER_PATH_DESCRIPTION": "MPV 경로를 설정합니다. macOS에서는 /Applications/mpv.app 같은 MPV 앱 번들이나 실행 파일 경로를 사용할 수 있습니다.", + "MPV_COMPATIBLE_PLAYER_TIP": "IINA는 macOS에서 MPV 호환 플레이어로 실행할 수 있지만 /Applications/IINA.app/Contents/MacOS/iina-cli 또는 /Applications/IINA.app/Contents/MacOS/IINA 같은 실행 파일 경로를 사용하세요. IPTVnator 컨트롤, 위치 폴링, 인스턴스 재사용 동작은 MPV IPC에서만 보장됩니다.", "MPV_PLAYER_PATH": "mpv 플레이어 경로", "MPV_REUSE_INSTANCE_LABEL": "MPV 인스턴스 재사용", "MPV_REUSE_INSTANCE_DESCRIPTION": "활성화하면 동일한 MPV 창에서 다른 스트림을 재생합니다. 비활성화하면 각 스트림이 새 MPV 창에서 열립니다.", "VLC_PLAYER_PATH_LABEL": "VLC 경로", - "VLC_PLAYER_PATH_DESCRIPTION": "시스템에서 VLC 플레이어의 경로를 설정하십시오. \n시스템의 기본 경로 대신 VLC 바이너리에 제공된 경로를 사용합니다.", + "VLC_PLAYER_PATH_DESCRIPTION": "VLC 경로를 설정합니다. macOS에서는 /Applications/VLC.app 같은 VLC 앱 번들이나 실행 파일 경로를 사용할 수 있습니다.", "VLC_PLAYER_PATH": "VLC 플레이어 경로", "VLC_REUSE_INSTANCE_LABEL": "VLC 인스턴스 재사용", "VLC_REUSE_INSTANCE_DESCRIPTION": "활성화하면 동일한 VLC 창에서 다른 스트림을 재생합니다. 비활성화하면 각 스트림이 새 VLC 창에서 열립니다.", diff --git a/apps/web/src/assets/i18n/nl.json b/apps/web/src/assets/i18n/nl.json index 6e96e2741..9263f1308 100644 --- a/apps/web/src/assets/i18n/nl.json +++ b/apps/web/src/assets/i18n/nl.json @@ -318,12 +318,13 @@ "IMPORT_ERROR": "Fout bij importeren, probeer een ander bestand.", "PLAYLISTS_REMOVED": "All playlists and playlist data were removed.", "MPV_PLAYER_PATH_LABEL": "mpv-bestandspad", - "MPV_PLAYER_PATH_DESCRIPTION": "Stel het bestandspad in naar de mpv-speler op je systeem. Dit bestandspad wordt gebruikt in plaats van de standaard mpv-bestand uit $PATH.", + "MPV_PLAYER_PATH_DESCRIPTION": "Stel het pad naar MPV in. Op macOS kun je de MPV-appbundel gebruiken, zoals /Applications/mpv.app, of het pad naar het uitvoerbare bestand.", + "MPV_COMPATIBLE_PLAYER_TIP": "IINA kan op macOS als MPV-compatibele speler worden gestart, maar gebruik het uitvoerbare pad, zoals /Applications/IINA.app/Contents/MacOS/iina-cli of /Applications/IINA.app/Contents/MacOS/IINA. IPTVnator-bediening, positie-polling en hergebruik van de instantie zijn alleen gegarandeerd met MPV IPC.", "MPV_PLAYER_PATH": "mpv-speler bestandspad", "MPV_REUSE_INSTANCE_LABEL": "MPV-instantie hergebruiken", "MPV_REUSE_INSTANCE_DESCRIPTION": "Wanneer ingeschakeld, wordt hetzelfde MPV-venster hergebruikt voor het afspelen van verschillende streams. Wanneer uitgeschakeld, wordt elke stream geopend in een nieuw MPV-venster.", "VLC_PLAYER_PATH_LABEL": "VLC-bestandspad", - "VLC_PLAYER_PATH_DESCRIPTION": "Stel het bestandspad in naar de VLC-speler op je systeem. Dit bestandspad wordt gebruikt in plaats van het standaardpad van het systeem.", + "VLC_PLAYER_PATH_DESCRIPTION": "Stel het pad naar VLC in. Op macOS kun je de VLC-appbundel gebruiken, zoals /Applications/VLC.app, of het pad naar het uitvoerbare bestand.", "VLC_PLAYER_PATH": "VLC-speler bestandspad", "VLC_REUSE_INSTANCE_LABEL": "VLC-instantie hergebruiken", "VLC_REUSE_INSTANCE_DESCRIPTION": "Wanneer ingeschakeld, wordt hetzelfde VLC-venster hergebruikt voor het afspelen van verschillende streams. Wanneer uitgeschakeld, wordt elke stream geopend in een nieuw VLC-venster.", diff --git a/apps/web/src/assets/i18n/pl.json b/apps/web/src/assets/i18n/pl.json index a16a0b5dd..1df5bcd69 100644 --- a/apps/web/src/assets/i18n/pl.json +++ b/apps/web/src/assets/i18n/pl.json @@ -318,12 +318,13 @@ "IMPORT_ERROR": "Błąd importu, spróbuj z innym plikiem.", "PLAYLISTS_REMOVED": "All playlists and playlist data were removed.", "MPV_PLAYER_PATH_LABEL": "Ścieżka mpv", - "MPV_PLAYER_PATH_DESCRIPTION": "Ustaw ścieżkę do odtwarzacza mpv w systemie. Będzie używać podanej ścieżki do pliku binarnego mpv zamiast tego znalezionego w $PATH.", + "MPV_PLAYER_PATH_DESCRIPTION": "Ustaw ścieżkę do MPV. W macOS możesz użyć pakietu aplikacji MPV, np. /Applications/mpv.app, albo ścieżki do pliku wykonywalnego.", + "MPV_COMPATIBLE_PLAYER_TIP": "IINA można uruchomić jako odtwarzacz zgodny z MPV w macOS, ale użyj ścieżki do pliku wykonywalnego, np. /Applications/IINA.app/Contents/MacOS/iina-cli lub /Applications/IINA.app/Contents/MacOS/IINA. Sterowanie IPTVnator, odpytywanie pozycji i ponowne użycie instancji są gwarantowane tylko dla MPV IPC.", "MPV_PLAYER_PATH": "Ścieżka odtwarzacza mpv", "MPV_REUSE_INSTANCE_LABEL": "Użyj ponownie instancji MPV", "MPV_REUSE_INSTANCE_DESCRIPTION": "Po włączeniu to samo okno MPV będzie używane do odtwarzania różnych strumieni. Po wyłączeniu każdy strumień otwiera się w nowym oknie MPV.", "VLC_PLAYER_PATH_LABEL": "Ścieżka VLC", - "VLC_PLAYER_PATH_DESCRIPTION": "Ustaw ścieżkę do odtwarzacza VLC w systemie. Będzie używać podanej ścieżki do pliku binarnego VLC zamiast domyślnej ścieżki dla naszego systemu.", + "VLC_PLAYER_PATH_DESCRIPTION": "Ustaw ścieżkę do VLC. W macOS możesz użyć pakietu aplikacji VLC, np. /Applications/VLC.app, albo ścieżki do pliku wykonywalnego.", "VLC_PLAYER_PATH": "Ścieżka odtwarzacza VLC", "VLC_REUSE_INSTANCE_LABEL": "Użyj ponownie instancji VLC", "VLC_REUSE_INSTANCE_DESCRIPTION": "Po włączeniu to samo okno VLC będzie używane do odtwarzania różnych strumieni. Po wyłączeniu każdy strumień otwiera się w nowym oknie VLC.", diff --git a/apps/web/src/assets/i18n/pt.json b/apps/web/src/assets/i18n/pt.json index 6e9f9c098..d4dccf1aa 100644 --- a/apps/web/src/assets/i18n/pt.json +++ b/apps/web/src/assets/i18n/pt.json @@ -318,12 +318,13 @@ "IMPORT_ERROR": "Erro de importação, tente com outro arquivo.", "PLAYLISTS_REMOVED": "All playlists and playlist data were removed.", "MPV_PLAYER_PATH_LABEL": "Caminho do mpv", - "MPV_PLAYER_PATH_DESCRIPTION": "Defina o caminho para o reprodutor mpv em seu sistema. Ele usará o caminho fornecido para um binário mpv em vez de usar o encontrado em $PATH.", + "MPV_PLAYER_PATH_DESCRIPTION": "Defina o caminho para o MPV. No macOS você pode usar o pacote do app MPV, como /Applications/mpv.app, ou o caminho do executável.", + "MPV_COMPATIBLE_PLAYER_TIP": "O IINA pode ser iniciado como player compatível com MPV no macOS, mas use o caminho do executável, como /Applications/IINA.app/Contents/MacOS/iina-cli ou /Applications/IINA.app/Contents/MacOS/IINA. Controles do IPTVnator, consulta de posição e reutilização de instância são garantidos apenas com MPV IPC.", "MPV_PLAYER_PATH": "Caminho do reprodutor mpv", "MPV_REUSE_INSTANCE_LABEL": "Reutilizar instância do MPV", "MPV_REUSE_INSTANCE_DESCRIPTION": "Quando ativado, a mesma janela do MPV será reutilizada para reproduzir streams diferentes. Quando desativado, cada stream abre em uma nova janela do MPV.", "VLC_PLAYER_PATH_LABEL": "Caminho do VLC", - "VLC_PLAYER_PATH_DESCRIPTION": "Defina o caminho para o reprodutor VLC em seu sistema. Ele usará o caminho fornecido para um binário VLC em vez do caminho padrão para o nosso sistema.", + "VLC_PLAYER_PATH_DESCRIPTION": "Defina o caminho para o VLC. No macOS você pode usar o pacote do app VLC, como /Applications/VLC.app, ou o caminho do executável.", "VLC_PLAYER_PATH": "Caminho do reprodutor VLC", "VLC_REUSE_INSTANCE_LABEL": "Reutilizar instância do VLC", "VLC_REUSE_INSTANCE_DESCRIPTION": "Quando ativado, a mesma janela do VLC será reutilizada para reproduzir streams diferentes. Quando desativado, cada stream abre em uma nova janela do VLC.", diff --git a/apps/web/src/assets/i18n/ru.json b/apps/web/src/assets/i18n/ru.json index 0b6b0a169..f80230efa 100644 --- a/apps/web/src/assets/i18n/ru.json +++ b/apps/web/src/assets/i18n/ru.json @@ -318,7 +318,8 @@ "IMPORT_ERROR": "Ошибка импорта, пожалуйста попробуйте импортировать другой файл.", "PLAYLISTS_REMOVED": "All playlists and playlist data were removed.", "MPV_PLAYER_PATH_LABEL": "Путь к mpv плееру", - "MPV_PLAYER_PATH_DESCRIPTION": "Установите путь к проигрывателю MPV в вашей системе. Он будет использовать предоставленный путь к бинарному файлу MPV вместо найденного в $PATH.", + "MPV_PLAYER_PATH_DESCRIPTION": "Укажите путь к MPV. В macOS можно использовать пакет приложения MPV, например /Applications/mpv.app, или путь к исполняемому файлу.", + "MPV_COMPATIBLE_PLAYER_TIP": "IINA можно запускать как MPV-совместимый плеер в macOS, но указывайте путь к исполняемому файлу, например /Applications/IINA.app/Contents/MacOS/iina-cli или /Applications/IINA.app/Contents/MacOS/IINA. Управление из IPTVnator, опрос позиции и переиспользование экземпляра гарантированы только для MPV IPC.", "MPV_PLAYER_PATH": "Путь к mpv плееру", "MPV_REUSE_INSTANCE_LABEL": "Переиспользовать экземпляр MPV", "MPV_REUSE_INSTANCE_DESCRIPTION": "Когда включено, одно и то же окно MPV будет использоваться для воспроизведения разных потоков. Когда отключено, каждый поток открывается в новом окне MPV.", @@ -327,7 +328,7 @@ "RECORDING_FOLDER": "Папка для записей", "RECORDING_FOLDER_SELECT": "Выбрать папку для записей", "VLC_PLAYER_PATH_LABEL": "Путь к VLC плееру", - "VLC_PLAYER_PATH_DESCRIPTION": "Установите путь к проигрывателю VLC в вашей системе. \nОн будет использовать предоставленный путь к binary файлу VLC вместо пути по умолчанию.", + "VLC_PLAYER_PATH_DESCRIPTION": "Укажите путь к VLC. В macOS можно использовать пакет приложения VLC, например /Applications/VLC.app, или путь к исполняемому файлу.", "VLC_PLAYER_PATH": "Путь к VLC плееру", "VLC_REUSE_INSTANCE_LABEL": "Переиспользовать экземпляр VLC", "VLC_REUSE_INSTANCE_DESCRIPTION": "Когда включено, одно и то же окно VLC будет использоваться для воспроизведения разных потоков. Когда отключено, каждый поток открывается в новом окне VLC.", diff --git a/apps/web/src/assets/i18n/tr.json b/apps/web/src/assets/i18n/tr.json index ce0f0e818..eb5858e58 100644 --- a/apps/web/src/assets/i18n/tr.json +++ b/apps/web/src/assets/i18n/tr.json @@ -318,12 +318,13 @@ "IMPORT_ERROR": "İçe aktarma hatası, lütfen başka bir dosyayla deneyin.", "PLAYLISTS_REMOVED": "All playlists and playlist data were removed.", "MPV_PLAYER_PATH_LABEL": "mpv yolu", - "MPV_PLAYER_PATH_DESCRIPTION": "Sisteminizdeki mpv oynatıcı yolunu ayarlayın. $PATH'de bulunanı kullanmak yerine, sağlanan mpv ikili dosyası yolunu kullanacaktır.", + "MPV_PLAYER_PATH_DESCRIPTION": "MPV yolunu ayarlayın. macOS’ta /Applications/mpv.app gibi MPV uygulama paketini veya yürütülebilir dosya yolunu kullanabilirsiniz.", + "MPV_COMPATIBLE_PLAYER_TIP": "IINA, macOS’ta MPV uyumlu bir oynatıcı olarak başlatılabilir; ancak /Applications/IINA.app/Contents/MacOS/iina-cli veya /Applications/IINA.app/Contents/MacOS/IINA gibi yürütülebilir dosya yolunu kullanın. IPTVnator kontrolleri, konum yoklama ve örnek yeniden kullanımı yalnızca MPV IPC için garanti edilir.", "MPV_PLAYER_PATH": "mpv oynatıcı yolu", "MPV_REUSE_INSTANCE_LABEL": "MPV örneğini yeniden kullan", "MPV_REUSE_INSTANCE_DESCRIPTION": "Etkinleştirildiğinde, farklı yayınları oynatmak için aynı MPV penceresi yeniden kullanılır. Devre dışı bırakıldığında, her yayın yeni bir MPV penceresinde açılır.", "VLC_PLAYER_PATH_LABEL": "VLC yolu", - "VLC_PLAYER_PATH_DESCRIPTION": "Sisteminizdeki VLC oynatıcı yolunu ayarlayın. Sistemimiz için varsayılan yolu kullanmak yerine, sağlanan VLC ikili dosyası yolunu kullanacaktır.", + "VLC_PLAYER_PATH_DESCRIPTION": "VLC yolunu ayarlayın. macOS’ta /Applications/VLC.app gibi VLC uygulama paketini veya yürütülebilir dosya yolunu kullanabilirsiniz.", "VLC_PLAYER_PATH": "VLC oynatıcı yolu", "VLC_REUSE_INSTANCE_LABEL": "VLC örneğini yeniden kullan", "VLC_REUSE_INSTANCE_DESCRIPTION": "Etkinleştirildiğinde, farklı yayınları oynatmak için aynı VLC penceresi yeniden kullanılır. Devre dışı bırakıldığında, her yayın yeni bir VLC penceresinde açılır.", diff --git a/apps/web/src/assets/i18n/zh.json b/apps/web/src/assets/i18n/zh.json index 24e1e0643..29b003a69 100644 --- a/apps/web/src/assets/i18n/zh.json +++ b/apps/web/src/assets/i18n/zh.json @@ -318,12 +318,13 @@ "IMPORT_ERROR": "导入错误,请尝试使用其他文件。", "PLAYLISTS_REMOVED": "All playlists and playlist data were removed.", "MPV_PLAYER_PATH_LABEL": "多用途车路径", - "MPV_PLAYER_PATH_DESCRIPTION": "设置系统中 mpv 播放器的路径。将使用提供的 mpv 二进制文件路径,而不是在 $PATH 中查找。", + "MPV_PLAYER_PATH_DESCRIPTION": "设置 MPV 路径。在 macOS 上可以使用 MPV 应用包,例如 /Applications/mpv.app,也可以使用可执行文件路径。", + "MPV_COMPATIBLE_PLAYER_TIP": "IINA 可以在 macOS 上作为兼容 MPV 的播放器启动,但请使用它的可执行文件路径,例如 /Applications/IINA.app/Contents/MacOS/iina-cli 或 /Applications/IINA.app/Contents/MacOS/IINA。IPTVnator 控制、位置轮询和实例复用行为仅对 MPV IPC 保证可用。", "MPV_PLAYER_PATH": "mpv 播放器路径", "MPV_REUSE_INSTANCE_LABEL": "复用 MPV 实例", "MPV_REUSE_INSTANCE_DESCRIPTION": "启用后,将复用同一个 MPV 窗口播放不同的视频流。禁用后,每个视频流都会在新的 MPV 窗口中打开。", "VLC_PLAYER_PATH_LABEL": "VLC路径", - "VLC_PLAYER_PATH_DESCRIPTION": "设置系统中 VLC 播放器的路径。\n它将使用提供的 VLC 二进制文件路径,而不是我们系统的默认路径。", + "VLC_PLAYER_PATH_DESCRIPTION": "设置 VLC 路径。在 macOS 上可以使用 VLC 应用包,例如 /Applications/VLC.app,也可以使用可执行文件路径。", "VLC_PLAYER_PATH": "VLC播放器路径", "VLC_REUSE_INSTANCE_LABEL": "复用 VLC 实例", "VLC_REUSE_INSTANCE_DESCRIPTION": "启用后,将复用同一个 VLC 窗口播放不同的视频流。禁用后,每个视频流都会在新的 VLC 窗口中打开。", diff --git a/apps/web/src/assets/i18n/zhtw.json b/apps/web/src/assets/i18n/zhtw.json index fb89c9b4d..f0180760f 100644 --- a/apps/web/src/assets/i18n/zhtw.json +++ b/apps/web/src/assets/i18n/zhtw.json @@ -318,12 +318,13 @@ "IMPORT_ERROR": "匯入錯誤,請嘗試另外一個檔案。", "PLAYLISTS_REMOVED": "All playlists and playlist data were removed.", "MPV_PLAYER_PATH_LABEL": "mpv 路徑", - "MPV_PLAYER_PATH_DESCRIPTION": "設定您系統中 mpv 播放器的路徑。將使用提供的 mpv 二進位檔路徑,而非 $PATH 中的預設路徑。", + "MPV_PLAYER_PATH_DESCRIPTION": "設定 MPV 路徑。在 macOS 上可以使用 MPV App bundle,例如 /Applications/mpv.app,也可以使用可執行檔路徑。", + "MPV_COMPATIBLE_PLAYER_TIP": "IINA 可以在 macOS 上作為相容 MPV 的播放器啟動,但請使用它的可執行檔路徑,例如 /Applications/IINA.app/Contents/MacOS/iina-cli 或 /Applications/IINA.app/Contents/MacOS/IINA。IPTVnator 控制、位置輪詢與 instance 重複使用僅保證適用於 MPV IPC。", "MPV_PLAYER_PATH": "mpv 播放器路徑", "MPV_REUSE_INSTANCE_LABEL": "重複使用 MPV 實體", "MPV_REUSE_INSTANCE_DESCRIPTION": "啟用後,相同的 MPV 視窗將重複用於播放不同串流。停用時,每個串流會在新的 MPV 視窗中開啟。", "VLC_PLAYER_PATH_LABEL": "VLC 路徑", - "VLC_PLAYER_PATH_DESCRIPTION": "設定您系統中 VLC 播放器的路徑。將使用提供的 VLC 二進位檔路徑,而非系統預設路徑。", + "VLC_PLAYER_PATH_DESCRIPTION": "設定 VLC 路徑。在 macOS 上可以使用 VLC App bundle,例如 /Applications/VLC.app,也可以使用可執行檔路徑。", "VLC_PLAYER_PATH": "VLC 播放器路徑", "VLC_REUSE_INSTANCE_LABEL": "重複使用 VLC 實體", "VLC_REUSE_INSTANCE_DESCRIPTION": "啟用後,相同的 VLC 視窗將重複用於播放不同串流。停用時,每個串流會在新的 VLC 視窗中開啟。", diff --git a/apps/website/src/content/blog/v0-21-release-notes.mdx b/apps/website/src/content/blog/v0-21-release-notes.mdx index 0a4edea1e..319bb2222 100644 --- a/apps/website/src/content/blog/v0-21-release-notes.mdx +++ b/apps/website/src/content/blog/v0-21-release-notes.mdx @@ -136,7 +136,7 @@ Not everyone is going to want the embedded MPV player, and a question that came Turns out: **yes**, and a community member figured it out before I did. Huge thanks to them — credit where it’s due, even without naming them publicly. -In **Settings → External player**, point IPTVnator at `IINA.app` (the bundle path, e.g. `/Applications/IINA.app`) where you would normally put the path to MPV or VLC. Streams open in IINA the same way they would in MPV — single instance, GUI controls included. +In **Settings → External player**, select MPV and point IPTVnator at IINA's executable path, for example `/Applications/IINA.app/Contents/MacOS/iina-cli` or `/Applications/IINA.app/Contents/MacOS/IINA`. Do not use `/Applications/IINA.app` directly: IPTVnator only resolves `.app` bundle paths for the real MPV and VLC apps. Streams can launch in IINA, but IPTVnator controls, position polling, and reuse-instance behavior are only guaranteed for MPV IPC. This also retroactively closes the long-standing request in [#896](https://github.com/4gray/iptvnator/issues/896) — IINA support was effectively already there, it just wasn’t documented. diff --git a/docs/architecture/embedded-inline-playback.md b/docs/architecture/embedded-inline-playback.md index e80715b8e..cea12ced9 100644 --- a/docs/architecture/embedded-inline-playback.md +++ b/docs/architecture/embedded-inline-playback.md @@ -6,7 +6,11 @@ This document records the current contract for embedded playback in portal detai - Embedded web players are `videojs`, `html5`, and `artplayer`. - `embedded-mpv` exists as a hidden macOS-only feasibility harness backed by a native `libmpv` addon. -- External players are `mpv` and `vlc`. +- Controlled external players are `mpv` and `vlc`. +- macOS `.app` bundle paths are resolved only for real MPV/VLC apps. IINA may + launch through the MPV path field when the user supplies an executable path + such as `/Applications/IINA.app/Contents/MacOS/iina-cli`, but IPTVnator + controls, position polling, and instance reuse are not guaranteed for IINA. - Flatpak launches external players on the host via `flatpak-spawn --host`. - Live playback stays inline in dedicated live layouts. - VOD and series detail playback stays inline on canonical detail, collection,