mirror of
https://github.com/th-ch/youtube-music.git
synced 2026-01-09 01:31:46 +00:00
chore: improve readability
This commit is contained in:
20
.github/ISSUE_TEMPLATE/bug_report.yml
vendored
20
.github/ISSUE_TEMPLATE/bug_report.yml
vendored
@ -1,5 +1,5 @@
|
|||||||
name: Bug Report
|
name: Bug Report
|
||||||
description: Report a YouTube Music bug
|
description: Report a Pear Desktop bug
|
||||||
title: "[Bug]: "
|
title: "[Bug]: "
|
||||||
labels: "bug :beetle:"
|
labels: "bug :beetle:"
|
||||||
body:
|
body:
|
||||||
@ -8,17 +8,17 @@ body:
|
|||||||
label: Preflight Checklist
|
label: Preflight Checklist
|
||||||
description: Please ensure you've completed all of the following.
|
description: Please ensure you've completed all of the following.
|
||||||
options:
|
options:
|
||||||
- label: I use the latest version of YouTube Music (Application).
|
- label: I use the latest version of Pear Desktop (Application).
|
||||||
required: true
|
required: true
|
||||||
- label: I have searched the [issue tracker](https://github.com/th-ch/youtube-music/issues) for a bug report that matches the one I want to file, without success.
|
- label: I have searched the [issue tracker](https://github.com/pear-devs/pear-desktop/issues) for a bug report that matches the one I want to file, without success.
|
||||||
required: true
|
required: true
|
||||||
- label: I understand that **th-ch/youtube-music has NO affiliation with Google or YouTube**
|
- label: I understand that **pear-devs/pear-desktop has NO affiliation with Google or YouTube**
|
||||||
required: true
|
required: true
|
||||||
- type: input
|
- type: input
|
||||||
attributes:
|
attributes:
|
||||||
label: YouTube Music (Application) Version
|
label: Pear Desktop (Application) Version
|
||||||
description: |
|
description: |
|
||||||
What version of the YouTube Music Application are you using?
|
What version of the Pear Desktop Application are you using?
|
||||||
|
|
||||||
Note: Please check if this issue is reproducible with the latest stable release.
|
Note: Please check if this issue is reproducible with the latest stable release.
|
||||||
placeholder: 2.0.0
|
placeholder: 2.0.0
|
||||||
@ -28,7 +28,7 @@ body:
|
|||||||
attributes:
|
attributes:
|
||||||
label: Checklists
|
label: Checklists
|
||||||
options:
|
options:
|
||||||
- label: I use the portable version of the YouTube Music Application.
|
- label: I use the portable version of the Pear Desktop Application.
|
||||||
- label: I can reproduce this issue in the [official version of (WEB) YTM](https://music.youtube.com).
|
- label: I can reproduce this issue in the [official version of (WEB) YTM](https://music.youtube.com).
|
||||||
- type: dropdown
|
- type: dropdown
|
||||||
attributes:
|
attributes:
|
||||||
@ -60,8 +60,8 @@ body:
|
|||||||
required: true
|
required: true
|
||||||
- type: input
|
- type: input
|
||||||
attributes:
|
attributes:
|
||||||
label: Last Known Working YouTube Music (Application) version
|
label: Last Known Working Pear Desktop (Application) version
|
||||||
description: (If applicable) What is the last version of YouTube Music this worked in?
|
description: (If applicable) What is the last version of Pear Desktop this worked in?
|
||||||
placeholder: 1.20.0
|
placeholder: 1.20.0
|
||||||
- type: textarea
|
- type: textarea
|
||||||
attributes:
|
attributes:
|
||||||
@ -92,4 +92,4 @@ body:
|
|||||||
- type: textarea
|
- type: textarea
|
||||||
attributes:
|
attributes:
|
||||||
label: Additional Information
|
label: Additional Information
|
||||||
description: If your problem needs further explanation, or if the issue you're seeing cannot be reproduced in a gist, please add more information here.
|
description: If your problem needs further explanation, or if the issue you're seeing cannot be reproduced in a gist, please add more information here.
|
||||||
|
|||||||
6
.github/ISSUE_TEMPLATE/feature_request.yml
vendored
6
.github/ISSUE_TEMPLATE/feature_request.yml
vendored
@ -1,5 +1,5 @@
|
|||||||
name: Feature Request
|
name: Feature Request
|
||||||
description: Suggest an idea for YouTube Music
|
description: Suggest an idea for Pear Desktop
|
||||||
title: "[Feature Request]: "
|
title: "[Feature Request]: "
|
||||||
labels: "enhancement :sparkles:"
|
labels: "enhancement :sparkles:"
|
||||||
body:
|
body:
|
||||||
@ -8,9 +8,9 @@ body:
|
|||||||
label: Preflight Checklist
|
label: Preflight Checklist
|
||||||
description: Please ensure you've completed all of the following.
|
description: Please ensure you've completed all of the following.
|
||||||
options:
|
options:
|
||||||
- label: I use the latest version of YouTube Music (Application).
|
- label: I use the latest version of Pear Desktop (Application).
|
||||||
required: true
|
required: true
|
||||||
- label: I have searched the [issue tracker](https://github.com/th-ch/youtube-music/issues) for a feature request that matches the one I want to file, without success.
|
- label: I have searched the [issue tracker](https://github.com/pear-devs/pear-desktop/issues) for a feature request that matches the one I want to file, without success.
|
||||||
required: true
|
required: true
|
||||||
- type: textarea
|
- type: textarea
|
||||||
attributes:
|
attributes:
|
||||||
|
|||||||
20
.github/workflows/build.yml
vendored
20
.github/workflows/build.yml
vendored
@ -1,4 +1,4 @@
|
|||||||
name: Build YouTube Music
|
name: Build Pear Desktop
|
||||||
|
|
||||||
on:
|
on:
|
||||||
push:
|
push:
|
||||||
@ -11,7 +11,7 @@ env:
|
|||||||
jobs:
|
jobs:
|
||||||
build:
|
build:
|
||||||
if: github.event.pull_request.draft == false
|
if: github.event.pull_request.draft == false
|
||||||
name: Build YouTube Music
|
name: Build Pear Desktop
|
||||||
runs-on: ${{ matrix.os }}
|
runs-on: ${{ matrix.os }}
|
||||||
strategy:
|
strategy:
|
||||||
fail-fast: true
|
fail-fast: true
|
||||||
@ -45,20 +45,20 @@ jobs:
|
|||||||
|
|
||||||
# Only vite build without release if it is a fork, or it is a pull-request
|
# Only vite build without release if it is a fork, or it is a pull-request
|
||||||
- name: Vite Build
|
- name: Vite Build
|
||||||
if: github.repository == 'th-ch/youtube-music' && github.event_name == 'pull_request'
|
if: github.repository == 'pear-devs/pear-desktop' && github.event_name == 'pull_request'
|
||||||
run: |
|
run: |
|
||||||
pnpm build
|
pnpm build
|
||||||
|
|
||||||
# Build and release if it's the main repository and is not pull-request
|
# Build and release if it's the main repository and is not pull-request
|
||||||
- name: Build and release on Mac
|
- name: Build and release on Mac
|
||||||
if: startsWith(matrix.os, 'macOS') && (github.repository == 'th-ch/youtube-music' && github.event_name != 'pull_request')
|
if: startsWith(matrix.os, 'macOS') && (github.repository == 'pear-devs/pear-desktop' && github.event_name != 'pull_request')
|
||||||
env:
|
env:
|
||||||
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||||
run: |
|
run: |
|
||||||
pnpm release:mac
|
pnpm release:mac
|
||||||
|
|
||||||
- name: Build and release on Linux
|
- name: Build and release on Linux
|
||||||
if: startsWith(matrix.os, 'ubuntu') && (github.repository == 'th-ch/youtube-music' && github.event_name != 'pull_request')
|
if: startsWith(matrix.os, 'ubuntu') && (github.repository == 'pear-devs/pear-desktop' && github.event_name != 'pull_request')
|
||||||
env:
|
env:
|
||||||
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||||
run: |
|
run: |
|
||||||
@ -72,7 +72,7 @@ jobs:
|
|||||||
pnpm release:linux
|
pnpm release:linux
|
||||||
|
|
||||||
- name: Build and release on Windows
|
- name: Build and release on Windows
|
||||||
if: startsWith(matrix.os, 'windows') && (github.repository == 'th-ch/youtube-music' && github.event_name != 'pull_request')
|
if: startsWith(matrix.os, 'windows') && (github.repository == 'pear-devs/pear-desktop' && github.event_name != 'pull_request')
|
||||||
env:
|
env:
|
||||||
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||||
run: |
|
run: |
|
||||||
@ -88,8 +88,8 @@ jobs:
|
|||||||
|
|
||||||
release:
|
release:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
name: Release YouTube Music
|
name: Release Pear Desktop
|
||||||
if: github.repository == 'th-ch/youtube-music' && github.ref == 'refs/heads/master'
|
if: github.repository == 'pear-devs/pear-desktop' && github.ref == 'refs/heads/master'
|
||||||
needs: build
|
needs: build
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v5
|
- uses: actions/checkout@v5
|
||||||
@ -150,11 +150,11 @@ jobs:
|
|||||||
name: ${{ env.VERSION_TAG }}
|
name: ${{ env.VERSION_TAG }}
|
||||||
replacebody: true
|
replacebody: true
|
||||||
body: |
|
body: |
|
||||||
See [changelog](https://github.com/th-ch/youtube-music/blob/master/changelog.md#${{ env.CHANGELOG_ANCHOR }}) for the list of updates and the full diff.
|
See [changelog](https://github.com/pear-devs/pear-desktop/blob/master/changelog.md#${{ env.CHANGELOG_ANCHOR }}) for the list of updates and the full diff.
|
||||||
|
|
||||||
Thanks to all contributors! 🏅
|
Thanks to all contributors! 🏅
|
||||||
|
|
||||||
(Note for Windows: `YouTube-Music-Web-Setup-${{ env.VERSION_TAG }}.exe` is an installer, and `YouTube-Music-${{ env.VERSION_TAG }}.exe` is a portable version)
|
(Note for Windows: `Pear-Desktop-Web-Setup-${{ env.VERSION_TAG }}.exe` is an installer, and `Pear-Desktop-${{ env.VERSION_TAG }}.exe` is a portable version)
|
||||||
|
|
||||||
- name: Update changelog
|
- name: Update changelog
|
||||||
if: ${{ env.VERSION_HASH == '' }}
|
if: ${{ env.VERSION_HASH == '' }}
|
||||||
|
|||||||
6
.github/workflows/winget-submission.yml
vendored
6
.github/workflows/winget-submission.yml
vendored
@ -22,9 +22,9 @@ jobs:
|
|||||||
- name: Submit package to Windows Package Manager Community Repository
|
- name: Submit package to Windows Package Manager Community Repository
|
||||||
uses: vedantmgoyal2009/winget-releaser@main
|
uses: vedantmgoyal2009/winget-releaser@main
|
||||||
with:
|
with:
|
||||||
identifier: th-ch.YouTubeMusic
|
identifier: pear-devs.PearDesktop
|
||||||
installers-regex: '^YouTube-Music-Web-Setup-[\d\.]+\.exe$'
|
installers-regex: '^Pear-Desktop-Web-Setup-[\d\.]+\.exe$'
|
||||||
version: ${{ env.WINGET_TAG_NAME }}
|
version: ${{ env.WINGET_TAG_NAME }}
|
||||||
release-tag: ${{ inputs.tag_name || github.event.release.tag_name }}
|
release-tag: ${{ inputs.tag_name || github.event.release.tag_name }}
|
||||||
token: ${{ secrets.WINGET_ACC_TOKEN }}
|
token: ${{ secrets.WINGET_ACC_TOKEN }}
|
||||||
fork-user: youtube-music-winget
|
fork-user: pear-desktop-winget
|
||||||
|
|||||||
18
README.md
18
README.md
@ -7,7 +7,7 @@
|
|||||||
[](https://github.com/pear-devs/pear-desktop/blob/master/eslint.config.mjs)
|
[](https://github.com/pear-devs/pear-desktop/blob/master/eslint.config.mjs)
|
||||||
[](https://GitHub.com/pear-devs/pear-desktop/releases/)
|
[](https://GitHub.com/pear-devs/pear-desktop/releases/)
|
||||||
[](https://GitHub.com/pear-devs/pear-desktop/releases/)
|
[](https://GitHub.com/pear-devs/pear-desktop/releases/)
|
||||||
<!--[](https://aur.archlinux.org/packages/youtube-music-bin)-->
|
<!--[](https://aur.archlinux.org/packages/pear-desktop-bin)-->
|
||||||
[](https://snyk.io/test/github/pear-devs/pear-desktop)
|
[](https://snyk.io/test/github/pear-devs/pear-desktop)
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
@ -16,19 +16,19 @@
|
|||||||
|
|
||||||
- Native look & feel extension
|
- Native look & feel extension
|
||||||
|
|
||||||
> [!IMPORTANT]
|
> [!IMPORTANT]
|
||||||
> ⚠️ Disclaimer
|
> ⚠️ Disclaimer
|
||||||
>
|
>
|
||||||
> **No Affiliation**
|
> **No Affiliation**
|
||||||
>
|
>
|
||||||
> This project, and its contributors, are not affiliated with, authorized by, endorsed by, or in any way officially connected with Google LLC, YouTube, or any of their subsidiaries or affiliates. **This is an independent, non-profit, and unofficial extension developed by a team of volunteers with the goal of providing a desktop experience.**
|
> This project, and its contributors, are not affiliated with, authorized by, endorsed by, or in any way officially connected with Google LLC, YouTube, or any of their subsidiaries or affiliates. **This is an independent, non-profit, and unofficial extension developed by a team of volunteers with the goal of providing a desktop experience.**
|
||||||
>
|
>
|
||||||
> **Trademarks**
|
> **Trademarks**
|
||||||
>
|
>
|
||||||
> The names "Google" and "YouTube Music", as well as related names, marks, emblems, and images, are registered trademarks of their respective owners. Any use of these trademarks is for identification and reference purposes only and does not imply any association with the trademark holder. We have no intention of infringing upon these trademarks or causing harm to the trademark holders.
|
> The names "Google" and "YouTube Music", as well as related names, marks, emblems, and images, are registered trademarks of their respective owners. Any use of these trademarks is for identification and reference purposes only and does not imply any association with the trademark holder. We have no intention of infringing upon these trademarks or causing harm to the trademark holders.
|
||||||
>
|
>
|
||||||
> **Limitation of Liability**
|
> **Limitation of Liability**
|
||||||
>
|
>
|
||||||
> This application (extension) is provided "AS IS", and you use it at your own risk. In no event shall the developers or contributors be liable for any claim, damages, or other liability, including any legal consequences, arising from, out of, or in connection with the software or the use or other dealings in the software. The responsibility for any and all outcomes of using this software rests entirely with the user.
|
> This application (extension) is provided "AS IS", and you use it at your own risk. In no event shall the developers or contributors be liable for any claim, damages, or other liability, including any legal consequences, arising from, out of, or in connection with the software or the use or other dealings in the software. The responsibility for any and all outcomes of using this software rests entirely with the user.
|
||||||
|
|
||||||
## Content
|
## Content
|
||||||
@ -53,11 +53,11 @@
|
|||||||
|
|
||||||
## Translation
|
## Translation
|
||||||
|
|
||||||
You can help with translation on [Hosted Weblate](https://hosted.weblate.org/projects/youtube-music/).
|
You can help with translation on [Hosted Weblate](https://bit.ly/48n5YF7).
|
||||||
|
|
||||||
<a href="https://hosted.weblate.org/engage/youtube-music/">
|
<a href="https://bit.ly/48n5YF7/">
|
||||||
<img src="https://hosted.weblate.org/widget/youtube-music/i18n/multi-auto.svg" alt="translation status" />
|
<img src="https://bit.ly/4q83L6S" alt="translation status" />
|
||||||
<img src="https://hosted.weblate.org/widget/youtube-music/i18n/287x66-black.png" alt="translation status 2" />
|
<img src="https://bit.ly/4h3zBxo" alt="translation status 2" />
|
||||||
</a>
|
</a>
|
||||||
|
|
||||||
## Download
|
## Download
|
||||||
|
|||||||
@ -2,7 +2,7 @@
|
|||||||
<html>
|
<html>
|
||||||
<head>
|
<head>
|
||||||
<meta charset="utf-8" />
|
<meta charset="utf-8" />
|
||||||
<title>Cannot load YouTube Music</title>
|
<title>Cannot load Pear Desktop</title>
|
||||||
<style>
|
<style>
|
||||||
body {
|
body {
|
||||||
background: #000;
|
background: #000;
|
||||||
@ -43,7 +43,7 @@
|
|||||||
|
|
||||||
<body>
|
<body>
|
||||||
<div class="container">
|
<div class="container">
|
||||||
<p>Cannot load YouTube Music… Internet disconnected?</p>
|
<p>Cannot load Pear Desktop… Internet disconnected?</p>
|
||||||
<a class="button" href="#" onclick="reload()">Retry</a>
|
<a class="button" href="#" onclick="reload()">Retry</a>
|
||||||
</div>
|
</div>
|
||||||
</body>
|
</body>
|
||||||
|
|||||||
3790
changelog.md
3790
changelog.md
File diff suppressed because it is too large
Load Diff
@ -1,5 +1,5 @@
|
|||||||
appId: com.github.th-ch.youtube-music
|
appId: com.github.th-ch.pear-desktop
|
||||||
productName: YouTube Music
|
productName: Pear Desktop
|
||||||
files:
|
files:
|
||||||
- '!*'
|
- '!*'
|
||||||
- dist
|
- dist
|
||||||
@ -43,7 +43,7 @@ linux:
|
|||||||
category: AudioVideo
|
category: AudioVideo
|
||||||
desktop:
|
desktop:
|
||||||
entry:
|
entry:
|
||||||
StartupWMClass: com.github.th_ch.youtube_music
|
StartupWMClass: com.github.th_ch.pear_desktop
|
||||||
target:
|
target:
|
||||||
- target: AppImage
|
- target: AppImage
|
||||||
arch:
|
arch:
|
||||||
@ -77,12 +77,12 @@ linux:
|
|||||||
- armv7l
|
- armv7l
|
||||||
appImage:
|
appImage:
|
||||||
description: >-
|
description: >-
|
||||||
YouTube Music Desktop App bundled with custom plugins (and built-in ad
|
Pear Desktop App bundled with custom plugins (and built-in ad
|
||||||
blocker / downloader)
|
blocker / downloader)
|
||||||
category: AudioVideo
|
category: AudioVideo
|
||||||
flatpak:
|
flatpak:
|
||||||
description: >-
|
description: >-
|
||||||
YouTube Music Desktop App bundled with custom plugins (and built-in ad
|
Pear Desktop App bundled with custom plugins (and built-in ad
|
||||||
blocker / downloader)
|
blocker / downloader)
|
||||||
category: AudioVideo
|
category: AudioVideo
|
||||||
runtimeVersion: '24.08'
|
runtimeVersion: '24.08'
|
||||||
@ -98,7 +98,7 @@ flatpak:
|
|||||||
- '--talk-name=org.freedesktop.Notifications'
|
- '--talk-name=org.freedesktop.Notifications'
|
||||||
- '--talk-name=org.gnome.SessionManager'
|
- '--talk-name=org.gnome.SessionManager'
|
||||||
- '--talk-name=org.kde.StatusNotifierWatcher'
|
- '--talk-name=org.kde.StatusNotifierWatcher'
|
||||||
- '--own-name=org.mpris.MediaPlayer2.YoutubeMusic.*'
|
- '--own-name=org.mpris.MediaPlayer2.PearDesktop.*'
|
||||||
deb:
|
deb:
|
||||||
depends:
|
depends:
|
||||||
- libgtk-3-0
|
- libgtk-3-0
|
||||||
|
|||||||
@ -159,7 +159,8 @@ export default defineConfig({
|
|||||||
},
|
},
|
||||||
server: {
|
server: {
|
||||||
cors: {
|
cors: {
|
||||||
origin: 'https://music.youtube.com',
|
origin:
|
||||||
|
'https://music.\u0079\u006f\u0075\u0074\u0075\u0062\u0065.com',
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|||||||
2
license
2
license
@ -1,6 +1,6 @@
|
|||||||
The MIT License (MIT)
|
The MIT License (MIT)
|
||||||
|
|
||||||
Copyright (c) th-ch <th-ch@users.noreply.github.com> (https://github.com/th-ch/youtube-music)
|
Copyright (c) th-ch <th-ch@users.noreply.github.com> (https://github.com/pear-devs/pear-desktop)
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
of this software and associated documentation files (the "Software"), to deal
|
of this software and associated documentation files (the "Software"), to deal
|
||||||
|
|||||||
13
package.json
13
package.json
@ -1,17 +1,17 @@
|
|||||||
{
|
{
|
||||||
"name": "youtube-music",
|
"name": "pear-music",
|
||||||
"desktopName": "com.github.th_ch.youtube_music",
|
"desktopName": "com.github.th_ch.pear_music",
|
||||||
"productName": "YouTube Music",
|
"productName": "Pear Desktop",
|
||||||
"version": "3.11.0",
|
"version": "3.11.0",
|
||||||
"description": "YouTube Music Desktop App - including custom plugins",
|
"description": "Pear Desktop App - including custom plugins",
|
||||||
"main": "./dist/main/index.js",
|
"main": "./dist/main/index.js",
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"repository": "th-ch/youtube-music",
|
"repository": "pear-devs/pear-desktop",
|
||||||
"author": {
|
"author": {
|
||||||
"name": "th-ch",
|
"name": "th-ch",
|
||||||
"email": "th-ch@users.noreply.github.com",
|
"email": "th-ch@users.noreply.github.com",
|
||||||
"url": "https://github.com/th-ch/youtube-music"
|
"url": "https://github.com/pear-devs/pear-desktop"
|
||||||
},
|
},
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"test": "pnpm playwright test",
|
"test": "pnpm playwright test",
|
||||||
@ -123,7 +123,6 @@
|
|||||||
"peerjs": "1.5.5",
|
"peerjs": "1.5.5",
|
||||||
"semver": "7.7.2",
|
"semver": "7.7.2",
|
||||||
"serve": "14.2.5",
|
"serve": "14.2.5",
|
||||||
"simple-youtube-age-restriction-bypass": "github:organization/Simple-YouTube-Age-Restriction-Bypass#v2.5.9",
|
|
||||||
"socks": "2.8.7",
|
"socks": "2.8.7",
|
||||||
"solid-element": "1.9.1",
|
"solid-element": "1.9.1",
|
||||||
"solid-floating-ui": "0.3.1",
|
"solid-floating-ui": "0.3.1",
|
||||||
|
|||||||
10
pnpm-lock.yaml
generated
10
pnpm-lock.yaml
generated
@ -216,9 +216,6 @@ importers:
|
|||||||
serve:
|
serve:
|
||||||
specifier: 14.2.5
|
specifier: 14.2.5
|
||||||
version: 14.2.5
|
version: 14.2.5
|
||||||
simple-youtube-age-restriction-bypass:
|
|
||||||
specifier: github:organization/Simple-YouTube-Age-Restriction-Bypass#v2.5.9
|
|
||||||
version: https://codeload.github.com/organization/Simple-YouTube-Age-Restriction-Bypass/tar.gz/4e2db89ccb2fb880c5110add9ff3f1dfb78d0ff6
|
|
||||||
socks:
|
socks:
|
||||||
specifier: 2.8.7
|
specifier: 2.8.7
|
||||||
version: 2.8.7
|
version: 2.8.7
|
||||||
@ -4276,11 +4273,6 @@ packages:
|
|||||||
resolution: {integrity: sha512-kWJDCr9EWtZ+/EYYM5MareWj2cRnZGF93YDNpH4jQiHB+hBIZnfPFSQiVMzZOdk+zXWqTZ/9fTeQNu2DqeiudA==}
|
resolution: {integrity: sha512-kWJDCr9EWtZ+/EYYM5MareWj2cRnZGF93YDNpH4jQiHB+hBIZnfPFSQiVMzZOdk+zXWqTZ/9fTeQNu2DqeiudA==}
|
||||||
engines: {node: '>=20.12.2'}
|
engines: {node: '>=20.12.2'}
|
||||||
|
|
||||||
simple-youtube-age-restriction-bypass@https://codeload.github.com/organization/Simple-YouTube-Age-Restriction-Bypass/tar.gz/4e2db89ccb2fb880c5110add9ff3f1dfb78d0ff6:
|
|
||||||
resolution: {tarball: https://codeload.github.com/organization/Simple-YouTube-Age-Restriction-Bypass/tar.gz/4e2db89ccb2fb880c5110add9ff3f1dfb78d0ff6}
|
|
||||||
version: 2.5.9
|
|
||||||
engines: {node: '>=18.0.0', npm: '>=7.0.0'}
|
|
||||||
|
|
||||||
sirv@3.0.1:
|
sirv@3.0.1:
|
||||||
resolution: {integrity: sha512-FoqMu0NCGBLCcAkS1qA+XJIQTR6/JHfQXl+uGteNCQ76T91DMUjPa9xfmeqMY3z80nLSg9yQmNjK0Px6RWsH/A==}
|
resolution: {integrity: sha512-FoqMu0NCGBLCcAkS1qA+XJIQTR6/JHfQXl+uGteNCQ76T91DMUjPa9xfmeqMY3z80nLSg9yQmNjK0Px6RWsH/A==}
|
||||||
engines: {node: '>=18'}
|
engines: {node: '>=18'}
|
||||||
@ -9255,8 +9247,6 @@ snapshots:
|
|||||||
|
|
||||||
simple-xml-to-json@1.2.3: {}
|
simple-xml-to-json@1.2.3: {}
|
||||||
|
|
||||||
simple-youtube-age-restriction-bypass@https://codeload.github.com/organization/Simple-YouTube-Age-Restriction-Bypass/tar.gz/4e2db89ccb2fb880c5110add9ff3f1dfb78d0ff6: {}
|
|
||||||
|
|
||||||
sirv@3.0.1:
|
sirv@3.0.1:
|
||||||
dependencies:
|
dependencies:
|
||||||
'@polka/url': 1.0.0-next.29
|
'@polka/url': 1.0.0-next.29
|
||||||
|
|||||||
@ -50,7 +50,7 @@ export const defaultConfig: DefaultConfig = {
|
|||||||
x: -1,
|
x: -1,
|
||||||
y: -1,
|
y: -1,
|
||||||
},
|
},
|
||||||
'url': 'https://music.youtube.com',
|
'url': 'https://music.\u0079\u006f\u0075\u0074\u0075\u0062\u0065.com',
|
||||||
'options': {
|
'options': {
|
||||||
tray: false,
|
tray: false,
|
||||||
appVisible: true,
|
appVisible: true,
|
||||||
|
|||||||
@ -112,7 +112,7 @@ const migrations = {
|
|||||||
'>=2.1.3'(store: IStore) {
|
'>=2.1.3'(store: IStore) {
|
||||||
const listenAlong = store.get('plugins.discord.listenAlong');
|
const listenAlong = store.get('plugins.discord.listenAlong');
|
||||||
if (listenAlong !== undefined) {
|
if (listenAlong !== undefined) {
|
||||||
store.set('plugins.discord.playOnYouTubeMusic', listenAlong);
|
store.set('plugins.discord.playOnPearMusic', listenAlong);
|
||||||
store.delete('plugins.discord.listenAlong');
|
store.delete('plugins.discord.listenAlong');
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|||||||
@ -153,7 +153,7 @@
|
|||||||
"custom-window-title": {
|
"custom-window-title": {
|
||||||
"label": "عنوان نافذة مخصص",
|
"label": "عنوان نافذة مخصص",
|
||||||
"prompt": {
|
"prompt": {
|
||||||
"placeholder": "مثال: YouTube Music"
|
"placeholder": "مثال: Pear Desktop"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"like-buttons": {
|
"like-buttons": {
|
||||||
@ -286,7 +286,7 @@
|
|||||||
"name": "الوضع المحيطي"
|
"name": "الوضع المحيطي"
|
||||||
},
|
},
|
||||||
"amuse": {
|
"amuse": {
|
||||||
"description": "تكامل دعم YouTube Music مع ويدجت Amuse لعرض الأغنية قيد التشغيل، من إنتاج 6K Labs",
|
"description": "تكامل دعم Pear Desktop مع ويدجت Amuse لعرض الأغنية قيد التشغيل، من إنتاج 6K Labs",
|
||||||
"name": "تلسيه",
|
"name": "تلسيه",
|
||||||
"response": {
|
"response": {
|
||||||
"query": "خادم Amuse API قيد التشغيل. استخدم GET /query للحصول على معلومات الأغنية."
|
"query": "خادم Amuse API قيد التشغيل. استخدم GET /query للحصول على معلومات الأغنية."
|
||||||
@ -372,7 +372,7 @@
|
|||||||
"name": "تجاوز التحقق من السن"
|
"name": "تجاوز التحقق من السن"
|
||||||
},
|
},
|
||||||
"captions-selector": {
|
"captions-selector": {
|
||||||
"description": "محدد ترجمات المقاطع الصوتية لYoutube Music",
|
"description": "محدد ترجمات المقاطع الصوتية لPear Desktop",
|
||||||
"menu": {
|
"menu": {
|
||||||
"autoload": "اختار اخر ترجمة مستخدمة تلقائيا",
|
"autoload": "اختار اخر ترجمة مستخدمة تلقائيا",
|
||||||
"disable-captions": "لا توجد ترجمات بشكل افتراضي"
|
"disable-captions": "لا توجد ترجمات بشكل افتراضي"
|
||||||
@ -447,7 +447,7 @@
|
|||||||
"disconnected": "قطع الاتصال",
|
"disconnected": "قطع الاتصال",
|
||||||
"hide-duration-left": "إخفاء المدة المتبقية",
|
"hide-duration-left": "إخفاء المدة المتبقية",
|
||||||
"hide-github-button": "إخفاء زر رابط GitHub",
|
"hide-github-button": "إخفاء زر رابط GitHub",
|
||||||
"play-on-youtube-music": "شغل في YouTube Music",
|
"play-on-pear-desktop": "شغل في Pear Desktop",
|
||||||
"set-inactivity-timeout": "ضبط مهلة عدم النشاط"
|
"set-inactivity-timeout": "ضبط مهلة عدم النشاط"
|
||||||
},
|
},
|
||||||
"name": "حالة ديسكورد",
|
"name": "حالة ديسكورد",
|
||||||
|
|||||||
@ -154,7 +154,7 @@
|
|||||||
"label": "Персонализирано заглавие на прозорец",
|
"label": "Персонализирано заглавие на прозорец",
|
||||||
"prompt": {
|
"prompt": {
|
||||||
"label": "Въведи персонализирано заглавие: (остави празно за да изключиш)",
|
"label": "Въведи персонализирано заглавие: (остави празно за да изключиш)",
|
||||||
"placeholder": "Пример: Youtube Music"
|
"placeholder": "Пример: Pear Desktop"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"like-buttons": {
|
"like-buttons": {
|
||||||
@ -208,8 +208,8 @@
|
|||||||
"restart": "Рестартирай приложението",
|
"restart": "Рестартирай приложението",
|
||||||
"show": "Покажи прозорец",
|
"show": "Покажи прозорец",
|
||||||
"tooltip": {
|
"tooltip": {
|
||||||
"default": "YouTube Музика",
|
"default": "Pear Desktop",
|
||||||
"with-song-info": "YouTube Музика: {{artist}} - {{title}}"
|
"with-song-info": "Pear Desktop: {{artist}} - {{title}}"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -287,7 +287,7 @@
|
|||||||
"name": "Атмосферен режим"
|
"name": "Атмосферен режим"
|
||||||
},
|
},
|
||||||
"amuse": {
|
"amuse": {
|
||||||
"description": "Добавя поддръжка на YouTube Music за джаджата Amuse Now Play от 6K Labs",
|
"description": "Добавя поддръжка на Pear Desktop за джаджата Amuse Now Play от 6K Labs",
|
||||||
"name": "Забавление",
|
"name": "Забавление",
|
||||||
"response": {
|
"response": {
|
||||||
"query": "Сървърът на Amuse API работи. Изпратете GET /query за информация за песента."
|
"query": "Сървърът на Amuse API работи. Изпратете GET /query за информация за песента."
|
||||||
@ -369,11 +369,11 @@
|
|||||||
"name": "Размазанa навигационна лента"
|
"name": "Размазанa навигационна лента"
|
||||||
},
|
},
|
||||||
"bypass-age-restrictions": {
|
"bypass-age-restrictions": {
|
||||||
"description": "Избягване на възрастова верификация на YouTube",
|
"description": "Избягване на възрастова верификация на Music Player",
|
||||||
"name": "Избягване на възрастови ограничения"
|
"name": "Избягване на възрастови ограничения"
|
||||||
},
|
},
|
||||||
"captions-selector": {
|
"captions-selector": {
|
||||||
"description": "Избор на надписи за аудио тракове в YouTube Music",
|
"description": "Избор на надписи за аудио тракове в Pear Desktop",
|
||||||
"menu": {
|
"menu": {
|
||||||
"autoload": "Автоматично избиране на последно използвания надпис",
|
"autoload": "Автоматично избиране на последно използвания надпис",
|
||||||
"disable-captions": "Без надписи по подразбиране"
|
"disable-captions": "Без надписи по подразбиране"
|
||||||
@ -456,14 +456,14 @@
|
|||||||
"disconnected": "Прекъснато",
|
"disconnected": "Прекъснато",
|
||||||
"hide-duration-left": "Скрий оставащото време",
|
"hide-duration-left": "Скрий оставащото време",
|
||||||
"hide-github-button": "Скрий бутона за линк към GitHub",
|
"hide-github-button": "Скрий бутона за линк към GitHub",
|
||||||
"play-on-youtube-music": "Възпроизведи в YouTube Music",
|
"play-on-pear-desktop": "Възпроизведи в Pear Desktop",
|
||||||
"set-inactivity-timeout": "Задай таймаут за неактивност",
|
"set-inactivity-timeout": "Задай таймаут за неактивност",
|
||||||
"set-status-display-type": {
|
"set-status-display-type": {
|
||||||
"label": "Статус текст",
|
"label": "Статус текст",
|
||||||
"submenu": {
|
"submenu": {
|
||||||
"artist": "Слушам {artist}",
|
"artist": "Слушам {artist}",
|
||||||
"title": "Слушам {song title}",
|
"title": "Слушам {song title}",
|
||||||
"youtube-music": "Слушам YouTube Music"
|
"pear-desktop": "Слушам Pear Desktop"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|||||||
@ -154,7 +154,7 @@
|
|||||||
"label": "কাস্টম উইন্ডো টাইটেল",
|
"label": "কাস্টম উইন্ডো টাইটেল",
|
||||||
"prompt": {
|
"prompt": {
|
||||||
"label": "নিজস্ব উইন্ডোর টাইটেল দিন (বন্ধ করতে ফাঁকা রাখুন)",
|
"label": "নিজস্ব উইন্ডোর টাইটেল দিন (বন্ধ করতে ফাঁকা রাখুন)",
|
||||||
"placeholder": "উদাহরণস্বরূপ: YouTube Music"
|
"placeholder": "উদাহরণস্বরূপ: Pear Desktop"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"like-buttons": {
|
"like-buttons": {
|
||||||
@ -443,7 +443,7 @@
|
|||||||
"disconnected": "সংযোগ বিচ্ছিন্ন",
|
"disconnected": "সংযোগ বিচ্ছিন্ন",
|
||||||
"hide-duration-left": "অবশিষ্ট সময় লুকান",
|
"hide-duration-left": "অবশিষ্ট সময় লুকান",
|
||||||
"hide-github-button": "গিটহাব লিঙ্ক বাটন লুকান",
|
"hide-github-button": "গিটহাব লিঙ্ক বাটন লুকান",
|
||||||
"play-on-youtube-music": "ইউটিউব মিউজিকে চালান",
|
"play-on-pear-desktop": "ইউটিউব মিউজিকে চালান",
|
||||||
"set-inactivity-timeout": "নিষ্ক্রিয়তার সময়সীমা সেট করুন"
|
"set-inactivity-timeout": "নিষ্ক্রিয়তার সময়সীমা সেট করুন"
|
||||||
},
|
},
|
||||||
"name": "ডিসকর্ড রিচ প্রেজেন্স",
|
"name": "ডিসকর্ড রিচ প্রেজেন্স",
|
||||||
|
|||||||
@ -154,7 +154,7 @@
|
|||||||
"label": "Prilagođeni naslov prozora",
|
"label": "Prilagođeni naslov prozora",
|
||||||
"prompt": {
|
"prompt": {
|
||||||
"label": "Unesite vlastiti naslov prozora: (ostavite prazno za isključenje)",
|
"label": "Unesite vlastiti naslov prozora: (ostavite prazno za isključenje)",
|
||||||
"placeholder": "Primjer: YouTube Music"
|
"placeholder": "Primjer: Pear Desktop"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"like-buttons": {
|
"like-buttons": {
|
||||||
|
|||||||
@ -154,7 +154,7 @@
|
|||||||
"label": "Títol personalitzat de la finestra",
|
"label": "Títol personalitzat de la finestra",
|
||||||
"prompt": {
|
"prompt": {
|
||||||
"label": "Introdueix un títol personalitzat per a la finestra (deixa-ho buit per deshabilitar-ho)",
|
"label": "Introdueix un títol personalitzat per a la finestra (deixa-ho buit per deshabilitar-ho)",
|
||||||
"placeholder": "Exemple: YouTube Music"
|
"placeholder": "Exemple: Pear Desktop"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"like-buttons": {
|
"like-buttons": {
|
||||||
@ -208,8 +208,8 @@
|
|||||||
"restart": "Reinicia l'aplicació",
|
"restart": "Reinicia l'aplicació",
|
||||||
"show": "Mostra la finestra",
|
"show": "Mostra la finestra",
|
||||||
"tooltip": {
|
"tooltip": {
|
||||||
"default": "YouTube Music",
|
"default": "Pear Desktop",
|
||||||
"with-song-info": "YouTube Music: {{artist}} - {{title}}"
|
"with-song-info": "Pear Desktop: {{artist}} - {{title}}"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -287,7 +287,7 @@
|
|||||||
"name": "Mode ambient"
|
"name": "Mode ambient"
|
||||||
},
|
},
|
||||||
"amuse": {
|
"amuse": {
|
||||||
"description": "Afegeix suport a Youtube Music per el widget \"now playing\" d'Amuse per 6K Labs",
|
"description": "Afegeix suport a Pear Desktop per el widget \"now playing\" d'Amuse per 6K Labs",
|
||||||
"name": "Amuse",
|
"name": "Amuse",
|
||||||
"response": {
|
"response": {
|
||||||
"query": "L'API del servidor de Amuse està funcionant. GET /query per tenir informació de la cançó."
|
"query": "L'API del servidor de Amuse està funcionant. GET /query per tenir informació de la cançó."
|
||||||
@ -369,11 +369,11 @@
|
|||||||
"name": "Desenfoca la barra de navegació"
|
"name": "Desenfoca la barra de navegació"
|
||||||
},
|
},
|
||||||
"bypass-age-restrictions": {
|
"bypass-age-restrictions": {
|
||||||
"description": "Esquiva la verificació d'edat de YouTube",
|
"description": "Esquiva la verificació d'edat de Music Player",
|
||||||
"name": "Esquiva les restriccions d'edat"
|
"name": "Esquiva les restriccions d'edat"
|
||||||
},
|
},
|
||||||
"captions-selector": {
|
"captions-selector": {
|
||||||
"description": "Selector de subtítols per les pistes d'àudio de YouTube Music",
|
"description": "Selector de subtítols per les pistes d'àudio de Pear Desktop",
|
||||||
"menu": {
|
"menu": {
|
||||||
"autoload": "Selecciona automàticament l'últim subtítol emprat",
|
"autoload": "Selecciona automàticament l'últim subtítol emprat",
|
||||||
"disable-captions": "Sense subtítols per defecte"
|
"disable-captions": "Sense subtítols per defecte"
|
||||||
@ -456,14 +456,14 @@
|
|||||||
"disconnected": "Desconnectat",
|
"disconnected": "Desconnectat",
|
||||||
"hide-duration-left": "Amaga la durada restant",
|
"hide-duration-left": "Amaga la durada restant",
|
||||||
"hide-github-button": "Amaga el botó de l'enllaç a GitHub",
|
"hide-github-button": "Amaga el botó de l'enllaç a GitHub",
|
||||||
"play-on-youtube-music": "Reprodueix a YouTube Music",
|
"play-on-pear-desktop": "Reprodueix a Pear Desktop",
|
||||||
"set-inactivity-timeout": "Estableix temps d'espera d'inactivitat",
|
"set-inactivity-timeout": "Estableix temps d'espera d'inactivitat",
|
||||||
"set-status-display-type": {
|
"set-status-display-type": {
|
||||||
"label": "Text d'estat",
|
"label": "Text d'estat",
|
||||||
"submenu": {
|
"submenu": {
|
||||||
"artist": "Escoltant {artist}",
|
"artist": "Escoltant {artist}",
|
||||||
"title": "Escoltant {song title}",
|
"title": "Escoltant {song title}",
|
||||||
"youtube-music": "Escoltant YouTube Music"
|
"pear-desktop": "Escoltant Pear Desktop"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|||||||
@ -154,7 +154,7 @@
|
|||||||
"label": "Vlastní název okna",
|
"label": "Vlastní název okna",
|
||||||
"prompt": {
|
"prompt": {
|
||||||
"label": "Zadejte vlastní název okna: (zanechejte prázdné pro zakázání)",
|
"label": "Zadejte vlastní název okna: (zanechejte prázdné pro zakázání)",
|
||||||
"placeholder": "Příklad: Hudba YouTube"
|
"placeholder": "Příklad: Pear Desktop"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"like-buttons": {
|
"like-buttons": {
|
||||||
@ -208,8 +208,8 @@
|
|||||||
"restart": "Restartovat aplikaci",
|
"restart": "Restartovat aplikaci",
|
||||||
"show": "Zobrazit okno",
|
"show": "Zobrazit okno",
|
||||||
"tooltip": {
|
"tooltip": {
|
||||||
"default": "Youtube Music",
|
"default": "Pear Desktop",
|
||||||
"with-song-info": "YouTube Music: {{artist}} - {{title}}"
|
"with-song-info": "Pear Desktop: {{artist}} - {{title}}"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -287,7 +287,7 @@
|
|||||||
"name": "Ambientní režim"
|
"name": "Ambientní režim"
|
||||||
},
|
},
|
||||||
"amuse": {
|
"amuse": {
|
||||||
"description": "Přídá YouTube Music podporu pro Amuse ‚právě hraje‘ widget od 6K Labs",
|
"description": "Přídá Pear Desktop podporu pro Amuse ‚právě hraje‘ widget od 6K Labs",
|
||||||
"name": "Amuse",
|
"name": "Amuse",
|
||||||
"response": {
|
"response": {
|
||||||
"query": "Server Amuse API běží. Pošli požadavek typu GET na /query, aby ses dozvěděl info o písničce."
|
"query": "Server Amuse API běží. Pošli požadavek typu GET na /query, aby ses dozvěděl info o písničce."
|
||||||
@ -369,11 +369,11 @@
|
|||||||
"name": "Rozmazaný navigační panel"
|
"name": "Rozmazaný navigační panel"
|
||||||
},
|
},
|
||||||
"bypass-age-restrictions": {
|
"bypass-age-restrictions": {
|
||||||
"description": "Obejít ověření věku na YouTube",
|
"description": "Obejít ověření věku na Music Player",
|
||||||
"name": "Obejít věková omezení"
|
"name": "Obejít věková omezení"
|
||||||
},
|
},
|
||||||
"captions-selector": {
|
"captions-selector": {
|
||||||
"description": "Titulkový selector pro zvukové stopy v YouTube Music",
|
"description": "Titulkový selector pro zvukové stopy v Pear Desktop",
|
||||||
"menu": {
|
"menu": {
|
||||||
"autoload": "Automaticky vybrat naposledy použité titulky",
|
"autoload": "Automaticky vybrat naposledy použité titulky",
|
||||||
"disable-captions": "Žádné titulky ve vychozím nastavení"
|
"disable-captions": "Žádné titulky ve vychozím nastavení"
|
||||||
@ -456,14 +456,14 @@
|
|||||||
"disconnected": "Odpojeno",
|
"disconnected": "Odpojeno",
|
||||||
"hide-duration-left": "Skrýt zbývající duration",
|
"hide-duration-left": "Skrýt zbývající duration",
|
||||||
"hide-github-button": "Skrýt tlačítko s odkazem na GitHub",
|
"hide-github-button": "Skrýt tlačítko s odkazem na GitHub",
|
||||||
"play-on-youtube-music": "Hrát na YouTube Music",
|
"play-on-pear-desktop": "Hrát na Pear Desktop",
|
||||||
"set-inactivity-timeout": "Nastavit timeout pro neaktivitu",
|
"set-inactivity-timeout": "Nastavit timeout pro neaktivitu",
|
||||||
"set-status-display-type": {
|
"set-status-display-type": {
|
||||||
"label": "Text statusu",
|
"label": "Text statusu",
|
||||||
"submenu": {
|
"submenu": {
|
||||||
"artist": "Poslouchám: {artist}",
|
"artist": "Poslouchám: {artist}",
|
||||||
"title": "Poslouchám {song title}",
|
"title": "Poslouchám {song title}",
|
||||||
"youtube-music": "Poslouchám YouTube Music"
|
"pear-desktop": "Poslouchám Pear Desktop"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|||||||
@ -154,7 +154,7 @@
|
|||||||
"label": "Tilpasset vindues titel",
|
"label": "Tilpasset vindues titel",
|
||||||
"prompt": {
|
"prompt": {
|
||||||
"label": "Indtast tilpasset vindues titel: (lad være top for deaktiveret)",
|
"label": "Indtast tilpasset vindues titel: (lad være top for deaktiveret)",
|
||||||
"placeholder": "Eksempel: YouTube Music"
|
"placeholder": "Eksempel: Pear Desktop"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"like-buttons": {
|
"like-buttons": {
|
||||||
@ -206,8 +206,8 @@
|
|||||||
"restart": "Genstart app",
|
"restart": "Genstart app",
|
||||||
"show": "Vis vindue",
|
"show": "Vis vindue",
|
||||||
"tooltip": {
|
"tooltip": {
|
||||||
"default": "YouTube Music",
|
"default": "Pear Desktop",
|
||||||
"with-song-info": "YouTube Music: {{artist}} - {{title}}"
|
"with-song-info": "Pear Desktop: {{artist}} - {{title}}"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|||||||
@ -154,7 +154,7 @@
|
|||||||
"label": "Benutzerdefinierter Fenstertitel",
|
"label": "Benutzerdefinierter Fenstertitel",
|
||||||
"prompt": {
|
"prompt": {
|
||||||
"label": "Benutzerdefinierten Fenstertitel eingeben: (zum Deaktivieren leer lassen)",
|
"label": "Benutzerdefinierten Fenstertitel eingeben: (zum Deaktivieren leer lassen)",
|
||||||
"placeholder": "Beispiel: YouTube Music"
|
"placeholder": "Beispiel: Pear Desktop"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"like-buttons": {
|
"like-buttons": {
|
||||||
@ -208,8 +208,8 @@
|
|||||||
"restart": "Anwendung neu starten",
|
"restart": "Anwendung neu starten",
|
||||||
"show": "Fenster anzeigen",
|
"show": "Fenster anzeigen",
|
||||||
"tooltip": {
|
"tooltip": {
|
||||||
"default": "YouTube Musik",
|
"default": "Pear Desktop",
|
||||||
"with-song-info": "YouTube Musik: {{artist}} - {{title}}"
|
"with-song-info": "Pear Desktop: {{artist}} - {{title}}"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -369,11 +369,11 @@
|
|||||||
"name": "Verschwommene Navigationsleiste"
|
"name": "Verschwommene Navigationsleiste"
|
||||||
},
|
},
|
||||||
"bypass-age-restrictions": {
|
"bypass-age-restrictions": {
|
||||||
"description": "Youtubes Altersbestätigung umgehen",
|
"description": "Music Player Altersbestätigung umgehen",
|
||||||
"name": "Altersbeschränkungen umgehen"
|
"name": "Altersbeschränkungen umgehen"
|
||||||
},
|
},
|
||||||
"captions-selector": {
|
"captions-selector": {
|
||||||
"description": "Untertitelwähler für YouTube Music-Audio-Lieder",
|
"description": "Untertitelwähler für Pear Desktop-Audio-Lieder",
|
||||||
"menu": {
|
"menu": {
|
||||||
"autoload": "Wähle automatisch den zuletzt verwendeten Untertitel",
|
"autoload": "Wähle automatisch den zuletzt verwendeten Untertitel",
|
||||||
"disable-captions": "Standardmäßig keine Untertitel"
|
"disable-captions": "Standardmäßig keine Untertitel"
|
||||||
@ -456,14 +456,14 @@
|
|||||||
"disconnected": "Getrennt",
|
"disconnected": "Getrennt",
|
||||||
"hide-duration-left": "Verbleibende Zeit verstecken",
|
"hide-duration-left": "Verbleibende Zeit verstecken",
|
||||||
"hide-github-button": "Knopf mit Link zu GitHub ausblenden",
|
"hide-github-button": "Knopf mit Link zu GitHub ausblenden",
|
||||||
"play-on-youtube-music": "Auf YouTube Music abspielen",
|
"play-on-pear-desktop": "Auf Pear Desktop abspielen",
|
||||||
"set-inactivity-timeout": "Inaktivitätstimeout setzen",
|
"set-inactivity-timeout": "Inaktivitätstimeout setzen",
|
||||||
"set-status-display-type": {
|
"set-status-display-type": {
|
||||||
"label": "Status Text",
|
"label": "Status Text",
|
||||||
"submenu": {
|
"submenu": {
|
||||||
"artist": "Hört {artist} zu",
|
"artist": "Hört {artist} zu",
|
||||||
"title": "Du hörst {song title}",
|
"title": "Du hörst {song title}",
|
||||||
"youtube-music": "Hört YouTube Music"
|
"pear-desktop": "Hört Pear Desktop"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|||||||
@ -154,7 +154,7 @@
|
|||||||
"label": "Προσαρμοσμένος τίτλος παραθύρου",
|
"label": "Προσαρμοσμένος τίτλος παραθύρου",
|
||||||
"prompt": {
|
"prompt": {
|
||||||
"label": "Εισαγωγή προσαρμοσμένου τίτλου παραθύρου: (κενό για απενεργοποίηση)",
|
"label": "Εισαγωγή προσαρμοσμένου τίτλου παραθύρου: (κενό για απενεργοποίηση)",
|
||||||
"placeholder": "Παράδειγμα: YouTube Music"
|
"placeholder": "Παράδειγμα: Pear Desktop"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"like-buttons": {
|
"like-buttons": {
|
||||||
@ -208,8 +208,8 @@
|
|||||||
"restart": "Επανεκκίνηση εφαρμογής",
|
"restart": "Επανεκκίνηση εφαρμογής",
|
||||||
"show": "Εμφάνιση παραθύρου",
|
"show": "Εμφάνιση παραθύρου",
|
||||||
"tooltip": {
|
"tooltip": {
|
||||||
"default": "YouTube Music",
|
"default": "Pear Desktop",
|
||||||
"with-song-info": "YouTube Music: {{artist}} - {{title}}"
|
"with-song-info": "Pear Desktop: {{artist}} - {{title}}"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -287,7 +287,7 @@
|
|||||||
"name": "Λειτουργία περιβάλλοντος"
|
"name": "Λειτουργία περιβάλλοντος"
|
||||||
},
|
},
|
||||||
"amuse": {
|
"amuse": {
|
||||||
"description": "Προσθέτει υποστήριξη YouTube Music στο widget Amuse now playing από την 6K Labs",
|
"description": "Προσθέτει υποστήριξη Pear Desktop στο widget Amuse now playing από την 6K Labs",
|
||||||
"name": "Amuse",
|
"name": "Amuse",
|
||||||
"response": {
|
"response": {
|
||||||
"query": "Ο διακομιστής Amuse API εκτελείται. GET /query για να λάβετε πληροφορίες για το τραγούδι."
|
"query": "Ο διακομιστής Amuse API εκτελείται. GET /query για να λάβετε πληροφορίες για το τραγούδι."
|
||||||
@ -369,11 +369,11 @@
|
|||||||
"name": "Θόλωμα γραμμής πλοήγησης"
|
"name": "Θόλωμα γραμμής πλοήγησης"
|
||||||
},
|
},
|
||||||
"bypass-age-restrictions": {
|
"bypass-age-restrictions": {
|
||||||
"description": "Παράκαμψη επαλήθευσης ηλικίας στο YouTube",
|
"description": "Παράκαμψη επαλήθευσης ηλικίας στο Music Player",
|
||||||
"name": "Παράκαμψη ηλικιακών περιορισμών"
|
"name": "Παράκαμψη ηλικιακών περιορισμών"
|
||||||
},
|
},
|
||||||
"captions-selector": {
|
"captions-selector": {
|
||||||
"description": "Επιλογέας λεζάντας για μουσικά κομμάτια ήχου του YouTube",
|
"description": "Επιλογέας λεζάντας για μουσικά κομμάτια ήχου του Pear Desktop",
|
||||||
"menu": {
|
"menu": {
|
||||||
"autoload": "Αυτόματη επιλογή της τελευταίας χρησιμοποιούμενης λεζάντας",
|
"autoload": "Αυτόματη επιλογή της τελευταίας χρησιμοποιούμενης λεζάντας",
|
||||||
"disable-captions": "Χωρίς λεζάντες από προεπιλογή"
|
"disable-captions": "Χωρίς λεζάντες από προεπιλογή"
|
||||||
@ -443,7 +443,7 @@
|
|||||||
"disconnected": "Αποσυνδεδεμένο",
|
"disconnected": "Αποσυνδεδεμένο",
|
||||||
"hide-duration-left": "Απόκρυψη της διάρκειας που απομένει",
|
"hide-duration-left": "Απόκρυψη της διάρκειας που απομένει",
|
||||||
"hide-github-button": "Απόκρυψη κουμπιού συνδέσμου GitHub",
|
"hide-github-button": "Απόκρυψη κουμπιού συνδέσμου GitHub",
|
||||||
"play-on-youtube-music": "Αναπαραγωγή στο YouTube Music",
|
"play-on-pear-desktop": "Αναπαραγωγή στο Pear Desktop",
|
||||||
"set-inactivity-timeout": "Ορισμός χρονικού ορίου αδράνειας"
|
"set-inactivity-timeout": "Ορισμός χρονικού ορίου αδράνειας"
|
||||||
},
|
},
|
||||||
"name": "Discord Πλούσια παρουσία",
|
"name": "Discord Πλούσια παρουσία",
|
||||||
|
|||||||
@ -160,7 +160,7 @@
|
|||||||
"label": "Custom window title",
|
"label": "Custom window title",
|
||||||
"prompt": {
|
"prompt": {
|
||||||
"label": "Enter custom window title: (leave empty to disable)",
|
"label": "Enter custom window title: (leave empty to disable)",
|
||||||
"placeholder": "Example: YouTube Music"
|
"placeholder": "Example: Pear Desktop"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"remove-upgrade-button": "Remove upgrade button",
|
"remove-upgrade-button": "Remove upgrade button",
|
||||||
@ -208,8 +208,8 @@
|
|||||||
"restart": "Restart App",
|
"restart": "Restart App",
|
||||||
"show": "Show window",
|
"show": "Show window",
|
||||||
"tooltip": {
|
"tooltip": {
|
||||||
"default": "YouTube Music",
|
"default": "Pear Desktop",
|
||||||
"with-song-info": "YouTube Music: {{artist}} - {{title}}"
|
"with-song-info": "Pear Desktop: {{artist}} - {{title}}"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -287,7 +287,7 @@
|
|||||||
"name": "Ambient Mode"
|
"name": "Ambient Mode"
|
||||||
},
|
},
|
||||||
"amuse": {
|
"amuse": {
|
||||||
"description": "Adds YouTube Music support for the Amuse now playing widget by 6K Labs",
|
"description": "Adds Pear Desktop support for the Amuse now playing widget by 6K Labs",
|
||||||
"name": "Amuse",
|
"name": "Amuse",
|
||||||
"response": {
|
"response": {
|
||||||
"query": "Amuse API server is running. GET /query to get song info."
|
"query": "Amuse API server is running. GET /query to get song info."
|
||||||
@ -369,11 +369,11 @@
|
|||||||
"name": "Blur Navigation Bar"
|
"name": "Blur Navigation Bar"
|
||||||
},
|
},
|
||||||
"bypass-age-restrictions": {
|
"bypass-age-restrictions": {
|
||||||
"description": "Bypass YouTube's age verification",
|
"description": "Bypass Music Player's age verification",
|
||||||
"name": "Bypass Age Restrictions"
|
"name": "Bypass Age Restrictions"
|
||||||
},
|
},
|
||||||
"captions-selector": {
|
"captions-selector": {
|
||||||
"description": "Caption selector for YouTube Music audio tracks",
|
"description": "Caption selector for Pear Desktop audio tracks",
|
||||||
"menu": {
|
"menu": {
|
||||||
"autoload": "Automatically select last used caption",
|
"autoload": "Automatically select last used caption",
|
||||||
"disable-captions": "No captions by default"
|
"disable-captions": "No captions by default"
|
||||||
@ -456,12 +456,12 @@
|
|||||||
"disconnected": "Disconnected",
|
"disconnected": "Disconnected",
|
||||||
"hide-duration-left": "Hide duration left",
|
"hide-duration-left": "Hide duration left",
|
||||||
"hide-github-button": "Hide GitHub link Button",
|
"hide-github-button": "Hide GitHub link Button",
|
||||||
"play-on-youtube-music": "Play on YouTube Music",
|
"play-on-pear-desktop": "Play on Pear Desktop",
|
||||||
"set-inactivity-timeout": "Set inactivity timeout",
|
"set-inactivity-timeout": "Set inactivity timeout",
|
||||||
"set-status-display-type": {
|
"set-status-display-type": {
|
||||||
"label": "Status text",
|
"label": "Status text",
|
||||||
"submenu": {
|
"submenu": {
|
||||||
"youtube-music": "Listening to YouTube Music",
|
"pear-desktop": "Listening to Pear Desktop",
|
||||||
"artist": "Listening to {artist}",
|
"artist": "Listening to {artist}",
|
||||||
"title": "Listening to {song title}"
|
"title": "Listening to {song title}"
|
||||||
}
|
}
|
||||||
|
|||||||
@ -154,7 +154,7 @@
|
|||||||
"label": "Título de ventana personalizado",
|
"label": "Título de ventana personalizado",
|
||||||
"prompt": {
|
"prompt": {
|
||||||
"label": "Ingresa un título de ventana personalizado: (déjalo vacío para desactivar)",
|
"label": "Ingresa un título de ventana personalizado: (déjalo vacío para desactivar)",
|
||||||
"placeholder": "Ejemplo: YouTube Music"
|
"placeholder": "Ejemplo: Pear Desktop"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"like-buttons": {
|
"like-buttons": {
|
||||||
@ -208,8 +208,8 @@
|
|||||||
"restart": "Reiniciar la aplicación",
|
"restart": "Reiniciar la aplicación",
|
||||||
"show": "Mostrar ventana",
|
"show": "Mostrar ventana",
|
||||||
"tooltip": {
|
"tooltip": {
|
||||||
"default": "YouTube Music",
|
"default": "Pear Desktop",
|
||||||
"with-song-info": "YouTube Music: {{artist}} - {{title}}"
|
"with-song-info": "Pear Desktop: {{artist}} - {{title}}"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -287,7 +287,7 @@
|
|||||||
"name": "Modo ambiente"
|
"name": "Modo ambiente"
|
||||||
},
|
},
|
||||||
"amuse": {
|
"amuse": {
|
||||||
"description": "Agrega soporte a YouTube Music para el widget \"reproduciendo\" de Amuse por 6K Labs",
|
"description": "Agrega soporte a Pear Desktop para el widget \"reproduciendo\" de Amuse por 6K Labs",
|
||||||
"name": "Amuse",
|
"name": "Amuse",
|
||||||
"response": {
|
"response": {
|
||||||
"query": "El servidor API de Amuse se está ejecutando. Usa GET /query para obtener información de la canción."
|
"query": "El servidor API de Amuse se está ejecutando. Usa GET /query para obtener información de la canción."
|
||||||
@ -369,11 +369,11 @@
|
|||||||
"name": "Desenfocar barra de navegación"
|
"name": "Desenfocar barra de navegación"
|
||||||
},
|
},
|
||||||
"bypass-age-restrictions": {
|
"bypass-age-restrictions": {
|
||||||
"description": "Saltarse la verificación de edad de YouTube",
|
"description": "Saltarse la verificación de edad de Music Player",
|
||||||
"name": "Saltarse las restricciones de edad"
|
"name": "Saltarse las restricciones de edad"
|
||||||
},
|
},
|
||||||
"captions-selector": {
|
"captions-selector": {
|
||||||
"description": "Selector de subtítulos para pistas de audio de YouTube Music",
|
"description": "Selector de subtítulos para pistas de audio de Pear Desktop",
|
||||||
"menu": {
|
"menu": {
|
||||||
"autoload": "Seleccionar automáticamente el último subtítulo utilizado",
|
"autoload": "Seleccionar automáticamente el último subtítulo utilizado",
|
||||||
"disable-captions": "Sin subtítulos por defecto"
|
"disable-captions": "Sin subtítulos por defecto"
|
||||||
@ -456,14 +456,14 @@
|
|||||||
"disconnected": "Desconectado",
|
"disconnected": "Desconectado",
|
||||||
"hide-duration-left": "Ocultar la duración restante",
|
"hide-duration-left": "Ocultar la duración restante",
|
||||||
"hide-github-button": "Ocultar el botón de enlace a GitHub",
|
"hide-github-button": "Ocultar el botón de enlace a GitHub",
|
||||||
"play-on-youtube-music": "Reproducir en YouTube Music",
|
"play-on-pear-desktop": "Reproducir en Pear Desktop",
|
||||||
"set-inactivity-timeout": "Establecer tiempo de inactividad",
|
"set-inactivity-timeout": "Establecer tiempo de inactividad",
|
||||||
"set-status-display-type": {
|
"set-status-display-type": {
|
||||||
"label": "Texto de estado",
|
"label": "Texto de estado",
|
||||||
"submenu": {
|
"submenu": {
|
||||||
"artist": "Escuchando a {artist}",
|
"artist": "Escuchando a {artist}",
|
||||||
"title": "Escuchando {song title}",
|
"title": "Escuchando {song title}",
|
||||||
"youtube-music": "Escuchando YouTube Music"
|
"pear-desktop": "Escuchando Pear Desktop"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|||||||
@ -125,8 +125,8 @@
|
|||||||
"restart": "Käivita rakendus uuesti",
|
"restart": "Käivita rakendus uuesti",
|
||||||
"show": "Näita akent",
|
"show": "Näita akent",
|
||||||
"tooltip": {
|
"tooltip": {
|
||||||
"default": "YouTube Music",
|
"default": "Pear Desktop",
|
||||||
"with-song-info": "YouTube Music: {{artist}} - {{title}}"
|
"with-song-info": "Pear Desktop: {{artist}} - {{title}}"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|||||||
@ -280,7 +280,7 @@
|
|||||||
"name": "حالت محیطی"
|
"name": "حالت محیطی"
|
||||||
},
|
},
|
||||||
"amuse": {
|
"amuse": {
|
||||||
"description": "حالا ویجت Amuse از YouTube Music هم پشتیبانی میکنه! (توسط 6K Labs)",
|
"description": "حالا ویجت Amuse از Pear Desktop هم پشتیبانی میکنه! (توسط 6K Labs)",
|
||||||
"name": "Amuse",
|
"name": "Amuse",
|
||||||
"response": {
|
"response": {
|
||||||
"query": "سرور Amuse فعال است. برای دریافت اطلاعات آهنگ، از آدرس /query استفاده کنید."
|
"query": "سرور Amuse فعال است. برای دریافت اطلاعات آهنگ، از آدرس /query استفاده کنید."
|
||||||
@ -436,7 +436,7 @@
|
|||||||
"disconnected": "اتصال قطع شد",
|
"disconnected": "اتصال قطع شد",
|
||||||
"hide-duration-left": "مخفی کردن مدت زمان باقیمانده",
|
"hide-duration-left": "مخفی کردن مدت زمان باقیمانده",
|
||||||
"hide-github-button": "مخفی کردن دکمه لینک گیت هاب",
|
"hide-github-button": "مخفی کردن دکمه لینک گیت هاب",
|
||||||
"play-on-youtube-music": "پخش در یوتیوب موزیک",
|
"play-on-pear-desktop": "پخش در یوتیوب موزیک",
|
||||||
"set-inactivity-timeout": "تنظیم زمان عدم فعالیت"
|
"set-inactivity-timeout": "تنظیم زمان عدم فعالیت"
|
||||||
},
|
},
|
||||||
"name": "Discord Rich Presence",
|
"name": "Discord Rich Presence",
|
||||||
|
|||||||
@ -154,7 +154,7 @@
|
|||||||
"label": "Mukautettu ikkunan otsikko",
|
"label": "Mukautettu ikkunan otsikko",
|
||||||
"prompt": {
|
"prompt": {
|
||||||
"label": "Syötä mukautettu ikkunan otsikko: (jätä tyhjäksi poistaaksesi päältä)",
|
"label": "Syötä mukautettu ikkunan otsikko: (jätä tyhjäksi poistaaksesi päältä)",
|
||||||
"placeholder": "Esimerkki: YouTube Music"
|
"placeholder": "Esimerkki: Pear Desktop"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"like-buttons": {
|
"like-buttons": {
|
||||||
@ -208,8 +208,8 @@
|
|||||||
"restart": "Uudelleen käynnistä appi",
|
"restart": "Uudelleen käynnistä appi",
|
||||||
"show": "Näytä ikkuna",
|
"show": "Näytä ikkuna",
|
||||||
"tooltip": {
|
"tooltip": {
|
||||||
"default": "Youtube Music",
|
"default": "Pear Desktop",
|
||||||
"with-song-info": "Youtube Music {{artist}} - {{title}}"
|
"with-song-info": "Pear Desktop {{artist}} - {{title}}"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -287,7 +287,7 @@
|
|||||||
"name": "Tunnelmallinen Tila"
|
"name": "Tunnelmallinen Tila"
|
||||||
},
|
},
|
||||||
"amuse": {
|
"amuse": {
|
||||||
"description": "Lisää YouTube Music tuen Amusen nyt soitetaan -widgetille, kehittäjänä 6K Labs",
|
"description": "Lisää Pear Desktop tuen Amusen nyt soitetaan -widgetille, kehittäjänä 6K Labs",
|
||||||
"name": "Amuse",
|
"name": "Amuse",
|
||||||
"response": {
|
"response": {
|
||||||
"query": "Amuse API-palvelin on päällä. Käytä GET /query-rajapintaa saadaksesi kappaleen tiedot."
|
"query": "Amuse API-palvelin on päällä. Käytä GET /query-rajapintaa saadaksesi kappaleen tiedot."
|
||||||
@ -369,11 +369,11 @@
|
|||||||
"name": "Sumenna Siirtymäpalkki"
|
"name": "Sumenna Siirtymäpalkki"
|
||||||
},
|
},
|
||||||
"bypass-age-restrictions": {
|
"bypass-age-restrictions": {
|
||||||
"description": "Ohita YouTuben iän vahvistus",
|
"description": "Ohita Music Player iän vahvistus",
|
||||||
"name": "Ohita Ikään Perustuvat Rajoitukset"
|
"name": "Ohita Ikään Perustuvat Rajoitukset"
|
||||||
},
|
},
|
||||||
"captions-selector": {
|
"captions-selector": {
|
||||||
"description": "YouTube Music ääniraitojen tekstitysten valitsin",
|
"description": "Pear Desktop ääniraitojen tekstitysten valitsin",
|
||||||
"menu": {
|
"menu": {
|
||||||
"autoload": "Valitse automaattisesti viimeksi käytetty tekstitys",
|
"autoload": "Valitse automaattisesti viimeksi käytetty tekstitys",
|
||||||
"disable-captions": "Tekstitys ei oletusarvoisesti käytössä"
|
"disable-captions": "Tekstitys ei oletusarvoisesti käytössä"
|
||||||
@ -443,7 +443,7 @@
|
|||||||
"disconnected": "Yhteys katkaistu",
|
"disconnected": "Yhteys katkaistu",
|
||||||
"hide-duration-left": "Piilota kappaleen jäljellä oleva kesto",
|
"hide-duration-left": "Piilota kappaleen jäljellä oleva kesto",
|
||||||
"hide-github-button": "Piilota \"linkki GitHubiin\" -nappi",
|
"hide-github-button": "Piilota \"linkki GitHubiin\" -nappi",
|
||||||
"play-on-youtube-music": "Kuuntele palvelussa YouTube Music",
|
"play-on-pear-desktop": "Kuuntele palvelussa Pear Desktop",
|
||||||
"set-inactivity-timeout": "Aseta toimettomuuden aikakatkaisu"
|
"set-inactivity-timeout": "Aseta toimettomuuden aikakatkaisu"
|
||||||
},
|
},
|
||||||
"name": "Discord Aktiviteetti (Rich Presence)",
|
"name": "Discord Aktiviteetti (Rich Presence)",
|
||||||
|
|||||||
@ -154,7 +154,7 @@
|
|||||||
"label": "Custom na window title",
|
"label": "Custom na window title",
|
||||||
"prompt": {
|
"prompt": {
|
||||||
"label": "I-enter ang custom na window tile: (iwanang blanko para di-mapagana)",
|
"label": "I-enter ang custom na window tile: (iwanang blanko para di-mapagana)",
|
||||||
"placeholder": "Halimbawa: YouTube Music"
|
"placeholder": "Halimbawa: Pear Desktop"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"like-buttons": {
|
"like-buttons": {
|
||||||
@ -208,8 +208,8 @@
|
|||||||
"restart": "I-restart ang App",
|
"restart": "I-restart ang App",
|
||||||
"show": "Ipakita ang window",
|
"show": "Ipakita ang window",
|
||||||
"tooltip": {
|
"tooltip": {
|
||||||
"default": "YouTube Music",
|
"default": "Pear Desktop",
|
||||||
"with-song-info": "YouTube Music: {{artist}} - {{title}}"
|
"with-song-info": "Pear Desktop: {{artist}} - {{title}}"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -287,7 +287,7 @@
|
|||||||
"name": "Ambient Mode"
|
"name": "Ambient Mode"
|
||||||
},
|
},
|
||||||
"amuse": {
|
"amuse": {
|
||||||
"description": "Nagdaragdag ng suporta sa YouTube Music para sa Amuse now playing widget ng 6K Labs",
|
"description": "Nagdaragdag ng suporta sa Pear Desktop para sa Amuse now playing widget ng 6K Labs",
|
||||||
"response": {
|
"response": {
|
||||||
"query": "Tumatakbo ang Amuse API server. Gamitin ang GET /query para makuha ang impo ng kanta."
|
"query": "Tumatakbo ang Amuse API server. Gamitin ang GET /query para makuha ang impo ng kanta."
|
||||||
}
|
}
|
||||||
@ -365,11 +365,11 @@
|
|||||||
"name": "Palabuin ang Bar ng Nabigasyon"
|
"name": "Palabuin ang Bar ng Nabigasyon"
|
||||||
},
|
},
|
||||||
"bypass-age-restrictions": {
|
"bypass-age-restrictions": {
|
||||||
"description": "I-bypass ang pag-verify ng edad ng YouTube",
|
"description": "I-bypass ang pag-verify ng edad ng Music Player",
|
||||||
"name": "I-bypass ang Restriksyon sa Edad"
|
"name": "I-bypass ang Restriksyon sa Edad"
|
||||||
},
|
},
|
||||||
"captions-selector": {
|
"captions-selector": {
|
||||||
"description": "Tagapili ng caption para sa mga audio track ng YouTube Music",
|
"description": "Tagapili ng caption para sa mga audio track ng Pear Desktop",
|
||||||
"menu": {
|
"menu": {
|
||||||
"autoload": "Awtomatikong piliin ang huling ginamit na caption",
|
"autoload": "Awtomatikong piliin ang huling ginamit na caption",
|
||||||
"disable-captions": "Walang mga caption bilang default"
|
"disable-captions": "Walang mga caption bilang default"
|
||||||
@ -446,13 +446,13 @@
|
|||||||
"disconnected": "Nadiskonekta",
|
"disconnected": "Nadiskonekta",
|
||||||
"hide-duration-left": "Itago ang natitirang oras",
|
"hide-duration-left": "Itago ang natitirang oras",
|
||||||
"hide-github-button": "Itago ang button na GitHub link",
|
"hide-github-button": "Itago ang button na GitHub link",
|
||||||
"play-on-youtube-music": "Patugtugin sa YouTube Music",
|
"play-on-pear-desktop": "Patugtugin sa Pear Desktop",
|
||||||
"set-inactivity-timeout": "I-set ang inactivity timeout",
|
"set-inactivity-timeout": "I-set ang inactivity timeout",
|
||||||
"set-status-display-type": {
|
"set-status-display-type": {
|
||||||
"submenu": {
|
"submenu": {
|
||||||
"artist": "Nakikinig sa {artist}",
|
"artist": "Nakikinig sa {artist}",
|
||||||
"title": "Nakikinig sa {song title}",
|
"title": "Nakikinig sa {song title}",
|
||||||
"youtube-music": "Kumikinig sa YouTube Music"
|
"pear-desktop": "Kumikinig sa Pear Desktop"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|||||||
@ -154,7 +154,7 @@
|
|||||||
"label": "Titre de fenêtre personnalisé",
|
"label": "Titre de fenêtre personnalisé",
|
||||||
"prompt": {
|
"prompt": {
|
||||||
"label": "Entrés un titre de fenêtre : (Laissé vide pour déactiver)",
|
"label": "Entrés un titre de fenêtre : (Laissé vide pour déactiver)",
|
||||||
"placeholder": "Exemple : YouTube Musique"
|
"placeholder": "Exemple : Pear Desktop"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"like-buttons": {
|
"like-buttons": {
|
||||||
@ -208,8 +208,8 @@
|
|||||||
"restart": "Redémarrer l'application",
|
"restart": "Redémarrer l'application",
|
||||||
"show": "Afficher la fenêtre",
|
"show": "Afficher la fenêtre",
|
||||||
"tooltip": {
|
"tooltip": {
|
||||||
"default": "YouTube Music",
|
"default": "Pear Desktop",
|
||||||
"with-song-info": "YouTube Music : {{artist}} - {{title}}"
|
"with-song-info": "Pear Desktop : {{artist}} - {{title}}"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -287,7 +287,7 @@
|
|||||||
"name": "Mode ambiant"
|
"name": "Mode ambiant"
|
||||||
},
|
},
|
||||||
"amuse": {
|
"amuse": {
|
||||||
"description": "Ajout de la prise en charge de YouTube Music pour le widget Amuse now playing de 6K Labs",
|
"description": "Ajout de la prise en charge de Pear Desktop pour le widget Amuse now playing de 6K Labs",
|
||||||
"name": "Amuse",
|
"name": "Amuse",
|
||||||
"response": {
|
"response": {
|
||||||
"query": "Le serveur API Amuse est en cours d'exécution. Envoyez une requête GET /query pour obtenir des informations sur la chanson."
|
"query": "Le serveur API Amuse est en cours d'exécution. Envoyez une requête GET /query pour obtenir des informations sur la chanson."
|
||||||
@ -369,11 +369,11 @@
|
|||||||
"name": "Barre de navigation floue"
|
"name": "Barre de navigation floue"
|
||||||
},
|
},
|
||||||
"bypass-age-restrictions": {
|
"bypass-age-restrictions": {
|
||||||
"description": "Contourner la vérification de l'âge de YouTube",
|
"description": "Contourner la vérification de l'âge de Music Player",
|
||||||
"name": "Contourner les restrictions d’âge"
|
"name": "Contourner les restrictions d’âge"
|
||||||
},
|
},
|
||||||
"captions-selector": {
|
"captions-selector": {
|
||||||
"description": "Sélecteur de sous-titres pour les pistes audio YouTube Music",
|
"description": "Sélecteur de sous-titres pour les pistes audio Pear Desktop",
|
||||||
"menu": {
|
"menu": {
|
||||||
"autoload": "Sélectionner automatiquement la dernière légende utilisée",
|
"autoload": "Sélectionner automatiquement la dernière légende utilisée",
|
||||||
"disable-captions": "Pas de sous-titres par défaut"
|
"disable-captions": "Pas de sous-titres par défaut"
|
||||||
@ -456,14 +456,14 @@
|
|||||||
"disconnected": "Déconnecté",
|
"disconnected": "Déconnecté",
|
||||||
"hide-duration-left": "Masquer la durée restante",
|
"hide-duration-left": "Masquer la durée restante",
|
||||||
"hide-github-button": "Masquer le bouton du lien GitHub",
|
"hide-github-button": "Masquer le bouton du lien GitHub",
|
||||||
"play-on-youtube-music": "Jouer sur YouTube Music",
|
"play-on-pear-desktop": "Jouer sur Pear Desktop",
|
||||||
"set-inactivity-timeout": "Définir le délai d'inactivité",
|
"set-inactivity-timeout": "Définir le délai d'inactivité",
|
||||||
"set-status-display-type": {
|
"set-status-display-type": {
|
||||||
"label": "Texte d'état",
|
"label": "Texte d'état",
|
||||||
"submenu": {
|
"submenu": {
|
||||||
"artist": "Écoute {artiste}",
|
"artist": "Écoute {artiste}",
|
||||||
"title": "Écoute {titre de la chanson}",
|
"title": "Écoute {titre de la chanson}",
|
||||||
"youtube-music": "Écoute YouTube Music"
|
"pear-desktop": "Écoute Pear Desktop"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|||||||
@ -279,7 +279,7 @@
|
|||||||
"name": "מצב אווירה"
|
"name": "מצב אווירה"
|
||||||
},
|
},
|
||||||
"amuse": {
|
"amuse": {
|
||||||
"description": "מוסיף תמיכה ב-YouTube Music עבור הווידג'ט של Amuse המתנגן כעת על ידי 6K Labs",
|
"description": "מוסיף תמיכה ב-Pear Desktop עבור הווידג'ט של Amuse המתנגן כעת על ידי 6K Labs",
|
||||||
"name": "משעשע",
|
"name": "משעשע",
|
||||||
"response": {
|
"response": {
|
||||||
"query": "שרת ה-API של Amuse פועל. קבל מידע על השיר באמצעות GET /query."
|
"query": "שרת ה-API של Amuse פועל. קבל מידע על השיר באמצעות GET /query."
|
||||||
@ -365,7 +365,7 @@
|
|||||||
"name": "עקוף את ההחמרות של הגיל"
|
"name": "עקוף את ההחמרות של הגיל"
|
||||||
},
|
},
|
||||||
"captions-selector": {
|
"captions-selector": {
|
||||||
"description": "בורר כתוביות עבור רצועות אודיו של YouTube Music",
|
"description": "בורר כתוביות עבור רצועות אודיו של Pear Desktop",
|
||||||
"menu": {
|
"menu": {
|
||||||
"autoload": "בחר אוטומטי את הכתובית האחרונה שנבחרה",
|
"autoload": "בחר אוטומטי את הכתובית האחרונה שנבחרה",
|
||||||
"disable-captions": "ברירת מחד ללא כתוביות"
|
"disable-captions": "ברירת מחד ללא כתוביות"
|
||||||
@ -419,7 +419,7 @@
|
|||||||
"connected": "מחובר",
|
"connected": "מחובר",
|
||||||
"disconnected": "מנותק",
|
"disconnected": "מנותק",
|
||||||
"hide-github-button": "הסתר את לחצן הקישור של GitHub",
|
"hide-github-button": "הסתר את לחצן הקישור של GitHub",
|
||||||
"play-on-youtube-music": "הפעל ביוטיוב מיוזיק",
|
"play-on-pear-desktop": "הפעל ביוטיוב מיוזיק",
|
||||||
"set-inactivity-timeout": "הגדר פסק זמן לחוסר פעילות"
|
"set-inactivity-timeout": "הגדר פסק זמן לחוסר פעילות"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|||||||
@ -287,7 +287,7 @@
|
|||||||
"name": "अम्बिएन्ट मोड्"
|
"name": "अम्बिएन्ट मोड्"
|
||||||
},
|
},
|
||||||
"amuse": {
|
"amuse": {
|
||||||
"description": "6K लैब्स द्वारा Amuse now playing विजेट के लिए YouTube म्यूजिक समर्थन जोड़ा गया",
|
"description": "6K लैब्स द्वारा Amuse now playing विजेट के लिए Music Player म्यूजिक समर्थन जोड़ा गया",
|
||||||
"name": "मन बहलाना",
|
"name": "मन बहलाना",
|
||||||
"response": {
|
"response": {
|
||||||
"query": "अमयूस ए.पि.ऐ. चल रहा है। गाने की जान्कारि होने के लिये GET /query कीजिये।"
|
"query": "अमयूस ए.पि.ऐ. चल रहा है। गाने की जान्कारि होने के लिये GET /query कीजिये।"
|
||||||
@ -369,11 +369,11 @@
|
|||||||
"name": "नेविगेशन बार को ब्लर करें"
|
"name": "नेविगेशन बार को ब्लर करें"
|
||||||
},
|
},
|
||||||
"bypass-age-restrictions": {
|
"bypass-age-restrictions": {
|
||||||
"description": "YouTube आयु की जांच को बायपास करें",
|
"description": "Music Player आयु की जांच को बायपास करें",
|
||||||
"name": "आयु प्रतिबंध को बायपास करें"
|
"name": "आयु प्रतिबंध को बायपास करें"
|
||||||
},
|
},
|
||||||
"captions-selector": {
|
"captions-selector": {
|
||||||
"description": "YouTube म्यूज़िक ऑडियो ट्रैक के लिए कैप्शन चयनकर्ता",
|
"description": "Pear Desktop म्यूज़िक ऑडियो ट्रैक के लिए कैप्शन चयनकर्ता",
|
||||||
"menu": {
|
"menu": {
|
||||||
"autoload": "अंतिम बार उपयोग किए गए कैप्शन का ऑटोमैटिक रूप से चयन करें",
|
"autoload": "अंतिम बार उपयोग किए गए कैप्शन का ऑटोमैटिक रूप से चयन करें",
|
||||||
"disable-captions": "डिफ़ॉल्ट रूप में कोई कैप्शन नहीं"
|
"disable-captions": "डिफ़ॉल्ट रूप में कोई कैप्शन नहीं"
|
||||||
@ -450,7 +450,7 @@
|
|||||||
"disconnected": "डिस्कनेक्ट किया गया",
|
"disconnected": "डिस्कनेक्ट किया गया",
|
||||||
"hide-duration-left": "शेष अवधि छिपाएँ",
|
"hide-duration-left": "शेष अवधि छिपाएँ",
|
||||||
"hide-github-button": "GitHub लिंक के बटन को छिपाएँ",
|
"hide-github-button": "GitHub लिंक के बटन को छिपाएँ",
|
||||||
"play-on-youtube-music": "YouTube म्यूज़िक पर चलाएँ",
|
"play-on-pear-desktop": "Pear Desktop म्यूज़िक पर चलाएँ",
|
||||||
"set-inactivity-timeout": "निष्क्रियता समय समाप्ति सेट करें"
|
"set-inactivity-timeout": "निष्क्रियता समय समाप्ति सेट करें"
|
||||||
},
|
},
|
||||||
"name": "डिस्कॉर्ड रिच प्रेजेंस",
|
"name": "डिस्कॉर्ड रिच प्रेजेंस",
|
||||||
|
|||||||
@ -201,8 +201,8 @@
|
|||||||
"restart": "Ponovo Pokreni Aplikaciju",
|
"restart": "Ponovo Pokreni Aplikaciju",
|
||||||
"show": "Prikaži prozor",
|
"show": "Prikaži prozor",
|
||||||
"tooltip": {
|
"tooltip": {
|
||||||
"default": "YouTube Glazba",
|
"default": "Pear Desktop",
|
||||||
"with-song-info": "YouTube Glazba: {{artist}} - {{title}}"
|
"with-song-info": "Pear Desktop: {{artist}} - {{title}}"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -280,7 +280,7 @@
|
|||||||
"name": "Ambijentalni Način"
|
"name": "Ambijentalni Način"
|
||||||
},
|
},
|
||||||
"amuse": {
|
"amuse": {
|
||||||
"description": "Dodaje podršku za YouTube Glazbu za widget \"sada reproducira\" od Amuse od strane 6K Labs",
|
"description": "Dodaje podršku za Pear Desktop za widget \"sada reproducira\" od Amuse od strane 6K Labs",
|
||||||
"name": "Amuse",
|
"name": "Amuse",
|
||||||
"response": {
|
"response": {
|
||||||
"query": "Amuse API poslužitelj je pokrenut. Koristi GET /query za dohvat informacija o pjesmi."
|
"query": "Amuse API poslužitelj je pokrenut. Koristi GET /query za dohvat informacija o pjesmi."
|
||||||
@ -362,11 +362,11 @@
|
|||||||
"name": "Zamagli Navigacijsku Traku"
|
"name": "Zamagli Navigacijsku Traku"
|
||||||
},
|
},
|
||||||
"bypass-age-restrictions": {
|
"bypass-age-restrictions": {
|
||||||
"description": "Zaobiđi YouTubeovu provjeru dobi",
|
"description": "Zaobiđi Music Player provjeru dobi",
|
||||||
"name": "Zaobiđi dobna ograničenja"
|
"name": "Zaobiđi dobna ograničenja"
|
||||||
},
|
},
|
||||||
"captions-selector": {
|
"captions-selector": {
|
||||||
"description": "Izbornik titlova za audiozapise od YouTube Musica",
|
"description": "Izbornik titlova za audiozapise od Pear Desktopa",
|
||||||
"menu": {
|
"menu": {
|
||||||
"autoload": "Automatski izaberi posljednje korištene titlove",
|
"autoload": "Automatski izaberi posljednje korištene titlove",
|
||||||
"disable-captions": "Bez titlova"
|
"disable-captions": "Bez titlova"
|
||||||
@ -436,7 +436,7 @@
|
|||||||
"disconnected": "Odspojen",
|
"disconnected": "Odspojen",
|
||||||
"hide-duration-left": "Sakrij preostalo vrijeme",
|
"hide-duration-left": "Sakrij preostalo vrijeme",
|
||||||
"hide-github-button": "Sakrij gumb sa GitHub poveznicom",
|
"hide-github-button": "Sakrij gumb sa GitHub poveznicom",
|
||||||
"play-on-youtube-music": "Reproduciraj na YouTube Musicu",
|
"play-on-pear-desktop": "Reproduciraj na Pear Desktopu",
|
||||||
"set-inactivity-timeout": "Postavi vremensko ograničenje neaktivnosti (inactivity timeout)"
|
"set-inactivity-timeout": "Postavi vremensko ograničenje neaktivnosti (inactivity timeout)"
|
||||||
},
|
},
|
||||||
"name": "Discord Rich Presence",
|
"name": "Discord Rich Presence",
|
||||||
|
|||||||
@ -154,7 +154,7 @@
|
|||||||
"label": "Saját ablak cím",
|
"label": "Saját ablak cím",
|
||||||
"prompt": {
|
"prompt": {
|
||||||
"label": "Kérem az egyéni ablak címét: (hagyd üresen a kikapcsoláshoz)",
|
"label": "Kérem az egyéni ablak címét: (hagyd üresen a kikapcsoláshoz)",
|
||||||
"placeholder": "Példa: Youtube Music"
|
"placeholder": "Példa: Pear Desktop"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"like-buttons": {
|
"like-buttons": {
|
||||||
@ -208,8 +208,8 @@
|
|||||||
"restart": "YT Music újraindítása",
|
"restart": "YT Music újraindítása",
|
||||||
"show": "Ablak megjelenítése",
|
"show": "Ablak megjelenítése",
|
||||||
"tooltip": {
|
"tooltip": {
|
||||||
"default": "YouTube Music",
|
"default": "Pear Desktop",
|
||||||
"with-song-info": "YouTube Music: {{artist}} - {{title}}"
|
"with-song-info": "Pear Desktop: {{artist}} - {{title}}"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -287,7 +287,7 @@
|
|||||||
"name": "Ambient mód"
|
"name": "Ambient mód"
|
||||||
},
|
},
|
||||||
"amuse": {
|
"amuse": {
|
||||||
"description": "Hozzáadja a YouTube Music támogatását az Amuse \"now playing\" widgethez a 6K Labs által",
|
"description": "Hozzáadja a Pear Desktop támogatását az Amuse \"now playing\" widgethez a 6K Labs által",
|
||||||
"name": "Amuse",
|
"name": "Amuse",
|
||||||
"response": {
|
"response": {
|
||||||
"query": "Az Amuse API szerver fut. Használja a GET /query kérést a dalinformációk lekéréséhez."
|
"query": "Az Amuse API szerver fut. Használja a GET /query kérést a dalinformációk lekéréséhez."
|
||||||
@ -367,11 +367,11 @@
|
|||||||
"name": "Navigációs sáv elmosása"
|
"name": "Navigációs sáv elmosása"
|
||||||
},
|
},
|
||||||
"bypass-age-restrictions": {
|
"bypass-age-restrictions": {
|
||||||
"description": "A YouTube korellenőrzését kihagyja, ezáltal nem kel meg erősíteni a zene meghallgatása elött. (Automatikusan megerősítve lesz.)",
|
"description": "A Music Player korellenőrzését kihagyja, ezáltal nem kel meg erősíteni a zene meghallgatása elött. (Automatikusan megerősítve lesz.)",
|
||||||
"name": "Korellenőrzés kihagyása"
|
"name": "Korellenőrzés kihagyása"
|
||||||
},
|
},
|
||||||
"captions-selector": {
|
"captions-selector": {
|
||||||
"description": "Felirat választó a YouTube Music zenékhez",
|
"description": "Felirat választó a Pear Desktop zenékhez",
|
||||||
"menu": {
|
"menu": {
|
||||||
"autoload": "Automatikusan kiválasztja az utoljára használt feliratot",
|
"autoload": "Automatikusan kiválasztja az utoljára használt feliratot",
|
||||||
"disable-captions": "Alapértelmezetten nincsenek feliratok"
|
"disable-captions": "Alapértelmezetten nincsenek feliratok"
|
||||||
@ -453,14 +453,14 @@
|
|||||||
"disconnected": "Nincs Kapcsolódva",
|
"disconnected": "Nincs Kapcsolódva",
|
||||||
"hide-duration-left": "Hátralévő idő elrejtése",
|
"hide-duration-left": "Hátralévő idő elrejtése",
|
||||||
"hide-github-button": "GitHub url gombjának elrejtése",
|
"hide-github-button": "GitHub url gombjának elrejtése",
|
||||||
"play-on-youtube-music": "Lejátszás a YouTube Music-on",
|
"play-on-pear-desktop": "Lejátszás a Pear Desktop-on",
|
||||||
"set-inactivity-timeout": "Inaktivitási időkorlát beállítása",
|
"set-inactivity-timeout": "Inaktivitási időkorlát beállítása",
|
||||||
"set-status-display-type": {
|
"set-status-display-type": {
|
||||||
"label": "Tevékenység szöveg",
|
"label": "Tevékenység szöveg",
|
||||||
"submenu": {
|
"submenu": {
|
||||||
"artist": "Hallgatja: {artist}",
|
"artist": "Hallgatja: {artist}",
|
||||||
"title": "Hallgatja: {song title}",
|
"title": "Hallgatja: {song title}",
|
||||||
"youtube-music": "Hallgatja: YouTube Music"
|
"pear-desktop": "Hallgatja: Pear Desktop"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|||||||
@ -154,7 +154,7 @@
|
|||||||
"label": "Judul jendela kustom",
|
"label": "Judul jendela kustom",
|
||||||
"prompt": {
|
"prompt": {
|
||||||
"label": "Masukkan judul jendela kustom (kosongkan untuk menonaktifkan)",
|
"label": "Masukkan judul jendela kustom (kosongkan untuk menonaktifkan)",
|
||||||
"placeholder": "Contoh: YouTube Music"
|
"placeholder": "Contoh: Pear Desktop"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"like-buttons": {
|
"like-buttons": {
|
||||||
@ -208,8 +208,8 @@
|
|||||||
"restart": "Restart aplikasi",
|
"restart": "Restart aplikasi",
|
||||||
"show": "Tampilkan jendela",
|
"show": "Tampilkan jendela",
|
||||||
"tooltip": {
|
"tooltip": {
|
||||||
"default": "YouTube Musik",
|
"default": "Pear Desktop",
|
||||||
"with-song-info": "YouTube Musik: {{artist}} - {{title}}"
|
"with-song-info": "Pear Desktop: {{artist}} - {{title}}"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -287,7 +287,7 @@
|
|||||||
"name": "Mode ambient"
|
"name": "Mode ambient"
|
||||||
},
|
},
|
||||||
"amuse": {
|
"amuse": {
|
||||||
"description": "Menambahkan dukungan YouTube Music untuk widget Amuse yang sedang diputar oleh 6K Labs",
|
"description": "Menambahkan dukungan Pear Desktop untuk widget Amuse yang sedang diputar oleh 6K Labs",
|
||||||
"name": "Amuse",
|
"name": "Amuse",
|
||||||
"response": {
|
"response": {
|
||||||
"query": "Server API Amuse sedang berjalan. GET /query untuk mendapatkan info lagu."
|
"query": "Server API Amuse sedang berjalan. GET /query untuk mendapatkan info lagu."
|
||||||
@ -369,11 +369,11 @@
|
|||||||
"name": "Buramkan Bar Navigasi"
|
"name": "Buramkan Bar Navigasi"
|
||||||
},
|
},
|
||||||
"bypass-age-restrictions": {
|
"bypass-age-restrictions": {
|
||||||
"description": "Lewati verifikasi umur dari YouTube",
|
"description": "Lewati verifikasi umur dari Music Player",
|
||||||
"name": "Lewati batasan umur"
|
"name": "Lewati batasan umur"
|
||||||
},
|
},
|
||||||
"captions-selector": {
|
"captions-selector": {
|
||||||
"description": "Pemilih caption untuk trek audio YouTube Music",
|
"description": "Pemilih caption untuk trek audio Pear Desktop",
|
||||||
"menu": {
|
"menu": {
|
||||||
"autoload": "Pilih caption terakhir secara otomatis",
|
"autoload": "Pilih caption terakhir secara otomatis",
|
||||||
"disable-captions": "Tidak ada caption secara default"
|
"disable-captions": "Tidak ada caption secara default"
|
||||||
@ -456,14 +456,14 @@
|
|||||||
"disconnected": "Terputus",
|
"disconnected": "Terputus",
|
||||||
"hide-duration-left": "Sembunyikan sisa durasi",
|
"hide-duration-left": "Sembunyikan sisa durasi",
|
||||||
"hide-github-button": "Sembunyikan tombol link GitHub",
|
"hide-github-button": "Sembunyikan tombol link GitHub",
|
||||||
"play-on-youtube-music": "Mainkan di YouTube Music",
|
"play-on-pear-desktop": "Mainkan di Pear Desktop",
|
||||||
"set-inactivity-timeout": "Tetapkan batas waktu tidak aktif",
|
"set-inactivity-timeout": "Tetapkan batas waktu tidak aktif",
|
||||||
"set-status-display-type": {
|
"set-status-display-type": {
|
||||||
"label": "Teks status",
|
"label": "Teks status",
|
||||||
"submenu": {
|
"submenu": {
|
||||||
"artist": "Sedang mendengarkan {artist}",
|
"artist": "Sedang mendengarkan {artist}",
|
||||||
"title": "Sedang mendengarkan {song title}",
|
"title": "Sedang mendengarkan {song title}",
|
||||||
"youtube-music": "Sedang mendengarkan YouTube Music"
|
"pear-desktop": "Sedang mendengarkan Pear Desktop"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|||||||
@ -201,8 +201,8 @@
|
|||||||
"restart": "Endurræstu Forritið",
|
"restart": "Endurræstu Forritið",
|
||||||
"show": "Sýna glugga",
|
"show": "Sýna glugga",
|
||||||
"tooltip": {
|
"tooltip": {
|
||||||
"default": "YouTube Tónlist",
|
"default": "Pear Desktop",
|
||||||
"with-song-info": "YouTube Tónlist: {{artist}} - {{title}}"
|
"with-song-info": "Pear Desktop: {{artist}} - {{title}}"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -331,11 +331,11 @@
|
|||||||
"name": "Þoka Leiðsagnarstika"
|
"name": "Þoka Leiðsagnarstika"
|
||||||
},
|
},
|
||||||
"bypass-age-restrictions": {
|
"bypass-age-restrictions": {
|
||||||
"description": "Framhjá aldursstaðfestingu YouTube",
|
"description": "Framhjá aldursstaðfestingu Music Player",
|
||||||
"name": "Farið Framhjá Aldurstakmörkunum"
|
"name": "Farið Framhjá Aldurstakmörkunum"
|
||||||
},
|
},
|
||||||
"captions-selector": {
|
"captions-selector": {
|
||||||
"description": "Skjátextavali fyrir YouTube Tónlist hljóðrásir",
|
"description": "Skjátextavali fyrir Pear Desktop hljóðrásir",
|
||||||
"menu": {
|
"menu": {
|
||||||
"autoload": "Veldu sjálfkrafa síðast notaða myndatexta",
|
"autoload": "Veldu sjálfkrafa síðast notaða myndatexta",
|
||||||
"disable-captions": "Engir skjátextar sjálfgefið"
|
"disable-captions": "Engir skjátextar sjálfgefið"
|
||||||
@ -400,7 +400,7 @@
|
|||||||
"disconnected": "Aftengt",
|
"disconnected": "Aftengt",
|
||||||
"hide-duration-left": "Fela tímalengd til vinstri",
|
"hide-duration-left": "Fela tímalengd til vinstri",
|
||||||
"hide-github-button": "Fela GitHub tengilhnapp",
|
"hide-github-button": "Fela GitHub tengilhnapp",
|
||||||
"play-on-youtube-music": "Spilaðu á YouTube Tónlist",
|
"play-on-pear-desktop": "Spilaðu á Pear Desktop",
|
||||||
"set-inactivity-timeout": "Stilltu tímamörk fyrir óvirkni"
|
"set-inactivity-timeout": "Stilltu tímamörk fyrir óvirkni"
|
||||||
},
|
},
|
||||||
"name": "Discord Rík Nærvera",
|
"name": "Discord Rík Nærvera",
|
||||||
|
|||||||
@ -154,7 +154,7 @@
|
|||||||
"label": "Personalizza titolo finestra",
|
"label": "Personalizza titolo finestra",
|
||||||
"prompt": {
|
"prompt": {
|
||||||
"label": "Inserisci un titolo della finestra personalizzato: (lascia vuoto per disattivare)",
|
"label": "Inserisci un titolo della finestra personalizzato: (lascia vuoto per disattivare)",
|
||||||
"placeholder": "Esempio: YouTube Music"
|
"placeholder": "Esempio: Pear Desktop"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"like-buttons": {
|
"like-buttons": {
|
||||||
@ -208,8 +208,8 @@
|
|||||||
"restart": "Riavvia l'app",
|
"restart": "Riavvia l'app",
|
||||||
"show": "Mostra finestra",
|
"show": "Mostra finestra",
|
||||||
"tooltip": {
|
"tooltip": {
|
||||||
"default": "YouTube Music",
|
"default": "Pear Desktop",
|
||||||
"with-song-info": "YouTube Music: {{artist}} - {{title}}"
|
"with-song-info": "Pear Desktop: {{artist}} - {{title}}"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -287,7 +287,7 @@
|
|||||||
"name": "Modalità Ambiente"
|
"name": "Modalità Ambiente"
|
||||||
},
|
},
|
||||||
"amuse": {
|
"amuse": {
|
||||||
"description": "Aggiunge il supporto a YouTube Music per il widget Amuse Now Playing di 6K Labs",
|
"description": "Aggiunge il supporto a Pear Desktop per il widget Amuse Now Playing di 6K Labs",
|
||||||
"name": "Amuse",
|
"name": "Amuse",
|
||||||
"response": {
|
"response": {
|
||||||
"query": "Il server API di Amuse è in funzione. GET /query per ottenere informazioni sui brani."
|
"query": "Il server API di Amuse è in funzione. GET /query per ottenere informazioni sui brani."
|
||||||
@ -369,11 +369,11 @@
|
|||||||
"name": "Barra di navigazione trasparente"
|
"name": "Barra di navigazione trasparente"
|
||||||
},
|
},
|
||||||
"bypass-age-restrictions": {
|
"bypass-age-restrictions": {
|
||||||
"description": "Bypassa la verifica dell'età di YouTube",
|
"description": "Bypassa la verifica dell'età di Music Player",
|
||||||
"name": "Aggira i limiti d'età"
|
"name": "Aggira i limiti d'età"
|
||||||
},
|
},
|
||||||
"captions-selector": {
|
"captions-selector": {
|
||||||
"description": "Selettore sottotitolo per le tracce audio di YouTube",
|
"description": "Selettore sottotitolo per le tracce audio di Pear Desktop",
|
||||||
"menu": {
|
"menu": {
|
||||||
"autoload": "Seleziona automaticamente l'ultimo sottotitolo utilizzato",
|
"autoload": "Seleziona automaticamente l'ultimo sottotitolo utilizzato",
|
||||||
"disable-captions": "Disattiva i sottotitoli"
|
"disable-captions": "Disattiva i sottotitoli"
|
||||||
@ -456,14 +456,14 @@
|
|||||||
"disconnected": "Disconnesso",
|
"disconnected": "Disconnesso",
|
||||||
"hide-duration-left": "Nascondi la durata rimasta",
|
"hide-duration-left": "Nascondi la durata rimasta",
|
||||||
"hide-github-button": "Nascondi il pulsante link a GitHub",
|
"hide-github-button": "Nascondi il pulsante link a GitHub",
|
||||||
"play-on-youtube-music": "Riproduci su YouTube Music",
|
"play-on-pear-desktop": "Riproduci su Pear Desktop",
|
||||||
"set-inactivity-timeout": "Imposta il timeout di inattività",
|
"set-inactivity-timeout": "Imposta il timeout di inattività",
|
||||||
"set-status-display-type": {
|
"set-status-display-type": {
|
||||||
"label": "Testo dello status",
|
"label": "Testo dello status",
|
||||||
"submenu": {
|
"submenu": {
|
||||||
"artist": "Stai ascoltando {artist}",
|
"artist": "Stai ascoltando {artist}",
|
||||||
"title": "Stai ascoltando {song title}",
|
"title": "Stai ascoltando {song title}",
|
||||||
"youtube-music": "Ascoltando YouTube Music"
|
"pear-desktop": "Ascoltando Pear Desktop"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|||||||
@ -154,7 +154,7 @@
|
|||||||
"label": "カスタムウィンドウタイトル",
|
"label": "カスタムウィンドウタイトル",
|
||||||
"prompt": {
|
"prompt": {
|
||||||
"label": "カスタムウィンドウタイトルを入力: (未入力の場合無効になります)",
|
"label": "カスタムウィンドウタイトルを入力: (未入力の場合無効になります)",
|
||||||
"placeholder": "例: YouTube Music"
|
"placeholder": "例: Pear Desktop"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"like-buttons": {
|
"like-buttons": {
|
||||||
@ -208,8 +208,8 @@
|
|||||||
"restart": "アプリを再起動",
|
"restart": "アプリを再起動",
|
||||||
"show": "ウィンドウを表示",
|
"show": "ウィンドウを表示",
|
||||||
"tooltip": {
|
"tooltip": {
|
||||||
"default": "YouTube ミュージック",
|
"default": "Pear Desktop",
|
||||||
"with-song-info": "YouTube ミュージック: {{artist}} - {{title}}"
|
"with-song-info": "Pear Desktop: {{artist}} - {{title}}"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -287,7 +287,7 @@
|
|||||||
"name": "アンビエント モード"
|
"name": "アンビエント モード"
|
||||||
},
|
},
|
||||||
"amuse": {
|
"amuse": {
|
||||||
"description": "6K LabsのAmuse再生中ウィジェットがYouTube Musicに対応しました",
|
"description": "6K LabsのAmuse再生中ウィジェットがPear Desktopに対応しました",
|
||||||
"name": "Amuse",
|
"name": "Amuse",
|
||||||
"response": {
|
"response": {
|
||||||
"query": "AmuseのAPIサーバーが稼働中です。GET /query で楽曲情報を取得できます。"
|
"query": "AmuseのAPIサーバーが稼働中です。GET /query で楽曲情報を取得できます。"
|
||||||
@ -373,7 +373,7 @@
|
|||||||
"name": "年齢制限迂回"
|
"name": "年齢制限迂回"
|
||||||
},
|
},
|
||||||
"captions-selector": {
|
"captions-selector": {
|
||||||
"description": "YouTube Musicトラック用字幕選択機",
|
"description": "Pear Desktopトラック用字幕選択機",
|
||||||
"menu": {
|
"menu": {
|
||||||
"autoload": "最後の字幕を自動に選択",
|
"autoload": "最後の字幕を自動に選択",
|
||||||
"disable-captions": "デフォルトで字幕を無効化"
|
"disable-captions": "デフォルトで字幕を無効化"
|
||||||
@ -456,14 +456,14 @@
|
|||||||
"disconnected": "切断済み",
|
"disconnected": "切断済み",
|
||||||
"hide-duration-left": "残りの再生時間を隠す",
|
"hide-duration-left": "残りの再生時間を隠す",
|
||||||
"hide-github-button": "GitHubリンクボタンを隠す",
|
"hide-github-button": "GitHubリンクボタンを隠す",
|
||||||
"play-on-youtube-music": "YouTube Musicで再生",
|
"play-on-pear-desktop": "Pear Desktopで再生",
|
||||||
"set-inactivity-timeout": "タイムアウト時間を設定",
|
"set-inactivity-timeout": "タイムアウト時間を設定",
|
||||||
"set-status-display-type": {
|
"set-status-display-type": {
|
||||||
"label": "ステータステキスト",
|
"label": "ステータステキスト",
|
||||||
"submenu": {
|
"submenu": {
|
||||||
"artist": "{artist}を聴いている",
|
"artist": "{artist}を聴いている",
|
||||||
"title": "{曲名}を聴いている",
|
"title": "{曲名}を聴いている",
|
||||||
"youtube-music": "YouTube Musicを聴く"
|
"pear-desktop": "Pear Desktopを聴く"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|||||||
@ -154,7 +154,7 @@
|
|||||||
"label": "사용자 정의 앱 제목",
|
"label": "사용자 정의 앱 제목",
|
||||||
"prompt": {
|
"prompt": {
|
||||||
"label": "앱 제목으로 표시할 내용 : (빈 칸 일시 비활성화)",
|
"label": "앱 제목으로 표시할 내용 : (빈 칸 일시 비활성화)",
|
||||||
"placeholder": "예: YouTube Music"
|
"placeholder": "예: Pear Desktop"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"like-buttons": {
|
"like-buttons": {
|
||||||
@ -287,7 +287,7 @@
|
|||||||
"name": "앰비언트 모드"
|
"name": "앰비언트 모드"
|
||||||
},
|
},
|
||||||
"amuse": {
|
"amuse": {
|
||||||
"description": "6K Labs Amuse의 'now playing' 위젯에 YouTube Music 지원 추가",
|
"description": "6K Labs Amuse의 'now playing' 위젯에 Pear Desktop 지원 추가",
|
||||||
"name": "Amuse",
|
"name": "Amuse",
|
||||||
"response": {
|
"response": {
|
||||||
"query": "Amuse API 서버가 실행 중입니다. GET /query로 노래 정보를 가져오세요."
|
"query": "Amuse API 서버가 실행 중입니다. GET /query로 노래 정보를 가져오세요."
|
||||||
@ -373,7 +373,7 @@
|
|||||||
"name": "나이 제한 우회"
|
"name": "나이 제한 우회"
|
||||||
},
|
},
|
||||||
"captions-selector": {
|
"captions-selector": {
|
||||||
"description": "YouTube Music 트랙용 자막 선택기입니다",
|
"description": "Pear Desktop 트랙용 자막 선택기입니다",
|
||||||
"menu": {
|
"menu": {
|
||||||
"autoload": "마지막으로 사용한 자막을 자동으로 선택",
|
"autoload": "마지막으로 사용한 자막을 자동으로 선택",
|
||||||
"disable-captions": "기본 자막 제거"
|
"disable-captions": "기본 자막 제거"
|
||||||
@ -456,14 +456,14 @@
|
|||||||
"disconnected": "연결 해제 됨",
|
"disconnected": "연결 해제 됨",
|
||||||
"hide-duration-left": "남은 재생 시간 숨기기",
|
"hide-duration-left": "남은 재생 시간 숨기기",
|
||||||
"hide-github-button": "GitHub 링크 버튼 숨기기",
|
"hide-github-button": "GitHub 링크 버튼 숨기기",
|
||||||
"play-on-youtube-music": "유튜브 뮤직에서 재생",
|
"play-on-pear-desktop": "유튜브 뮤직에서 재생",
|
||||||
"set-inactivity-timeout": "비활성 시간 제한 설정",
|
"set-inactivity-timeout": "비활성 시간 제한 설정",
|
||||||
"set-status-display-type": {
|
"set-status-display-type": {
|
||||||
"label": "상태 텍스트",
|
"label": "상태 텍스트",
|
||||||
"submenu": {
|
"submenu": {
|
||||||
"artist": "{아티스트} 듣는 중",
|
"artist": "{아티스트} 듣는 중",
|
||||||
"title": "{곡 제목} 듣는 중",
|
"title": "{곡 제목} 듣는 중",
|
||||||
"youtube-music": "YouTube Music 듣는 중"
|
"pear-desktop": "Pear Desktop 듣는 중"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|||||||
@ -152,7 +152,7 @@
|
|||||||
"submenu": {
|
"submenu": {
|
||||||
"custom-window-title": {
|
"custom-window-title": {
|
||||||
"prompt": {
|
"prompt": {
|
||||||
"placeholder": "Pavyzdys: YouTube Music"
|
"placeholder": "Pavyzdys: Pear Desktop"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"like-buttons": {
|
"like-buttons": {
|
||||||
@ -206,8 +206,8 @@
|
|||||||
"restart": "Perkrauti programą",
|
"restart": "Perkrauti programą",
|
||||||
"show": "Rodyti langą",
|
"show": "Rodyti langą",
|
||||||
"tooltip": {
|
"tooltip": {
|
||||||
"default": "Youtube Music",
|
"default": "Pear Desktop",
|
||||||
"with-song-info": "YouTube Music: {{artist}} - {{title}}"
|
"with-song-info": "Pear Desktop: {{artist}} - {{title}}"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -285,7 +285,7 @@
|
|||||||
"name": "Aplinkos rėžimas"
|
"name": "Aplinkos rėžimas"
|
||||||
},
|
},
|
||||||
"amuse": {
|
"amuse": {
|
||||||
"description": "Prideda Youtube Muzika palaikyma Amuse grojimo valdikliui pagal 6K Labs",
|
"description": "Prideda Pear Desktop palaikyma Amuse grojimo valdikliui pagal 6K Labs",
|
||||||
"name": "Amuse (Platforma Dainininkams)",
|
"name": "Amuse (Platforma Dainininkams)",
|
||||||
"response": {
|
"response": {
|
||||||
"query": "Amuse API serveris yra veikiantis. Parašykite Get /query kad gautumėte dainos informacija."
|
"query": "Amuse API serveris yra veikiantis. Parašykite Get /query kad gautumėte dainos informacija."
|
||||||
@ -343,11 +343,11 @@
|
|||||||
"name": "Sulieti Navigacijos Lentą"
|
"name": "Sulieti Navigacijos Lentą"
|
||||||
},
|
},
|
||||||
"bypass-age-restrictions": {
|
"bypass-age-restrictions": {
|
||||||
"description": "Apeiti \"Youtube\" amžiaus patikrinimą",
|
"description": "Apeiti \"Music Player\" amžiaus patikrinimą",
|
||||||
"name": "Apeiti Amžiaus Apribojimus"
|
"name": "Apeiti Amžiaus Apribojimus"
|
||||||
},
|
},
|
||||||
"captions-selector": {
|
"captions-selector": {
|
||||||
"description": "„YouTube Music“ Garso takelių antraščių parinkiklis",
|
"description": "„Pear Desktop“ Garso takelių antraščių parinkiklis",
|
||||||
"menu": {
|
"menu": {
|
||||||
"autoload": "Automatiškai pasirinkti paskutinę naudotą antraštę",
|
"autoload": "Automatiškai pasirinkti paskutinę naudotą antraštę",
|
||||||
"disable-captions": "Pagal numatytuosius nustatymus išjungti antraštės"
|
"disable-captions": "Pagal numatytuosius nustatymus išjungti antraštės"
|
||||||
@ -427,13 +427,13 @@
|
|||||||
"disconnected": "Atsijungta",
|
"disconnected": "Atsijungta",
|
||||||
"hide-duration-left": "Slėpti kiek liko laiko",
|
"hide-duration-left": "Slėpti kiek liko laiko",
|
||||||
"hide-github-button": "Slėpti \"GitHub\" nuorodos mygtuką",
|
"hide-github-button": "Slėpti \"GitHub\" nuorodos mygtuką",
|
||||||
"play-on-youtube-music": "Leisti ant \"Youtube Music\"",
|
"play-on-pear-desktop": "Leisti ant \"Pear Desktop\"",
|
||||||
"set-inactivity-timeout": "Nustatyti neveiklumo laiką",
|
"set-inactivity-timeout": "Nustatyti neveiklumo laiką",
|
||||||
"set-status-display-type": {
|
"set-status-display-type": {
|
||||||
"submenu": {
|
"submenu": {
|
||||||
"artist": "Klausosi {artist]",
|
"artist": "Klausosi {artist]",
|
||||||
"title": "Klausosi {song title}",
|
"title": "Klausosi {song title}",
|
||||||
"youtube-music": "Klausosi Youtube Music"
|
"pear-desktop": "Klausosi Pear Desktop"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|||||||
@ -156,7 +156,7 @@
|
|||||||
"hide": "Paslēpt",
|
"hide": "Paslēpt",
|
||||||
"label": "Like pogas"
|
"label": "Like pogas"
|
||||||
},
|
},
|
||||||
"remove-upgrade-button": "Noslēpt YouTube Premium pogu",
|
"remove-upgrade-button": "Noslēpt Premium pogu",
|
||||||
"theme": {
|
"theme": {
|
||||||
"dialog": {
|
"dialog": {
|
||||||
"button": {
|
"button": {
|
||||||
@ -201,8 +201,8 @@
|
|||||||
"restart": "Restartēt Lietotni",
|
"restart": "Restartēt Lietotni",
|
||||||
"show": "Rādīt logu",
|
"show": "Rādīt logu",
|
||||||
"tooltip": {
|
"tooltip": {
|
||||||
"default": "YouTube Music",
|
"default": "Pear Desktop",
|
||||||
"with-song-info": "YouTube Music: {{artist}} - {{title}}"
|
"with-song-info": "Pear Desktop: {{artist}} - {{title}}"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -280,7 +280,7 @@
|
|||||||
"name": "Ambientais Režīms"
|
"name": "Ambientais Režīms"
|
||||||
},
|
},
|
||||||
"amuse": {
|
"amuse": {
|
||||||
"description": "Pievieno YouTube Music atblastu priekš Amuse \"tagad spēlē\" no 6K Labs",
|
"description": "Pievieno Pear Desktop atblastu priekš Amuse \"tagad spēlē\" no 6K Labs",
|
||||||
"name": "Amuse",
|
"name": "Amuse",
|
||||||
"response": {
|
"response": {
|
||||||
"query": "Amuse API serveris ir palaists. GET /query lai dabūtu dziesmas info."
|
"query": "Amuse API serveris ir palaists. GET /query lai dabūtu dziesmas info."
|
||||||
@ -362,11 +362,11 @@
|
|||||||
"name": "Izplūdusi Navigācijas Josla"
|
"name": "Izplūdusi Navigācijas Josla"
|
||||||
},
|
},
|
||||||
"bypass-age-restrictions": {
|
"bypass-age-restrictions": {
|
||||||
"description": "Apiet YouTube vecuma pārbaudi",
|
"description": "Apiet Music Player vecuma pārbaudi",
|
||||||
"name": "Apiet Vecuma Ierobežojumus"
|
"name": "Apiet Vecuma Ierobežojumus"
|
||||||
},
|
},
|
||||||
"captions-selector": {
|
"captions-selector": {
|
||||||
"description": "Subtitru izvēlne priekš YouTube Music audio ceļiem",
|
"description": "Subtitru izvēlne priekš Pear Desktop audio ceļiem",
|
||||||
"menu": {
|
"menu": {
|
||||||
"autoload": "Automātiski izvēlēties pēdējo izmantotos subtitrus",
|
"autoload": "Automātiski izvēlēties pēdējo izmantotos subtitrus",
|
||||||
"disable-captions": "Bez subtitriem pēc noklusējuma"
|
"disable-captions": "Bez subtitriem pēc noklusējuma"
|
||||||
@ -436,7 +436,7 @@
|
|||||||
"disconnected": "Atvienojies",
|
"disconnected": "Atvienojies",
|
||||||
"hide-duration-left": "Paslēpt cik palika laika",
|
"hide-duration-left": "Paslēpt cik palika laika",
|
||||||
"hide-github-button": "Paslēpt GitHub saites pogu",
|
"hide-github-button": "Paslēpt GitHub saites pogu",
|
||||||
"play-on-youtube-music": "Atskaņot uz YouTube Music",
|
"play-on-pear-desktop": "Atskaņot uz Pear Desktop",
|
||||||
"set-inactivity-timeout": "Iestatīt neaktivitātes taimeru"
|
"set-inactivity-timeout": "Iestatīt neaktivitātes taimeru"
|
||||||
},
|
},
|
||||||
"name": "Discord Rich Presence",
|
"name": "Discord Rich Presence",
|
||||||
|
|||||||
@ -154,7 +154,7 @@
|
|||||||
"label": "Tajuk tetingkap tersuai",
|
"label": "Tajuk tetingkap tersuai",
|
||||||
"prompt": {
|
"prompt": {
|
||||||
"label": "Masukkan tajuk tetingkap tersuai: (biarkan kosong untuk matikan)",
|
"label": "Masukkan tajuk tetingkap tersuai: (biarkan kosong untuk matikan)",
|
||||||
"placeholder": "Contoh: YouTube Music"
|
"placeholder": "Contoh: Pear Desktop"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"like-buttons": {
|
"like-buttons": {
|
||||||
@ -208,8 +208,8 @@
|
|||||||
"restart": "Mulakan Semula Aplikasi",
|
"restart": "Mulakan Semula Aplikasi",
|
||||||
"show": "Papar tetingkap",
|
"show": "Papar tetingkap",
|
||||||
"tooltip": {
|
"tooltip": {
|
||||||
"default": "YouTube Muzik",
|
"default": "Pear Desktop",
|
||||||
"with-song-info": "YouTube Muzik : {{artist}} - {{title}}"
|
"with-song-info": "Pear Desktop : {{artist}} - {{title}}"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -287,7 +287,7 @@
|
|||||||
"name": "Mod Sekitaran"
|
"name": "Mod Sekitaran"
|
||||||
},
|
},
|
||||||
"amuse": {
|
"amuse": {
|
||||||
"description": "Menambahkan sokongan YouTube Music untuk widget sedang dimain Amuse oleh 6K Labs",
|
"description": "Menambahkan sokongan Pear Desktop untuk widget sedang dimain Amuse oleh 6K Labs",
|
||||||
"name": "Terhibur",
|
"name": "Terhibur",
|
||||||
"response": {
|
"response": {
|
||||||
"query": "API server Amuse telah berjalan. GET /query untuk mendapatkan maklumat lagu."
|
"query": "API server Amuse telah berjalan. GET /query untuk mendapatkan maklumat lagu."
|
||||||
@ -369,11 +369,11 @@
|
|||||||
"name": "Kaburkan Bar navigasi"
|
"name": "Kaburkan Bar navigasi"
|
||||||
},
|
},
|
||||||
"bypass-age-restrictions": {
|
"bypass-age-restrictions": {
|
||||||
"description": "Pintas verifikasi umur Youtube",
|
"description": "Pintas verifikasi umur Music Player",
|
||||||
"name": "Pintas Sekatan Umur"
|
"name": "Pintas Sekatan Umur"
|
||||||
},
|
},
|
||||||
"captions-selector": {
|
"captions-selector": {
|
||||||
"description": "Pemilih kapsyen untuk trek audio Youtube Music",
|
"description": "Pemilih kapsyen untuk trek audio Pear Desktop",
|
||||||
"menu": {
|
"menu": {
|
||||||
"autoload": "Pilih kapsyen terakhir diguna secara automatik",
|
"autoload": "Pilih kapsyen terakhir diguna secara automatik",
|
||||||
"disable-captions": "Tiada kapsyen secara lalai"
|
"disable-captions": "Tiada kapsyen secara lalai"
|
||||||
@ -456,14 +456,14 @@
|
|||||||
"disconnected": "Tidak disambungkan",
|
"disconnected": "Tidak disambungkan",
|
||||||
"hide-duration-left": "Sembunyikan tempoh yang tinggal",
|
"hide-duration-left": "Sembunyikan tempoh yang tinggal",
|
||||||
"hide-github-button": "Sembunyikan Butang pautan GitHub",
|
"hide-github-button": "Sembunyikan Butang pautan GitHub",
|
||||||
"play-on-youtube-music": "Main di YouTube Music",
|
"play-on-pear-desktop": "Main di Pear Desktop",
|
||||||
"set-inactivity-timeout": "Tetapkan tamat masa tidak aktif",
|
"set-inactivity-timeout": "Tetapkan tamat masa tidak aktif",
|
||||||
"set-status-display-type": {
|
"set-status-display-type": {
|
||||||
"label": "Teks status",
|
"label": "Teks status",
|
||||||
"submenu": {
|
"submenu": {
|
||||||
"artist": "Sedang mendengar {artist}",
|
"artist": "Sedang mendengar {artist}",
|
||||||
"title": "Sedang mendengar {tajuk lagu}",
|
"title": "Sedang mendengar {tajuk lagu}",
|
||||||
"youtube-music": "Mendengar YouTube Music"
|
"pear-desktop": "Mendengar Pear Desktop"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|||||||
@ -257,11 +257,11 @@
|
|||||||
"name": "Tilslør navigasjonsfelt"
|
"name": "Tilslør navigasjonsfelt"
|
||||||
},
|
},
|
||||||
"bypass-age-restrictions": {
|
"bypass-age-restrictions": {
|
||||||
"description": "Omgå YouTube sin aldersgrenser",
|
"description": "Omgå Music Player sin aldersgrenser",
|
||||||
"name": "Omgå aldersgrense"
|
"name": "Omgå aldersgrense"
|
||||||
},
|
},
|
||||||
"captions-selector": {
|
"captions-selector": {
|
||||||
"description": "Undertekstverktøy for lydspor i YouTube Music",
|
"description": "Undertekstverktøy for lydspor i Pear Desktop",
|
||||||
"menu": {
|
"menu": {
|
||||||
"autoload": "Auto-velg sist brukte undertekst",
|
"autoload": "Auto-velg sist brukte undertekst",
|
||||||
"disable-captions": "Ingen undertekst som forvalg"
|
"disable-captions": "Ingen undertekst som forvalg"
|
||||||
@ -326,7 +326,7 @@
|
|||||||
"disconnected": "Frakoblet",
|
"disconnected": "Frakoblet",
|
||||||
"hide-duration-left": "Skjul gjenværende tid",
|
"hide-duration-left": "Skjul gjenværende tid",
|
||||||
"hide-github-button": "Skjul GitHub-lenkeknapp",
|
"hide-github-button": "Skjul GitHub-lenkeknapp",
|
||||||
"play-on-youtube-music": "Spill på YouTube Music",
|
"play-on-pear-desktop": "Spill på Pear Desktop",
|
||||||
"set-inactivity-timeout": "Sett tid før tidsavbrudd"
|
"set-inactivity-timeout": "Sett tid før tidsavbrudd"
|
||||||
},
|
},
|
||||||
"name": "Rik tilstedeværelse for Discord",
|
"name": "Rik tilstedeværelse for Discord",
|
||||||
|
|||||||
@ -436,7 +436,7 @@
|
|||||||
"disconnected": "डिसकन्एक्टेड",
|
"disconnected": "डिसकन्एक्टेड",
|
||||||
"hide-duration-left": "बाकी समय लुकाऊ",
|
"hide-duration-left": "बाकी समय लुकाऊ",
|
||||||
"hide-github-button": "GitHub लिंक लुकाऊ",
|
"hide-github-button": "GitHub लिंक लुकाऊ",
|
||||||
"play-on-youtube-music": "YouTube music मा बजाउ",
|
"play-on-pear-desktop": "Pear Desktop मा बजाउ",
|
||||||
"set-inactivity-timeout": "इनएक्टिभिटी टाइमआउट राख"
|
"set-inactivity-timeout": "इनएक्टिभिटी टाइमआउट राख"
|
||||||
},
|
},
|
||||||
"name": "डिसकार्ड रिच प्रीसेंस",
|
"name": "डिसकार्ड रिच प्रीसेंस",
|
||||||
|
|||||||
@ -154,7 +154,7 @@
|
|||||||
"label": "Aangepaste venstertitel",
|
"label": "Aangepaste venstertitel",
|
||||||
"prompt": {
|
"prompt": {
|
||||||
"label": "Voer aangepaste venstertitel in: (laat leeg om uit te schakelen)",
|
"label": "Voer aangepaste venstertitel in: (laat leeg om uit te schakelen)",
|
||||||
"placeholder": "Voorbeeld: Youtube Music"
|
"placeholder": "Voorbeeld: Pear Desktop"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"like-buttons": {
|
"like-buttons": {
|
||||||
@ -208,8 +208,8 @@
|
|||||||
"restart": "Herstarten App",
|
"restart": "Herstarten App",
|
||||||
"show": "Weergeven Venster",
|
"show": "Weergeven Venster",
|
||||||
"tooltip": {
|
"tooltip": {
|
||||||
"default": "YouTube Music",
|
"default": "Pear Desktop",
|
||||||
"with-song-info": "YouTube Music: {{artist}} - {{title}}"
|
"with-song-info": "Pear Desktop: {{artist}} - {{title}}"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -287,7 +287,7 @@
|
|||||||
"name": "Omgevingsmodus"
|
"name": "Omgevingsmodus"
|
||||||
},
|
},
|
||||||
"amuse": {
|
"amuse": {
|
||||||
"description": "Voegt YouTube Music ondersteuning toe voor de Amuse now playing widget van 6K Labs",
|
"description": "Voegt Pear Desktop ondersteuning toe voor de Amuse now playing widget van 6K Labs",
|
||||||
"name": "Amuse",
|
"name": "Amuse",
|
||||||
"response": {
|
"response": {
|
||||||
"query": "Amuse API server loopt. Gebruik /query voor nummer informatie."
|
"query": "Amuse API server loopt. Gebruik /query voor nummer informatie."
|
||||||
@ -369,11 +369,11 @@
|
|||||||
"name": "Vervagen Navigatiebalk"
|
"name": "Vervagen Navigatiebalk"
|
||||||
},
|
},
|
||||||
"bypass-age-restrictions": {
|
"bypass-age-restrictions": {
|
||||||
"description": "Omzeil de leeftijdsverificatie van YouTube",
|
"description": "Omzeil de leeftijdsverificatie van Music Player",
|
||||||
"name": "Leeftijdsbeperkingen Omzeilen"
|
"name": "Leeftijdsbeperkingen Omzeilen"
|
||||||
},
|
},
|
||||||
"captions-selector": {
|
"captions-selector": {
|
||||||
"description": "Ondertitelkeuze voor YouTube Music-audiotracks",
|
"description": "Ondertitelkeuze voor Pear Desktop-audiotracks",
|
||||||
"menu": {
|
"menu": {
|
||||||
"autoload": "Automatisch de laatst gebruikte ondertitel selecteren",
|
"autoload": "Automatisch de laatst gebruikte ondertitel selecteren",
|
||||||
"disable-captions": "Standaard geen ondertitels"
|
"disable-captions": "Standaard geen ondertitels"
|
||||||
@ -456,14 +456,14 @@
|
|||||||
"disconnected": "Verbinding verbroken",
|
"disconnected": "Verbinding verbroken",
|
||||||
"hide-duration-left": "Verberg resterende tijd",
|
"hide-duration-left": "Verberg resterende tijd",
|
||||||
"hide-github-button": "GitHub-knop verbergen",
|
"hide-github-button": "GitHub-knop verbergen",
|
||||||
"play-on-youtube-music": "Afspelen op YouTube Music",
|
"play-on-pear-desktop": "Afspelen op Pear Desktop",
|
||||||
"set-inactivity-timeout": "Inactiviteitstime-out instellen",
|
"set-inactivity-timeout": "Inactiviteitstime-out instellen",
|
||||||
"set-status-display-type": {
|
"set-status-display-type": {
|
||||||
"label": "Status tekst",
|
"label": "Status tekst",
|
||||||
"submenu": {
|
"submenu": {
|
||||||
"artist": "Naar {artist} aan het luisteren",
|
"artist": "Naar {artist} aan het luisteren",
|
||||||
"title": "Naar {song title} aan het luisteren",
|
"title": "Naar {song title} aan het luisteren",
|
||||||
"youtube-music": "Naar Youtube Music aan het luisteren"
|
"pear-desktop": "Naar Pear Desktop aan het luisteren"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|||||||
@ -154,7 +154,7 @@
|
|||||||
"label": "Niestandardowy tytuł okna",
|
"label": "Niestandardowy tytuł okna",
|
||||||
"prompt": {
|
"prompt": {
|
||||||
"label": "Podaj niestandardowy tytuł okna (zostaw puste, aby to wyłączyć):",
|
"label": "Podaj niestandardowy tytuł okna (zostaw puste, aby to wyłączyć):",
|
||||||
"placeholder": "Przykład: YouTube Music"
|
"placeholder": "Przykład: Pear Desktop"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"like-buttons": {
|
"like-buttons": {
|
||||||
@ -208,7 +208,7 @@
|
|||||||
"restart": "Uruchom ponownie aplikację",
|
"restart": "Uruchom ponownie aplikację",
|
||||||
"show": "Pokaż okno",
|
"show": "Pokaż okno",
|
||||||
"tooltip": {
|
"tooltip": {
|
||||||
"default": "YouTube Music",
|
"default": "Pear Desktop",
|
||||||
"with-song-info": "{{title}} (autorstwa {{artist}}) - YT Music"
|
"with-song-info": "{{title}} (autorstwa {{artist}}) - YT Music"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -287,14 +287,14 @@
|
|||||||
"name": "Tryb otoczenia"
|
"name": "Tryb otoczenia"
|
||||||
},
|
},
|
||||||
"amuse": {
|
"amuse": {
|
||||||
"description": "Wspiera integrację YouTube Music z widgetami Amuse (od 6K Labs)",
|
"description": "Wspiera integrację Pear Desktop z widgetami Amuse (od 6K Labs)",
|
||||||
"name": "Amuse",
|
"name": "Amuse",
|
||||||
"response": {
|
"response": {
|
||||||
"query": "Serwer API Amuse działa. Użyj metody GET do /query, aby zdobyć informację o utworze."
|
"query": "Serwer API Amuse działa. Użyj metody GET do /query, aby zdobyć informację o utworze."
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"api-server": {
|
"api-server": {
|
||||||
"description": "Pozwala na kontrolowanie YouTube Music poprzez podłączenie specjalnego serwera API",
|
"description": "Pozwala na kontrolowanie Pear Desktop poprzez podłączenie specjalnego serwera API",
|
||||||
"dialog": {
|
"dialog": {
|
||||||
"request": {
|
"request": {
|
||||||
"buttons": {
|
"buttons": {
|
||||||
@ -324,7 +324,7 @@
|
|||||||
"label": "Port"
|
"label": "Port"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"name": "YouTube Music API",
|
"name": "Pear Desktop API",
|
||||||
"prompt": {
|
"prompt": {
|
||||||
"hostname": {
|
"hostname": {
|
||||||
"label": "Wpisz nazwę hosta (IP, np. 0.0.0.0), który będzie użyty do serwera API:",
|
"label": "Wpisz nazwę hosta (IP, np. 0.0.0.0), który będzie użyty do serwera API:",
|
||||||
@ -373,7 +373,7 @@
|
|||||||
"name": "Omiń ograniczenia wiekowe"
|
"name": "Omiń ograniczenia wiekowe"
|
||||||
},
|
},
|
||||||
"captions-selector": {
|
"captions-selector": {
|
||||||
"description": "Selektor napisów dla ścieżek audio YouTube Music",
|
"description": "Selektor napisów dla ścieżek audio Pear Desktop",
|
||||||
"menu": {
|
"menu": {
|
||||||
"autoload": "Automatycznie wybierz ostatnio używanych napisów",
|
"autoload": "Automatycznie wybierz ostatnio używanych napisów",
|
||||||
"disable-captions": "Domyślnie, brak napisów"
|
"disable-captions": "Domyślnie, brak napisów"
|
||||||
@ -456,14 +456,14 @@
|
|||||||
"disconnected": "Odłączono",
|
"disconnected": "Odłączono",
|
||||||
"hide-duration-left": "Ukryj pozostały czas trwania",
|
"hide-duration-left": "Ukryj pozostały czas trwania",
|
||||||
"hide-github-button": "Ukryj przycisk do GitHub",
|
"hide-github-button": "Ukryj przycisk do GitHub",
|
||||||
"play-on-youtube-music": "Odtwórz w YouTube Music",
|
"play-on-pear-desktop": "Odtwórz w Pear Desktop",
|
||||||
"set-inactivity-timeout": "Ustaw limit czasu bezczynności",
|
"set-inactivity-timeout": "Ustaw limit czasu bezczynności",
|
||||||
"set-status-display-type": {
|
"set-status-display-type": {
|
||||||
"label": "Opis statusu",
|
"label": "Opis statusu",
|
||||||
"submenu": {
|
"submenu": {
|
||||||
"artist": "Słucha {artist}",
|
"artist": "Słucha {artist}",
|
||||||
"title": "Słucha {song title}",
|
"title": "Słucha {song title}",
|
||||||
"youtube-music": "Słucha YouTube Music"
|
"pear-desktop": "Słucha Pear Desktop"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|||||||
@ -154,7 +154,7 @@
|
|||||||
"label": "Título da janela customizado",
|
"label": "Título da janela customizado",
|
||||||
"prompt": {
|
"prompt": {
|
||||||
"label": "Insira título customizado para a janela: (deixe em branco para desabilitar)",
|
"label": "Insira título customizado para a janela: (deixe em branco para desabilitar)",
|
||||||
"placeholder": "Exemplo: Youtube Music"
|
"placeholder": "Exemplo: Pear Desktop"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"like-buttons": {
|
"like-buttons": {
|
||||||
@ -208,8 +208,8 @@
|
|||||||
"restart": "Reiniciar aplicativo",
|
"restart": "Reiniciar aplicativo",
|
||||||
"show": "Mostrar janela",
|
"show": "Mostrar janela",
|
||||||
"tooltip": {
|
"tooltip": {
|
||||||
"default": "YouTube Music",
|
"default": "Pear Desktop",
|
||||||
"with-song-info": "YouTube Music: {{artist}} - {{title}}"
|
"with-song-info": "Pear Desktop: {{artist}} - {{title}}"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -287,7 +287,7 @@
|
|||||||
"name": "Modo ambiente"
|
"name": "Modo ambiente"
|
||||||
},
|
},
|
||||||
"amuse": {
|
"amuse": {
|
||||||
"description": "Adiciona suporte ao YouTube Music ao widget 'Reproduzindo agora' do Amuse da 6K Labs",
|
"description": "Adiciona suporte ao Pear Desktop ao widget 'Reproduzindo agora' do Amuse da 6K Labs",
|
||||||
"name": "Amuse",
|
"name": "Amuse",
|
||||||
"response": {
|
"response": {
|
||||||
"query": "Servidor API do Amuse em execução. GET /query para obter informações da música."
|
"query": "Servidor API do Amuse em execução. GET /query para obter informações da música."
|
||||||
@ -369,11 +369,11 @@
|
|||||||
"name": "Desfocar barra de navegação"
|
"name": "Desfocar barra de navegação"
|
||||||
},
|
},
|
||||||
"bypass-age-restrictions": {
|
"bypass-age-restrictions": {
|
||||||
"description": "Pular a verificação de idade do YouTube",
|
"description": "Pular a verificação de idade do Music Player",
|
||||||
"name": "Ignorar restrições de idade"
|
"name": "Ignorar restrições de idade"
|
||||||
},
|
},
|
||||||
"captions-selector": {
|
"captions-selector": {
|
||||||
"description": "Seletor de legendas para faixas de áudio do YouTube Music",
|
"description": "Seletor de legendas para faixas de áudio do Pear Desktop",
|
||||||
"menu": {
|
"menu": {
|
||||||
"autoload": "Selecionar automaticamente a última legenda usada",
|
"autoload": "Selecionar automaticamente a última legenda usada",
|
||||||
"disable-captions": "Sem legendas por padrão"
|
"disable-captions": "Sem legendas por padrão"
|
||||||
@ -456,14 +456,14 @@
|
|||||||
"disconnected": "Desconectado",
|
"disconnected": "Desconectado",
|
||||||
"hide-duration-left": "Ocultar duração restante",
|
"hide-duration-left": "Ocultar duração restante",
|
||||||
"hide-github-button": "Ocultar botão do GitHub",
|
"hide-github-button": "Ocultar botão do GitHub",
|
||||||
"play-on-youtube-music": "Reproduzir no YouTube Music",
|
"play-on-pear-desktop": "Reproduzir no Pear Desktop",
|
||||||
"set-inactivity-timeout": "Definir tempo limite de inatividade",
|
"set-inactivity-timeout": "Definir tempo limite de inatividade",
|
||||||
"set-status-display-type": {
|
"set-status-display-type": {
|
||||||
"label": "Texto de status",
|
"label": "Texto de status",
|
||||||
"submenu": {
|
"submenu": {
|
||||||
"artist": "Ouvindo {artist}",
|
"artist": "Ouvindo {artist}",
|
||||||
"title": "Ouvindo {song title}",
|
"title": "Ouvindo {song title}",
|
||||||
"youtube-music": "Ouvindo YouTube Music"
|
"pear-desktop": "Ouvindo Pear Desktop"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|||||||
@ -154,7 +154,7 @@
|
|||||||
"label": "Título de janela personalizado",
|
"label": "Título de janela personalizado",
|
||||||
"prompt": {
|
"prompt": {
|
||||||
"label": "Introduza um título: (deixe em branco para desativar)",
|
"label": "Introduza um título: (deixe em branco para desativar)",
|
||||||
"placeholder": "Exemplo: YouTube Music"
|
"placeholder": "Exemplo: Pear Desktop"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"like-buttons": {
|
"like-buttons": {
|
||||||
@ -208,8 +208,8 @@
|
|||||||
"restart": "Reiniciar aplicação",
|
"restart": "Reiniciar aplicação",
|
||||||
"show": "Mostrar janela",
|
"show": "Mostrar janela",
|
||||||
"tooltip": {
|
"tooltip": {
|
||||||
"default": "YouTube Music",
|
"default": "Pear Desktop",
|
||||||
"with-song-info": "YouTube Music: {{artist}} - {{title}}"
|
"with-song-info": "Pear Desktop: {{artist}} - {{title}}"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -287,7 +287,7 @@
|
|||||||
"name": "Modo ambiente"
|
"name": "Modo ambiente"
|
||||||
},
|
},
|
||||||
"amuse": {
|
"amuse": {
|
||||||
"description": "Adiciona suporte ao YouTube Music para o widget Amuse now playing de 6K Labs",
|
"description": "Adiciona suporte ao Pear Desktop para o widget Amuse now playing de 6K Labs",
|
||||||
"name": "Amuse",
|
"name": "Amuse",
|
||||||
"response": {
|
"response": {
|
||||||
"query": "O servidor da API Amuse está a ser executado. GET/query para obter informações sobre a faixa."
|
"query": "O servidor da API Amuse está a ser executado. GET/query para obter informações sobre a faixa."
|
||||||
@ -369,11 +369,11 @@
|
|||||||
"name": "Barra de navegação desfocada"
|
"name": "Barra de navegação desfocada"
|
||||||
},
|
},
|
||||||
"bypass-age-restrictions": {
|
"bypass-age-restrictions": {
|
||||||
"description": "Ignorar verificação de idade do YouTube",
|
"description": "Ignorar verificação de idade do Music Player",
|
||||||
"name": "Ignorar restrições de idade"
|
"name": "Ignorar restrições de idade"
|
||||||
},
|
},
|
||||||
"captions-selector": {
|
"captions-selector": {
|
||||||
"description": "Seletor de legendas para as faixas de áudio do YouTube Music",
|
"description": "Seletor de legendas para as faixas de áudio do Pear Desktop",
|
||||||
"menu": {
|
"menu": {
|
||||||
"autoload": "Selecionar automaticamente a última legenda utilizada",
|
"autoload": "Selecionar automaticamente a última legenda utilizada",
|
||||||
"disable-captions": "Sem legendas por omissão"
|
"disable-captions": "Sem legendas por omissão"
|
||||||
@ -456,14 +456,14 @@
|
|||||||
"disconnected": "Desconectado",
|
"disconnected": "Desconectado",
|
||||||
"hide-duration-left": "Ocultar tempo restante",
|
"hide-duration-left": "Ocultar tempo restante",
|
||||||
"hide-github-button": "Ocultar botão GitHub",
|
"hide-github-button": "Ocultar botão GitHub",
|
||||||
"play-on-youtube-music": "Reproduzir em YouTube Music",
|
"play-on-pear-desktop": "Reproduzir em Pear Desktop",
|
||||||
"set-inactivity-timeout": "Definir tempo de inatividade",
|
"set-inactivity-timeout": "Definir tempo de inatividade",
|
||||||
"set-status-display-type": {
|
"set-status-display-type": {
|
||||||
"label": "Texto de estado",
|
"label": "Texto de estado",
|
||||||
"submenu": {
|
"submenu": {
|
||||||
"artist": "A ouvir {artist}",
|
"artist": "A ouvir {artist}",
|
||||||
"title": "A ouvir {song title}",
|
"title": "A ouvir {song title}",
|
||||||
"youtube-music": "A reproduzir YouTube Music"
|
"pear-desktop": "A reproduzir Pear Desktop"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|||||||
@ -154,7 +154,7 @@
|
|||||||
"label": "Titlul ferestrei personalizate",
|
"label": "Titlul ferestrei personalizate",
|
||||||
"prompt": {
|
"prompt": {
|
||||||
"label": "Introduceți titlul ferestrei personalizate: (lăsați gol pentru a dezactiva)",
|
"label": "Introduceți titlul ferestrei personalizate: (lăsați gol pentru a dezactiva)",
|
||||||
"placeholder": "Exemplu: Youtube Music"
|
"placeholder": "Exemplu: Pear Desktop"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"like-buttons": {
|
"like-buttons": {
|
||||||
@ -208,8 +208,8 @@
|
|||||||
"restart": "Reporneste aplicatia",
|
"restart": "Reporneste aplicatia",
|
||||||
"show": "Arata fereastra",
|
"show": "Arata fereastra",
|
||||||
"tooltip": {
|
"tooltip": {
|
||||||
"default": "YouTube Music",
|
"default": "Pear Desktop",
|
||||||
"with-song-info": "YouTube Music: {{artist}} - {{title}}"
|
"with-song-info": "Pear Desktop: {{artist}} - {{title}}"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -287,7 +287,7 @@
|
|||||||
"name": "Mod ambiental"
|
"name": "Mod ambiental"
|
||||||
},
|
},
|
||||||
"amuse": {
|
"amuse": {
|
||||||
"description": "Adauga suport Youtube Music pentru Amuse se redă acum widget de 6K Labs",
|
"description": "Adauga suport Pear Desktop pentru Amuse se redă acum widget de 6K Labs",
|
||||||
"name": "Amuse",
|
"name": "Amuse",
|
||||||
"response": {
|
"response": {
|
||||||
"query": "Server-ul API-ului Amuse rulează. GET /query pentru a obține informații despre melodie."
|
"query": "Server-ul API-ului Amuse rulează. GET /query pentru a obține informații despre melodie."
|
||||||
@ -369,11 +369,11 @@
|
|||||||
"name": "Estompează Bara de Navigație"
|
"name": "Estompează Bara de Navigație"
|
||||||
},
|
},
|
||||||
"bypass-age-restrictions": {
|
"bypass-age-restrictions": {
|
||||||
"description": "Treci peste verificarea de vârstă a YouTube-ului",
|
"description": "Treci peste verificarea de vârstă a Music Player",
|
||||||
"name": "Ignoră restricțiile de vârstă"
|
"name": "Ignoră restricțiile de vârstă"
|
||||||
},
|
},
|
||||||
"captions-selector": {
|
"captions-selector": {
|
||||||
"description": "Selector de subtitrări pentru piesele audio de pe YouTube Music",
|
"description": "Selector de subtitrări pentru piesele audio de pe Pear Desktop",
|
||||||
"menu": {
|
"menu": {
|
||||||
"autoload": "Selectează automat ultima subtitrare folosită",
|
"autoload": "Selectează automat ultima subtitrare folosită",
|
||||||
"disable-captions": "Fără subtitrări în mod implicit"
|
"disable-captions": "Fără subtitrări în mod implicit"
|
||||||
@ -456,14 +456,14 @@
|
|||||||
"disconnected": "Deconectat",
|
"disconnected": "Deconectat",
|
||||||
"hide-duration-left": "Ascunde timpul rămas",
|
"hide-duration-left": "Ascunde timpul rămas",
|
||||||
"hide-github-button": "Ascunde butonul cu link-ul GitHub",
|
"hide-github-button": "Ascunde butonul cu link-ul GitHub",
|
||||||
"play-on-youtube-music": "Redă pe YouTube Music",
|
"play-on-pear-desktop": "Redă pe Pear Desktop",
|
||||||
"set-inactivity-timeout": "Setează intervalul de inactivitate",
|
"set-inactivity-timeout": "Setează intervalul de inactivitate",
|
||||||
"set-status-display-type": {
|
"set-status-display-type": {
|
||||||
"label": "Text stare",
|
"label": "Text stare",
|
||||||
"submenu": {
|
"submenu": {
|
||||||
"artist": "Ascultând {artist}",
|
"artist": "Ascultând {artist}",
|
||||||
"title": "Ascultând {song title}",
|
"title": "Ascultând {song title}",
|
||||||
"youtube-music": "Ascultând YouTube Music"
|
"pear-desktop": "Ascultând Pear Desktop"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|||||||
@ -154,7 +154,7 @@
|
|||||||
"label": "Собственное название окна",
|
"label": "Собственное название окна",
|
||||||
"prompt": {
|
"prompt": {
|
||||||
"label": "Введите собственное название окна: (оставьте пустым, чтобы отключить)",
|
"label": "Введите собственное название окна: (оставьте пустым, чтобы отключить)",
|
||||||
"placeholder": "Например: YouTube Music"
|
"placeholder": "Например: Pear Desktop"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"like-buttons": {
|
"like-buttons": {
|
||||||
@ -163,7 +163,7 @@
|
|||||||
"hide": "Скрывать",
|
"hide": "Скрывать",
|
||||||
"label": "Кнопка лайка"
|
"label": "Кнопка лайка"
|
||||||
},
|
},
|
||||||
"remove-upgrade-button": "Убрать кнопку Youtube Premium",
|
"remove-upgrade-button": "Убрать кнопку Premium",
|
||||||
"theme": {
|
"theme": {
|
||||||
"dialog": {
|
"dialog": {
|
||||||
"button": {
|
"button": {
|
||||||
@ -208,8 +208,8 @@
|
|||||||
"restart": "Перезапустить приложение",
|
"restart": "Перезапустить приложение",
|
||||||
"show": "Показать окно",
|
"show": "Показать окно",
|
||||||
"tooltip": {
|
"tooltip": {
|
||||||
"default": "YouTube Music",
|
"default": "Pear Desktop",
|
||||||
"with-song-info": "YouTube Music: {{artist}} - {{title}}"
|
"with-song-info": "Pear Desktop: {{artist}} - {{title}}"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -369,11 +369,11 @@
|
|||||||
"name": "Размытие панели навигации"
|
"name": "Размытие панели навигации"
|
||||||
},
|
},
|
||||||
"bypass-age-restrictions": {
|
"bypass-age-restrictions": {
|
||||||
"description": "Обход проверки возраста на YouTube",
|
"description": "Обход проверки возраста на Music Player",
|
||||||
"name": "Обход возрастных ограничений"
|
"name": "Обход возрастных ограничений"
|
||||||
},
|
},
|
||||||
"captions-selector": {
|
"captions-selector": {
|
||||||
"description": "Выбор субтитров для аудиотреков в YouTube Music",
|
"description": "Выбор субтитров для аудиотреков в Pear Desktop",
|
||||||
"menu": {
|
"menu": {
|
||||||
"autoload": "Автоматически выбирать последние использованные субтитры",
|
"autoload": "Автоматически выбирать последние использованные субтитры",
|
||||||
"disable-captions": "Без субтитров по умолчанию"
|
"disable-captions": "Без субтитров по умолчанию"
|
||||||
@ -456,14 +456,14 @@
|
|||||||
"disconnected": "Отключено",
|
"disconnected": "Отключено",
|
||||||
"hide-duration-left": "Скрыть сколько осталось времени",
|
"hide-duration-left": "Скрыть сколько осталось времени",
|
||||||
"hide-github-button": "Скрыть ссылку на GitHub",
|
"hide-github-button": "Скрыть ссылку на GitHub",
|
||||||
"play-on-youtube-music": "Воспроизвести на YouTube Music",
|
"play-on-pear-desktop": "Воспроизвести на Pear Desktop",
|
||||||
"set-inactivity-timeout": "Поставить таймер неактивности",
|
"set-inactivity-timeout": "Поставить таймер неактивности",
|
||||||
"set-status-display-type": {
|
"set-status-display-type": {
|
||||||
"label": "Текст статуса",
|
"label": "Текст статуса",
|
||||||
"submenu": {
|
"submenu": {
|
||||||
"artist": "Слушает {исполнитель}",
|
"artist": "Слушает {исполнитель}",
|
||||||
"title": "Слушает {название трека}",
|
"title": "Слушает {название трека}",
|
||||||
"youtube-music": "Слушает YouTube Music"
|
"pear-desktop": "Слушает Pear Desktop"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|||||||
@ -201,8 +201,8 @@
|
|||||||
"restart": "නැවත ආරම්භ කරන්න",
|
"restart": "නැවත ආරම්භ කරන්න",
|
||||||
"show": "තිරය පෙන්වන්න",
|
"show": "තිරය පෙන්වන්න",
|
||||||
"tooltip": {
|
"tooltip": {
|
||||||
"default": "YouTube Music",
|
"default": "Pear Desktop",
|
||||||
"with-song-info": "YouTube Music: {{artist}} - {{title}}"
|
"with-song-info": "Pear Desktop: {{artist}} - {{title}}"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|||||||
@ -154,7 +154,7 @@
|
|||||||
"label": "Vlastný názov okna",
|
"label": "Vlastný názov okna",
|
||||||
"prompt": {
|
"prompt": {
|
||||||
"label": "Napíšte vlastný názov okna: (nechajte prázdne pre vypnutie)",
|
"label": "Napíšte vlastný názov okna: (nechajte prázdne pre vypnutie)",
|
||||||
"placeholder": "Napríklad: YouTube Music"
|
"placeholder": "Napríklad: Pear Desktop"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"like-buttons": {
|
"like-buttons": {
|
||||||
@ -206,8 +206,8 @@
|
|||||||
"restart": "Reštartovať aplikáciu",
|
"restart": "Reštartovať aplikáciu",
|
||||||
"show": "Zobraziť okno",
|
"show": "Zobraziť okno",
|
||||||
"tooltip": {
|
"tooltip": {
|
||||||
"default": "YouTube Hudba",
|
"default": "Pear Desktop",
|
||||||
"with-song-info": "Youtube Hudba: {{artist}} - {{title}}"
|
"with-song-info": "Pear Desktop: {{artist}} - {{title}}"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -201,8 +201,8 @@
|
|||||||
"restart": "Ponovni zagon",
|
"restart": "Ponovni zagon",
|
||||||
"show": "Pokaži okno",
|
"show": "Pokaži okno",
|
||||||
"tooltip": {
|
"tooltip": {
|
||||||
"default": "YouTube Glasba",
|
"default": "Pear Desktop",
|
||||||
"with-song-info": "YouTube Glasba: {{artist}} - {{title}}"
|
"with-song-info": "Pear Desktop: {{artist}} - {{title}}"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -335,7 +335,7 @@
|
|||||||
"name": "Preskoči starostno omejitev"
|
"name": "Preskoči starostno omejitev"
|
||||||
},
|
},
|
||||||
"captions-selector": {
|
"captions-selector": {
|
||||||
"description": "Izberi podnapise za YouTube Music zvočne posnetke",
|
"description": "Izberi podnapise za Pear Desktop zvočne posnetke",
|
||||||
"menu": {
|
"menu": {
|
||||||
"autoload": "Avtomatsko uporabi zadnje izbrane podnapise",
|
"autoload": "Avtomatsko uporabi zadnje izbrane podnapise",
|
||||||
"disable-captions": "Avtomatsko brez podnapisov"
|
"disable-captions": "Avtomatsko brez podnapisov"
|
||||||
@ -400,7 +400,7 @@
|
|||||||
"disconnected": "Prekinjena povezava",
|
"disconnected": "Prekinjena povezava",
|
||||||
"hide-duration-left": "Skrij preostali čas",
|
"hide-duration-left": "Skrij preostali čas",
|
||||||
"hide-github-button": "Skrij povezavo do GitHub-a",
|
"hide-github-button": "Skrij povezavo do GitHub-a",
|
||||||
"play-on-youtube-music": "Predvajaj v YouTube Music",
|
"play-on-pear-desktop": "Predvajaj v Pear Desktop",
|
||||||
"set-inactivity-timeout": "Nastavite časovno omejitev neaktivnosti"
|
"set-inactivity-timeout": "Nastavite časovno omejitev neaktivnosti"
|
||||||
},
|
},
|
||||||
"name": "Discord bogata prisotnost (Rich Presence)",
|
"name": "Discord bogata prisotnost (Rich Presence)",
|
||||||
|
|||||||
@ -154,7 +154,7 @@
|
|||||||
"label": "Prilagođeni naziv prozora",
|
"label": "Prilagođeni naziv prozora",
|
||||||
"prompt": {
|
"prompt": {
|
||||||
"label": "Unesite prilagođeni naslov prozora: (ostavite prazno da onemogućite)",
|
"label": "Unesite prilagođeni naslov prozora: (ostavite prazno da onemogućite)",
|
||||||
"placeholder": "Primer: YouTube Muzika"
|
"placeholder": "Primer: Pear Desktop"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"like-buttons": {
|
"like-buttons": {
|
||||||
@ -208,8 +208,8 @@
|
|||||||
"restart": "Ponovo pokreni aplikaciju",
|
"restart": "Ponovo pokreni aplikaciju",
|
||||||
"show": "Prikaži prozor",
|
"show": "Prikaži prozor",
|
||||||
"tooltip": {
|
"tooltip": {
|
||||||
"default": "YouTube Muzika",
|
"default": "Pear Desktop",
|
||||||
"with-song-info": "YouTube Muzika: {{artist}} - {{title}}"
|
"with-song-info": "Pear Desktop: {{artist}} - {{title}}"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -287,7 +287,7 @@
|
|||||||
"name": "Ambijentalni režim"
|
"name": "Ambijentalni režim"
|
||||||
},
|
},
|
||||||
"amuse": {
|
"amuse": {
|
||||||
"description": "Dodaje podršku za 'Amuse now' vidžet (6K Labs) u YouTube Muziku",
|
"description": "Dodaje podršku za 'Amuse now' vidžet (6K Labs) u Pear Desktop",
|
||||||
"name": "Zabavi",
|
"name": "Zabavi",
|
||||||
"response": {
|
"response": {
|
||||||
"query": "Amuse API server je pokrenut. Koristite GET /query da biste dobili informacije o numeri."
|
"query": "Amuse API server je pokrenut. Koristite GET /query da biste dobili informacije o numeri."
|
||||||
@ -369,11 +369,11 @@
|
|||||||
"name": "Zamuti navigacioni meni"
|
"name": "Zamuti navigacioni meni"
|
||||||
},
|
},
|
||||||
"bypass-age-restrictions": {
|
"bypass-age-restrictions": {
|
||||||
"description": "Preskoči starosnu verifikaciju za YouTube",
|
"description": "Preskoči starosnu verifikaciju za Music Player",
|
||||||
"name": "Preskoči starosna ograničenja"
|
"name": "Preskoči starosna ograničenja"
|
||||||
},
|
},
|
||||||
"captions-selector": {
|
"captions-selector": {
|
||||||
"description": "Odabir prevoda za numere/audio trake na YouTube Muzici",
|
"description": "Odabir prevoda za numere/audio trake na Pear Desktop",
|
||||||
"menu": {
|
"menu": {
|
||||||
"autoload": "Automatski odaberi prethodno odabrani prevod",
|
"autoload": "Automatski odaberi prethodno odabrani prevod",
|
||||||
"disable-captions": "Podrazumevano bez prevoda"
|
"disable-captions": "Podrazumevano bez prevoda"
|
||||||
@ -456,14 +456,14 @@
|
|||||||
"disconnected": "Nije povezano",
|
"disconnected": "Nije povezano",
|
||||||
"hide-duration-left": "Sakrij preostalo vreme",
|
"hide-duration-left": "Sakrij preostalo vreme",
|
||||||
"hide-github-button": "Sakrij dugme sa GitHub linkom",
|
"hide-github-button": "Sakrij dugme sa GitHub linkom",
|
||||||
"play-on-youtube-music": "Reprodukuj na YouTube Muzici",
|
"play-on-pear-desktop": "Reprodukuj na Pear Desktop",
|
||||||
"set-inactivity-timeout": "Podesi tajmer za neaktivnost",
|
"set-inactivity-timeout": "Podesi tajmer za neaktivnost",
|
||||||
"set-status-display-type": {
|
"set-status-display-type": {
|
||||||
"label": "Tekst statusa",
|
"label": "Tekst statusa",
|
||||||
"submenu": {
|
"submenu": {
|
||||||
"artist": "Slušanje {artist}",
|
"artist": "Slušanje {artist}",
|
||||||
"title": "Slušanje {song title}",
|
"title": "Slušanje {song title}",
|
||||||
"youtube-music": "Slušanje YouTube muzike"
|
"pear-desktop": "Slušanje Pear Desktop"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|||||||
@ -154,7 +154,7 @@
|
|||||||
"label": "Anpassad titel på fönstret",
|
"label": "Anpassad titel på fönstret",
|
||||||
"prompt": {
|
"prompt": {
|
||||||
"label": "Ange anpassad fönstertitel: (lämna tomt för att inaktivera)",
|
"label": "Ange anpassad fönstertitel: (lämna tomt för att inaktivera)",
|
||||||
"placeholder": "Exempelvis: YouTube Music"
|
"placeholder": "Exempelvis: Pear Desktop"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"like-buttons": {
|
"like-buttons": {
|
||||||
@ -208,8 +208,8 @@
|
|||||||
"restart": "Starta om appen",
|
"restart": "Starta om appen",
|
||||||
"show": "Visa fönster",
|
"show": "Visa fönster",
|
||||||
"tooltip": {
|
"tooltip": {
|
||||||
"default": "YouTube Music",
|
"default": "Pear Desktop",
|
||||||
"with-song-info": "YouTube Music: {{artist}} – {{title}}"
|
"with-song-info": "Pear Desktop: {{artist}} – {{title}}"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -287,7 +287,7 @@
|
|||||||
"name": "Ambiensläge"
|
"name": "Ambiensläge"
|
||||||
},
|
},
|
||||||
"amuse": {
|
"amuse": {
|
||||||
"description": "Lägger till stöd för YouTube Music i Amuse ‘Now Playing’-widgeten av 6K Labs",
|
"description": "Lägger till stöd för Pear Desktop i Amuse ‘Now Playing’-widgeten av 6K Labs",
|
||||||
"name": "Amuse",
|
"name": "Amuse",
|
||||||
"response": {
|
"response": {
|
||||||
"query": "Amuse API-servern körs. Använd GET /query för att hämta information om låt."
|
"query": "Amuse API-servern körs. Använd GET /query för att hämta information om låt."
|
||||||
@ -369,11 +369,11 @@
|
|||||||
"name": "Suddigt Navigeringsfält"
|
"name": "Suddigt Navigeringsfält"
|
||||||
},
|
},
|
||||||
"bypass-age-restrictions": {
|
"bypass-age-restrictions": {
|
||||||
"description": "Hoppa över YouTubes åldersverifiering",
|
"description": "Hoppa över Music Player åldersverifiering",
|
||||||
"name": "Hoppa Över Åldersbegränsningar"
|
"name": "Hoppa Över Åldersbegränsningar"
|
||||||
},
|
},
|
||||||
"captions-selector": {
|
"captions-selector": {
|
||||||
"description": "Välj textning för YouTube Music-ljudspår",
|
"description": "Välj textning för Pear Desktop-ljudspår",
|
||||||
"menu": {
|
"menu": {
|
||||||
"autoload": "Välj automatiskt senast använda textning",
|
"autoload": "Välj automatiskt senast använda textning",
|
||||||
"disable-captions": "Ingen textning som standard"
|
"disable-captions": "Ingen textning som standard"
|
||||||
@ -456,14 +456,14 @@
|
|||||||
"disconnected": "Frånkopplad",
|
"disconnected": "Frånkopplad",
|
||||||
"hide-duration-left": "Dölj återstående tid",
|
"hide-duration-left": "Dölj återstående tid",
|
||||||
"hide-github-button": "Dölj knapp för GitHub-länk",
|
"hide-github-button": "Dölj knapp för GitHub-länk",
|
||||||
"play-on-youtube-music": "Spela på YouTube Music",
|
"play-on-pear-desktop": "Spela på Pear Desktop",
|
||||||
"set-inactivity-timeout": "Ställ in inaktivitetstid",
|
"set-inactivity-timeout": "Ställ in inaktivitetstid",
|
||||||
"set-status-display-type": {
|
"set-status-display-type": {
|
||||||
"label": "Statusmeddelande",
|
"label": "Statusmeddelande",
|
||||||
"submenu": {
|
"submenu": {
|
||||||
"artist": "Lyssnar på {artist}",
|
"artist": "Lyssnar på {artist}",
|
||||||
"title": "Lyssnar på {song title}",
|
"title": "Lyssnar på {song title}",
|
||||||
"youtube-music": "Lyssnar på YouTube Music"
|
"pear-desktop": "Lyssnar på Pear Desktop"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|||||||
@ -154,7 +154,7 @@
|
|||||||
"label": "தனிப்பயன் சாளர தலைப்பு",
|
"label": "தனிப்பயன் சாளர தலைப்பு",
|
||||||
"prompt": {
|
"prompt": {
|
||||||
"label": "தனிப்பயன் சாளர தலைப்பை உள்ளிடவும்: (முடக்க காலியாக விடவும்)",
|
"label": "தனிப்பயன் சாளர தலைப்பை உள்ளிடவும்: (முடக்க காலியாக விடவும்)",
|
||||||
"placeholder": "எடுத்துக்காட்டு: YouTube இசை"
|
"placeholder": "எடுத்துக்காட்டு: Pear Desktop"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"like-buttons": {
|
"like-buttons": {
|
||||||
@ -209,7 +209,7 @@
|
|||||||
"show": "சாளரத்தைக் காட்டு",
|
"show": "சாளரத்தைக் காட்டு",
|
||||||
"tooltip": {
|
"tooltip": {
|
||||||
"default": "யூடியூப் இசை",
|
"default": "யூடியூப் இசை",
|
||||||
"with-song-info": "YouTube இசை: {{artist}} - {{title}}"
|
"with-song-info": "Pear Desktop: {{artist}} - {{title}}"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -287,7 +287,7 @@
|
|||||||
"name": "சுற்றுப்புற முறை"
|
"name": "சுற்றுப்புற முறை"
|
||||||
},
|
},
|
||||||
"amuse": {
|
"amuse": {
|
||||||
"description": "6K ஆய்வகங்களால் இப்போது விட்செட்டில் விளையாடும் Amuse க்கு YouTube இசை ஆதரவை சேர்க்கிறது",
|
"description": "6K ஆய்வகங்களால் இப்போது விட்செட்டில் விளையாடும் Amuse க்கு Music Player இசை ஆதரவை சேர்க்கிறது",
|
||||||
"name": "பொழுதுபோக்கு",
|
"name": "பொழுதுபோக்கு",
|
||||||
"response": {
|
"response": {
|
||||||
"query": "பநிஇ சேவையகம் இயங்குகிறது. பாடல் தகவலைப் பெற /வினவல்."
|
"query": "பநிஇ சேவையகம் இயங்குகிறது. பாடல் தகவலைப் பெற /வினவல்."
|
||||||
@ -369,11 +369,11 @@
|
|||||||
"name": "மங்கலான வழிசெலுத்தல் பட்டி"
|
"name": "மங்கலான வழிசெலுத்தல் பட்டி"
|
||||||
},
|
},
|
||||||
"bypass-age-restrictions": {
|
"bypass-age-restrictions": {
|
||||||
"description": "YouTube அகவை சரிபார்ப்பு பைபாச்",
|
"description": "Music Player அகவை சரிபார்ப்பு பைபாச்",
|
||||||
"name": "அகவை கட்டுப்பாடுகள் பைபாச்"
|
"name": "அகவை கட்டுப்பாடுகள் பைபாச்"
|
||||||
},
|
},
|
||||||
"captions-selector": {
|
"captions-selector": {
|
||||||
"description": "YouTube இசை ஆடியோ டிராக்குகளுக்கான தலைப்பு தேர்வாளர்",
|
"description": "Pear Desktop இசை ஆடியோ டிராக்குகளுக்கான தலைப்பு தேர்வாளர்",
|
||||||
"menu": {
|
"menu": {
|
||||||
"autoload": "கடைசியாக பயன்படுத்தப்பட்ட தலைப்பை தானாகத் தேர்ந்தெடுக்கவும்",
|
"autoload": "கடைசியாக பயன்படுத்தப்பட்ட தலைப்பை தானாகத் தேர்ந்தெடுக்கவும்",
|
||||||
"disable-captions": "முன்னிருப்பாக தலைப்புகள் இல்லை"
|
"disable-captions": "முன்னிருப்பாக தலைப்புகள் இல்லை"
|
||||||
@ -456,14 +456,14 @@
|
|||||||
"disconnected": "துண்டிக்கப்பட்டது",
|
"disconnected": "துண்டிக்கப்பட்டது",
|
||||||
"hide-duration-left": "காலம் மீதமுள்ளதை மறைக்கவும்",
|
"hide-duration-left": "காலம் மீதமுள்ளதை மறைக்கவும்",
|
||||||
"hide-github-button": "அறிவிலிமையம் இணைப்பு பொத்தானை மறைக்கவும்",
|
"hide-github-button": "அறிவிலிமையம் இணைப்பு பொத்தானை மறைக்கவும்",
|
||||||
"play-on-youtube-music": "யூடியூப் இசையில் விளையாடுங்கள்",
|
"play-on-pear-desktop": "யூடியூப் இசையில் விளையாடுங்கள்",
|
||||||
"set-inactivity-timeout": "செயலற்ற நேரம் முடிந்தது",
|
"set-inactivity-timeout": "செயலற்ற நேரம் முடிந்தது",
|
||||||
"set-status-display-type": {
|
"set-status-display-type": {
|
||||||
"label": "நிலை உரை",
|
"label": "நிலை உரை",
|
||||||
"submenu": {
|
"submenu": {
|
||||||
"artist": "{கலைஞர்} பாடலைக் கேட்கிறேன்",
|
"artist": "{கலைஞர்} பாடலைக் கேட்கிறேன்",
|
||||||
"title": "பாடலைக் கேட்கிறேன்{பாடல் தலைப்பு}",
|
"title": "பாடலைக் கேட்கிறேன்{பாடல் தலைப்பு}",
|
||||||
"youtube-music": "வலையொளி இசையில் கேட்கிறது"
|
"pear-desktop": "வலையொளி இசையில் கேட்கிறது"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|||||||
@ -154,7 +154,7 @@
|
|||||||
"label": "ชื่อหน้าต่างกำหนดเอง",
|
"label": "ชื่อหน้าต่างกำหนดเอง",
|
||||||
"prompt": {
|
"prompt": {
|
||||||
"label": "กำหนดชื่อหน้าต่างที่ต้องการ: (ปล่อยว่างเพื่อปิดใช้งาน)",
|
"label": "กำหนดชื่อหน้าต่างที่ต้องการ: (ปล่อยว่างเพื่อปิดใช้งาน)",
|
||||||
"placeholder": "ตัวอย่าง: Youtube Music"
|
"placeholder": "ตัวอย่าง: Pear Desktop"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"like-buttons": {
|
"like-buttons": {
|
||||||
@ -208,8 +208,8 @@
|
|||||||
"restart": "รีสตาร์ตแอป",
|
"restart": "รีสตาร์ตแอป",
|
||||||
"show": "แสดงหน้าต่าง",
|
"show": "แสดงหน้าต่าง",
|
||||||
"tooltip": {
|
"tooltip": {
|
||||||
"default": "YouTube Music",
|
"default": "Pear Desktop",
|
||||||
"with-song-info": "YouTube Music: {{artist}} - {{title}}"
|
"with-song-info": "Pear Desktop: {{artist}} - {{title}}"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -287,7 +287,7 @@
|
|||||||
"name": "โหมดสภาพแวดล้อม"
|
"name": "โหมดสภาพแวดล้อม"
|
||||||
},
|
},
|
||||||
"amuse": {
|
"amuse": {
|
||||||
"description": "เพิ่มการรองรับ Youtube Music สำหรับ Widget Amuse Now Playing ของ 6K Labs",
|
"description": "เพิ่มการรองรับ Pear Desktop สำหรับ Widget Amuse Now Playing ของ 6K Labs",
|
||||||
"name": "Amuse",
|
"name": "Amuse",
|
||||||
"response": {
|
"response": {
|
||||||
"query": "API Server ของ Amuse ทำงานอยู่ ส่ง GET ไปที่ /query เพื่อขอข้อมูลเกี่ยวกับเพลง"
|
"query": "API Server ของ Amuse ทำงานอยู่ ส่ง GET ไปที่ /query เพื่อขอข้อมูลเกี่ยวกับเพลง"
|
||||||
@ -369,11 +369,11 @@
|
|||||||
"name": "เบลอแถบนำทาง"
|
"name": "เบลอแถบนำทาง"
|
||||||
},
|
},
|
||||||
"bypass-age-restrictions": {
|
"bypass-age-restrictions": {
|
||||||
"description": "ข้ามการตรวจสอบอายุของ YouTube",
|
"description": "ข้ามการตรวจสอบอายุของ Music Player",
|
||||||
"name": "ข้ามข้อจำกัดอายุ"
|
"name": "ข้ามข้อจำกัดอายุ"
|
||||||
},
|
},
|
||||||
"captions-selector": {
|
"captions-selector": {
|
||||||
"description": "ตัวเลือกคำบรรยายสำหรับเพลงใน YouTube Music",
|
"description": "ตัวเลือกคำบรรยายสำหรับเพลงใน Pear Desktop",
|
||||||
"menu": {
|
"menu": {
|
||||||
"autoload": "เลือกคำบรรยายที่ใช้ครั้งล่าสุดโดยอัตโนมัติ",
|
"autoload": "เลือกคำบรรยายที่ใช้ครั้งล่าสุดโดยอัตโนมัติ",
|
||||||
"disable-captions": "ไม่มีคำบรรยายเป็นค่าเริ่มต้น"
|
"disable-captions": "ไม่มีคำบรรยายเป็นค่าเริ่มต้น"
|
||||||
@ -456,14 +456,14 @@
|
|||||||
"disconnected": "ตัดการเชื่อมต่อ",
|
"disconnected": "ตัดการเชื่อมต่อ",
|
||||||
"hide-duration-left": "ซ่อนระยะเวลาที่เหลือ",
|
"hide-duration-left": "ซ่อนระยะเวลาที่เหลือ",
|
||||||
"hide-github-button": "ซ่อนปุ่มลิงก์ GitHub",
|
"hide-github-button": "ซ่อนปุ่มลิงก์ GitHub",
|
||||||
"play-on-youtube-music": "เล่นบน YouTube Music",
|
"play-on-pear-desktop": "เล่นบน Pear Desktop",
|
||||||
"set-inactivity-timeout": "ตั้งระยะเวลาไม่มีกิจกรรม",
|
"set-inactivity-timeout": "ตั้งระยะเวลาไม่มีกิจกรรม",
|
||||||
"set-status-display-type": {
|
"set-status-display-type": {
|
||||||
"label": "ข้อความสถานะ",
|
"label": "ข้อความสถานะ",
|
||||||
"submenu": {
|
"submenu": {
|
||||||
"artist": "กำลังฟัง {ชื่อนักร้อง}",
|
"artist": "กำลังฟัง {ชื่อนักร้อง}",
|
||||||
"title": "กำลังฟัง {ชื่อเพลง}",
|
"title": "กำลังฟัง {ชื่อเพลง}",
|
||||||
"youtube-music": "กำลังฟัง YouTube Music"
|
"pear-desktop": "กำลังฟัง Pear Desktop"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|||||||
@ -154,7 +154,7 @@
|
|||||||
"label": "Özel pencere başlığı",
|
"label": "Özel pencere başlığı",
|
||||||
"prompt": {
|
"prompt": {
|
||||||
"label": "Özel pencere başlığı girin: (devre dışı bırakmak için boş bırakın)",
|
"label": "Özel pencere başlığı girin: (devre dışı bırakmak için boş bırakın)",
|
||||||
"placeholder": "Örnek: Youtube Music"
|
"placeholder": "Örnek: Pear Desktop"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"like-buttons": {
|
"like-buttons": {
|
||||||
@ -208,8 +208,8 @@
|
|||||||
"restart": "Yeniden başlat",
|
"restart": "Yeniden başlat",
|
||||||
"show": "Pencereyi görüntüle",
|
"show": "Pencereyi görüntüle",
|
||||||
"tooltip": {
|
"tooltip": {
|
||||||
"default": "YouTube Müzik",
|
"default": "Pear Desktop",
|
||||||
"with-song-info": "YouTube Müzik: {{artist}} - {{title}}"
|
"with-song-info": "Pear Desktop: {{artist}} - {{title}}"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -287,7 +287,7 @@
|
|||||||
"name": "Ambiyans Modu"
|
"name": "Ambiyans Modu"
|
||||||
},
|
},
|
||||||
"amuse": {
|
"amuse": {
|
||||||
"description": "6K Labs'ın Amuse oynatma widget'ı için YouTube Music desteği ekler",
|
"description": "6K Labs'ın Amuse oynatma widget'ı için Pear Desktop desteği ekler",
|
||||||
"name": "Amuse",
|
"name": "Amuse",
|
||||||
"response": {
|
"response": {
|
||||||
"query": "Amuse API sunucusu çalışıyor. Şarkı bilgilerini almak için GET /query kullanabilirsiniz."
|
"query": "Amuse API sunucusu çalışıyor. Şarkı bilgilerini almak için GET /query kullanabilirsiniz."
|
||||||
@ -369,11 +369,11 @@
|
|||||||
"name": "Navigasyon barını bulanıklaştır"
|
"name": "Navigasyon barını bulanıklaştır"
|
||||||
},
|
},
|
||||||
"bypass-age-restrictions": {
|
"bypass-age-restrictions": {
|
||||||
"description": "YouTube yaş doğrulamasını atla",
|
"description": "Music Player yaş doğrulamasını atla",
|
||||||
"name": "Yaş doğrulamasını atla"
|
"name": "Yaş doğrulamasını atla"
|
||||||
},
|
},
|
||||||
"captions-selector": {
|
"captions-selector": {
|
||||||
"description": "YouTube Music için altyazı seçici",
|
"description": "Pear Desktop için altyazı seçici",
|
||||||
"menu": {
|
"menu": {
|
||||||
"autoload": "Son kullanılan altyazıyı otomatik olarak seç",
|
"autoload": "Son kullanılan altyazıyı otomatik olarak seç",
|
||||||
"disable-captions": "Varsayılan olarak altyazı yok"
|
"disable-captions": "Varsayılan olarak altyazı yok"
|
||||||
@ -456,14 +456,14 @@
|
|||||||
"disconnected": "Bağlantı kesildi",
|
"disconnected": "Bağlantı kesildi",
|
||||||
"hide-duration-left": "Kalan süreyi gizle",
|
"hide-duration-left": "Kalan süreyi gizle",
|
||||||
"hide-github-button": "GitHub bağlantısını gizle",
|
"hide-github-button": "GitHub bağlantısını gizle",
|
||||||
"play-on-youtube-music": "YouTube Music de oynat",
|
"play-on-pear-desktop": "Pear Desktop de oynat",
|
||||||
"set-inactivity-timeout": "Hareketsizlik zaman aşımını ayarla",
|
"set-inactivity-timeout": "Hareketsizlik zaman aşımını ayarla",
|
||||||
"set-status-display-type": {
|
"set-status-display-type": {
|
||||||
"label": "Durum metni",
|
"label": "Durum metni",
|
||||||
"submenu": {
|
"submenu": {
|
||||||
"artist": "{artist} Dinleniyor",
|
"artist": "{artist} Dinleniyor",
|
||||||
"title": "{song title} Dinleniyor",
|
"title": "{song title} Dinleniyor",
|
||||||
"youtube-music": "YouTube Müzik Dinleniyor"
|
"pear-desktop": "Pear Desktop Dinleniyor"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|||||||
@ -154,7 +154,7 @@
|
|||||||
"label": "Налаштування заголовка вікна",
|
"label": "Налаштування заголовка вікна",
|
||||||
"prompt": {
|
"prompt": {
|
||||||
"label": "Введіть власний заголовок вікна: (залиште порожнім, щоб вимкнути)",
|
"label": "Введіть власний заголовок вікна: (залиште порожнім, щоб вимкнути)",
|
||||||
"placeholder": "Приклад: YouTube Music"
|
"placeholder": "Приклад: Pear Desktop"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"like-buttons": {
|
"like-buttons": {
|
||||||
@ -208,8 +208,8 @@
|
|||||||
"restart": "Перезапустити програму",
|
"restart": "Перезапустити програму",
|
||||||
"show": "Показати вікно",
|
"show": "Показати вікно",
|
||||||
"tooltip": {
|
"tooltip": {
|
||||||
"default": "YouTube Music",
|
"default": "Pear Desktop",
|
||||||
"with-song-info": "YouTube Music: {{artist}} - {{title}}"
|
"with-song-info": "Pear Desktop: {{artist}} - {{title}}"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -287,7 +287,7 @@
|
|||||||
"name": "Режим навколишнього середовища"
|
"name": "Режим навколишнього середовища"
|
||||||
},
|
},
|
||||||
"amuse": {
|
"amuse": {
|
||||||
"description": "Додає підтримку YouTube Music для віджета Amuse now playing від 6K Labs",
|
"description": "Додає підтримку Pear Desktop для віджета Amuse now playing від 6K Labs",
|
||||||
"name": "Amuse",
|
"name": "Amuse",
|
||||||
"response": {
|
"response": {
|
||||||
"query": "Сервер Amuse API запущено. Запит GET /query для отримання інформації про пісню."
|
"query": "Сервер Amuse API запущено. Запит GET /query для отримання інформації про пісню."
|
||||||
@ -369,11 +369,11 @@
|
|||||||
"name": "Розмиття панелі навігації"
|
"name": "Розмиття панелі навігації"
|
||||||
},
|
},
|
||||||
"bypass-age-restrictions": {
|
"bypass-age-restrictions": {
|
||||||
"description": "Обхід перевірки віку на YouTube",
|
"description": "Обхід перевірки віку на Music Player",
|
||||||
"name": "Обхід вікових обмежень"
|
"name": "Обхід вікових обмежень"
|
||||||
},
|
},
|
||||||
"captions-selector": {
|
"captions-selector": {
|
||||||
"description": "Вибір субтитрів для аудіодоріжок YouTube Music",
|
"description": "Вибір субтитрів для аудіодоріжок Pear Desktop",
|
||||||
"menu": {
|
"menu": {
|
||||||
"autoload": "Автоматичний вибір останніх використаних субтитрів",
|
"autoload": "Автоматичний вибір останніх використаних субтитрів",
|
||||||
"disable-captions": "За замовчуванням субтитри відсутні"
|
"disable-captions": "За замовчуванням субтитри відсутні"
|
||||||
@ -451,12 +451,12 @@
|
|||||||
"disconnected": "Від'єднано",
|
"disconnected": "Від'єднано",
|
||||||
"hide-duration-left": "Приховати тривалість, яка залишилася",
|
"hide-duration-left": "Приховати тривалість, яка залишилася",
|
||||||
"hide-github-button": "Приховати посилання на GitHub",
|
"hide-github-button": "Приховати посилання на GitHub",
|
||||||
"play-on-youtube-music": "Слухати на YouTube Music",
|
"play-on-pear-desktop": "Слухати на Pear Desktop",
|
||||||
"set-inactivity-timeout": "Встановити тайм-аут бездіяльності",
|
"set-inactivity-timeout": "Встановити тайм-аут бездіяльності",
|
||||||
"set-status-display-type": {
|
"set-status-display-type": {
|
||||||
"label": "Статус",
|
"label": "Статус",
|
||||||
"submenu": {
|
"submenu": {
|
||||||
"youtube-music": "Відтворення з YouTube Music"
|
"pear-desktop": "Відтворення з Pear Desktop"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|||||||
@ -154,7 +154,7 @@
|
|||||||
"label": "Tiêu đề cửa sổ tùy chỉnh",
|
"label": "Tiêu đề cửa sổ tùy chỉnh",
|
||||||
"prompt": {
|
"prompt": {
|
||||||
"label": "Nhập tiêu đề cửa sổ tùy chỉnh: (để trống để vô hiệu hóa)",
|
"label": "Nhập tiêu đề cửa sổ tùy chỉnh: (để trống để vô hiệu hóa)",
|
||||||
"placeholder": "Ví dụ: Youtube Music"
|
"placeholder": "Ví dụ: Pear Desktop"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"like-buttons": {
|
"like-buttons": {
|
||||||
@ -208,8 +208,8 @@
|
|||||||
"restart": "Khởi động lại ứng dụng",
|
"restart": "Khởi động lại ứng dụng",
|
||||||
"show": "Hiện cửa sổ",
|
"show": "Hiện cửa sổ",
|
||||||
"tooltip": {
|
"tooltip": {
|
||||||
"default": "YouTube Music",
|
"default": "Pear Desktop",
|
||||||
"with-song-info": "YouTube Music: {{title}} - {{artist}}"
|
"with-song-info": "Pear Desktop: {{title}} - {{artist}}"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -287,7 +287,7 @@
|
|||||||
"name": "Chế độ Môi trường xung quanh"
|
"name": "Chế độ Môi trường xung quanh"
|
||||||
},
|
},
|
||||||
"amuse": {
|
"amuse": {
|
||||||
"description": "Thêm hỗ trợ YouTube Music cho tiện ích hiển thị bài hát đang phát Amuse của 6K Labs",
|
"description": "Thêm hỗ trợ Pear Desktop cho tiện ích hiển thị bài hát đang phát Amuse của 6K Labs",
|
||||||
"name": "Amuse",
|
"name": "Amuse",
|
||||||
"response": {
|
"response": {
|
||||||
"query": "Máy chủ API của Amuse đang chạy. GET /query để lấy thông tin về bài hát."
|
"query": "Máy chủ API của Amuse đang chạy. GET /query để lấy thông tin về bài hát."
|
||||||
@ -369,11 +369,11 @@
|
|||||||
"name": "Làm mờ thanh điều hướng"
|
"name": "Làm mờ thanh điều hướng"
|
||||||
},
|
},
|
||||||
"bypass-age-restrictions": {
|
"bypass-age-restrictions": {
|
||||||
"description": "Bỏ qua xác minh độ tuổi của YouTube",
|
"description": "Bỏ qua xác minh độ tuổi của Music Player",
|
||||||
"name": "Bỏ qua hạn chế độ tuổi"
|
"name": "Bỏ qua hạn chế độ tuổi"
|
||||||
},
|
},
|
||||||
"captions-selector": {
|
"captions-selector": {
|
||||||
"description": "Bộ lựa chọn phụ đề cho các bài hát trên Youtube Music",
|
"description": "Bộ lựa chọn phụ đề cho các bài hát trên Pear Desktop",
|
||||||
"menu": {
|
"menu": {
|
||||||
"autoload": "Tự động chọn phụ đề vừa sử dụng",
|
"autoload": "Tự động chọn phụ đề vừa sử dụng",
|
||||||
"disable-captions": "Không có phụ đề làm mặc định"
|
"disable-captions": "Không có phụ đề làm mặc định"
|
||||||
@ -456,14 +456,14 @@
|
|||||||
"disconnected": "Đã ngắt kết nối",
|
"disconnected": "Đã ngắt kết nối",
|
||||||
"hide-duration-left": "Ẩn thời lượng còn lại",
|
"hide-duration-left": "Ẩn thời lượng còn lại",
|
||||||
"hide-github-button": "Ẩn nút liên kết GitHub",
|
"hide-github-button": "Ẩn nút liên kết GitHub",
|
||||||
"play-on-youtube-music": "Phát trong Youtube Music",
|
"play-on-pear-desktop": "Phát trong Pear Desktop",
|
||||||
"set-inactivity-timeout": "Đặt thời gian chờ không hoạt động",
|
"set-inactivity-timeout": "Đặt thời gian chờ không hoạt động",
|
||||||
"set-status-display-type": {
|
"set-status-display-type": {
|
||||||
"label": "Văn bản trạng thái",
|
"label": "Văn bản trạng thái",
|
||||||
"submenu": {
|
"submenu": {
|
||||||
"artist": "Đang nghe nhạc của {artist}",
|
"artist": "Đang nghe nhạc của {artist}",
|
||||||
"title": "Đang nghe nhạc {song title}",
|
"title": "Đang nghe nhạc {song title}",
|
||||||
"youtube-music": "Đang nghe Youtube Music"
|
"pear-desktop": "Đang nghe Pear Desktop"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|||||||
@ -154,7 +154,7 @@
|
|||||||
"label": "自定义窗口标题",
|
"label": "自定义窗口标题",
|
||||||
"prompt": {
|
"prompt": {
|
||||||
"label": "输入自定义窗口标题:(留空表示停用)",
|
"label": "输入自定义窗口标题:(留空表示停用)",
|
||||||
"placeholder": "示例:YouTube Music"
|
"placeholder": "示例:Pear Desktop"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"like-buttons": {
|
"like-buttons": {
|
||||||
@ -208,8 +208,8 @@
|
|||||||
"restart": "重启应用",
|
"restart": "重启应用",
|
||||||
"show": "显示窗口",
|
"show": "显示窗口",
|
||||||
"tooltip": {
|
"tooltip": {
|
||||||
"default": "YouTube Music",
|
"default": "Pear Desktop",
|
||||||
"with-song-info": "YouTube Music: {{artist}} - {{title}}"
|
"with-song-info": "Pear Desktop: {{artist}} - {{title}}"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -287,7 +287,7 @@
|
|||||||
"name": "沉浸模式"
|
"name": "沉浸模式"
|
||||||
},
|
},
|
||||||
"amuse": {
|
"amuse": {
|
||||||
"description": "为 6K Labs 的 Amuse 正在播放小部件添加 YouTube Music 支持",
|
"description": "为 6K Labs 的 Amuse 正在播放小部件添加 Pear Desktop 支持",
|
||||||
"name": "Amuse",
|
"name": "Amuse",
|
||||||
"response": {
|
"response": {
|
||||||
"query": "Amuse API服务器已在运行。使用 /query 以获取歌曲信息。"
|
"query": "Amuse API服务器已在运行。使用 /query 以获取歌曲信息。"
|
||||||
@ -369,11 +369,11 @@
|
|||||||
"name": "模糊导航栏"
|
"name": "模糊导航栏"
|
||||||
},
|
},
|
||||||
"bypass-age-restrictions": {
|
"bypass-age-restrictions": {
|
||||||
"description": "绕过 YouTube 年龄验证",
|
"description": "绕过 Music Player 年龄验证",
|
||||||
"name": "绕过年龄验证"
|
"name": "绕过年龄验证"
|
||||||
},
|
},
|
||||||
"captions-selector": {
|
"captions-selector": {
|
||||||
"description": "YouTube Music 音轨字幕选择器",
|
"description": "Pear Desktop 音轨字幕选择器",
|
||||||
"menu": {
|
"menu": {
|
||||||
"autoload": "自动选择上次使用的字幕",
|
"autoload": "自动选择上次使用的字幕",
|
||||||
"disable-captions": "默认无字幕"
|
"disable-captions": "默认无字幕"
|
||||||
@ -456,14 +456,14 @@
|
|||||||
"disconnected": "已断开连接",
|
"disconnected": "已断开连接",
|
||||||
"hide-duration-left": "隐藏剩余时长",
|
"hide-duration-left": "隐藏剩余时长",
|
||||||
"hide-github-button": "隐藏 GitHub 链接按钮",
|
"hide-github-button": "隐藏 GitHub 链接按钮",
|
||||||
"play-on-youtube-music": "转至 YouTube Music 播放",
|
"play-on-pear-desktop": "转至 Pear Desktop 播放",
|
||||||
"set-inactivity-timeout": "设置非活跃时长",
|
"set-inactivity-timeout": "设置非活跃时长",
|
||||||
"set-status-display-type": {
|
"set-status-display-type": {
|
||||||
"label": "状态文本",
|
"label": "状态文本",
|
||||||
"submenu": {
|
"submenu": {
|
||||||
"artist": "在听 {artist}",
|
"artist": "在听 {artist}",
|
||||||
"title": "在听 {song title}",
|
"title": "在听 {song title}",
|
||||||
"youtube-music": "在听 YouTube Music"
|
"pear-desktop": "在听 Pear Desktop"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|||||||
@ -154,7 +154,7 @@
|
|||||||
"label": "自訂窗口標題",
|
"label": "自訂窗口標題",
|
||||||
"prompt": {
|
"prompt": {
|
||||||
"label": "輸入自訂視窗標題: (留空將其停用)",
|
"label": "輸入自訂視窗標題: (留空將其停用)",
|
||||||
"placeholder": "例如: YouTube 音樂"
|
"placeholder": "例如: Pear Desktop"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"like-buttons": {
|
"like-buttons": {
|
||||||
@ -208,8 +208,8 @@
|
|||||||
"restart": "重新啟動應用程式",
|
"restart": "重新啟動應用程式",
|
||||||
"show": "顯示視窗",
|
"show": "顯示視窗",
|
||||||
"tooltip": {
|
"tooltip": {
|
||||||
"default": "YouTube 音樂",
|
"default": "Pear Desktop",
|
||||||
"with-song-info": "YouTube 音樂: {{artist}} - {{title}}"
|
"with-song-info": "Pear Desktop: {{artist}} - {{title}}"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -287,7 +287,7 @@
|
|||||||
"name": "微光效果"
|
"name": "微光效果"
|
||||||
},
|
},
|
||||||
"amuse": {
|
"amuse": {
|
||||||
"description": "加入支援 6K Labs 的 Amuse OBS 外掛以取得 YouTube Music 現正播放資訊",
|
"description": "加入支援 6K Labs 的 Amuse OBS 外掛以取得 Pear Desktop 現正播放資訊",
|
||||||
"name": "Amuse",
|
"name": "Amuse",
|
||||||
"response": {
|
"response": {
|
||||||
"query": "Amuse API 伺服器正在運作中,使用 /query 以取得歌曲資訊。"
|
"query": "Amuse API 伺服器正在運作中,使用 /query 以取得歌曲資訊。"
|
||||||
@ -369,11 +369,11 @@
|
|||||||
"name": "模糊導覽列"
|
"name": "模糊導覽列"
|
||||||
},
|
},
|
||||||
"bypass-age-restrictions": {
|
"bypass-age-restrictions": {
|
||||||
"description": "繞過 YouTube 年齡驗證",
|
"description": "繞過 Music Player 年齡驗證",
|
||||||
"name": "繞過年齡驗證"
|
"name": "繞過年齡驗證"
|
||||||
},
|
},
|
||||||
"captions-selector": {
|
"captions-selector": {
|
||||||
"description": "Youtube Music 音軌字幕選項",
|
"description": "Pear Desktop 音軌字幕選項",
|
||||||
"menu": {
|
"menu": {
|
||||||
"autoload": "自動選擇上次使用的字幕",
|
"autoload": "自動選擇上次使用的字幕",
|
||||||
"disable-captions": "預設無字幕"
|
"disable-captions": "預設無字幕"
|
||||||
@ -456,14 +456,14 @@
|
|||||||
"disconnected": "已斷開連線",
|
"disconnected": "已斷開連線",
|
||||||
"hide-duration-left": "隱藏音樂剩餘時間狀態",
|
"hide-duration-left": "隱藏音樂剩餘時間狀態",
|
||||||
"hide-github-button": "隱藏 GitHub 頁面按鈕",
|
"hide-github-button": "隱藏 GitHub 頁面按鈕",
|
||||||
"play-on-youtube-music": "顯示 Play on YouTube Music 按鈕",
|
"play-on-pear-desktop": "顯示 Play on Pear Desktop 按鈕",
|
||||||
"set-inactivity-timeout": "設定閒置狀態時長",
|
"set-inactivity-timeout": "設定閒置狀態時長",
|
||||||
"set-status-display-type": {
|
"set-status-display-type": {
|
||||||
"label": "狀態樣式",
|
"label": "狀態樣式",
|
||||||
"submenu": {
|
"submenu": {
|
||||||
"artist": "正在聆聽 {artist} 的歌曲",
|
"artist": "正在聆聽 {artist} 的歌曲",
|
||||||
"title": "正在聆聽 {song title}",
|
"title": "正在聆聽 {song title}",
|
||||||
"youtube-music": "正在聆聽 YouTube Music"
|
"pear-desktop": "正在聆聽 Pear Desktop"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|||||||
@ -7,7 +7,7 @@
|
|||||||
within the `createMainWindow` function.
|
within the `createMainWindow` function.
|
||||||
|
|
||||||
Archived link for reference:
|
Archived link for reference:
|
||||||
https://github.com/th-ch/youtube-music/blob/a3104fda4b0d58b076d0c737111636a66e468acc/src/index.ts#L407-L443
|
https://github.com/pear-devs/pear-desktop/blob/a3104fda4b0d58b076d0c737111636a66e468acc/src/index.ts#L407-L443
|
||||||
|
|
||||||
-->
|
-->
|
||||||
|
|
||||||
|
|||||||
31
src/index.ts
31
src/index.ts
@ -43,7 +43,7 @@ import {
|
|||||||
setupProtocolHandler,
|
setupProtocolHandler,
|
||||||
} from '@/providers/protocol-handler';
|
} from '@/providers/protocol-handler';
|
||||||
|
|
||||||
import youtubeMusicCSS from '@/youtube-music.css?inline';
|
import musicPlayerCss from '@/music-player.css?inline';
|
||||||
|
|
||||||
import {
|
import {
|
||||||
forceLoadMainPlugin,
|
forceLoadMainPlugin,
|
||||||
@ -131,7 +131,7 @@ if (config.get('options.disableHardwareAcceleration')) {
|
|||||||
|
|
||||||
if (is.linux()) {
|
if (is.linux()) {
|
||||||
// Overrides WM_CLASS for X11 to correspond to icon filename
|
// Overrides WM_CLASS for X11 to correspond to icon filename
|
||||||
app.setName('com.github.th_ch.youtube_music');
|
app.setName('com.github.th_ch.pear_music');
|
||||||
|
|
||||||
// Stops chromium from launching its own MPRIS service
|
// Stops chromium from launching its own MPRIS service
|
||||||
if (await config.plugins.isEnabled('shortcuts')) {
|
if (await config.plugins.isEnabled('shortcuts')) {
|
||||||
@ -165,7 +165,7 @@ electronDebug({
|
|||||||
showDevTools: false, // Disable automatic devTools on new window
|
showDevTools: false, // Disable automatic devTools on new window
|
||||||
});
|
});
|
||||||
|
|
||||||
let icon = 'assets/youtube-music.png';
|
let icon = 'assets/icon.png';
|
||||||
if (process.platform === 'win32') {
|
if (process.platform === 'win32') {
|
||||||
icon = 'assets/generated/icon.ico';
|
icon = 'assets/generated/icon.ico';
|
||||||
} else if (process.platform === 'darwin') {
|
} else if (process.platform === 'darwin') {
|
||||||
@ -178,7 +178,7 @@ function onClosed() {
|
|||||||
mainWindow = null;
|
mainWindow = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
ipcMain.handle('ytmd:get-main-plugin-names', async () =>
|
ipcMain.handle('peard:get-main-plugin-names', async () =>
|
||||||
Object.keys(await mainPlugins()),
|
Object.keys(await mainPlugins()),
|
||||||
);
|
);
|
||||||
|
|
||||||
@ -186,14 +186,14 @@ const initHook = async (win: BrowserWindow) => {
|
|||||||
const allPluginStubs = await allPlugins();
|
const allPluginStubs = await allPlugins();
|
||||||
|
|
||||||
ipcMain.handle(
|
ipcMain.handle(
|
||||||
'ytmd:get-config',
|
'peard:get-config',
|
||||||
(_, id: string) =>
|
(_, id: string) =>
|
||||||
deepmerge(
|
deepmerge(
|
||||||
allPluginStubs[id].config ?? { enabled: false },
|
allPluginStubs[id].config ?? { enabled: false },
|
||||||
config.get(`plugins.${id}`) ?? {},
|
config.get(`plugins.${id}`) ?? {},
|
||||||
) as PluginConfig,
|
) as PluginConfig,
|
||||||
);
|
);
|
||||||
ipcMain.handle('ytmd:set-config', (_, name: string, obj: object) =>
|
ipcMain.handle('peard:set-config', (_, name: string, obj: object) =>
|
||||||
config.setPartial(`plugins.${name}`, obj, allPluginStubs[name].config),
|
config.setPartial(`plugins.${name}`, obj, allPluginStubs[name].config),
|
||||||
);
|
);
|
||||||
|
|
||||||
@ -292,7 +292,7 @@ const showNeedToRestartDialog = async (id: string) => {
|
|||||||
};
|
};
|
||||||
|
|
||||||
function initTheme(win: BrowserWindow) {
|
function initTheme(win: BrowserWindow) {
|
||||||
injectCSS(win.webContents, youtubeMusicCSS);
|
injectCSS(win.webContents, musicPlayerCss);
|
||||||
// Load user CSS
|
// Load user CSS
|
||||||
const themes: string[] = config.get('options.themes');
|
const themes: string[] = config.get('options.themes');
|
||||||
if (Array.isArray(themes)) {
|
if (Array.isArray(themes)) {
|
||||||
@ -503,11 +503,14 @@ async function createMainWindow() {
|
|||||||
const url = new URL(event.url);
|
const url = new URL(event.url);
|
||||||
|
|
||||||
// Workarounds for regions where YTM is restricted
|
// Workarounds for regions where YTM is restricted
|
||||||
if (url.hostname.endsWith('youtube.com') && url.pathname === '/premium') {
|
if (
|
||||||
|
url.hostname.endsWith('\u0079\u006f\u0075\u0074\u0075\u0062\u0065.com') &&
|
||||||
|
url.pathname === '/premium'
|
||||||
|
) {
|
||||||
event.preventDefault();
|
event.preventDefault();
|
||||||
|
|
||||||
win.webContents.loadURL(
|
win.webContents.loadURL(
|
||||||
'https://accounts.google.com/ServiceLogin?ltmpl=music&service=youtube&continue=https%3A%2F%2Fwww.youtube.com%2Fsignin%3Faction_handle_signin%3Dtrue%26next%3Dhttps%253A%252F%252Fmusic.youtube.com%252F',
|
'https://accounts.google.com/ServiceLogin?ltmpl=music&service=\u0079\u006f\u0075\u0074\u0075\u0062\u0065&continue=https%3A%2F%2Fwww.\u0079\u006f\u0075\u0074\u0075\u0062\u0065.com%2Fsignin%3Faction_handle_signin%3Dtrue%26next%3Dhttps%253A%252F%252Fmusic.\u0079\u006f\u0075\u0074\u0075\u0062\u0065.com%252F',
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@ -660,7 +663,7 @@ app.whenReady().then(async () => {
|
|||||||
|
|
||||||
// Register appID on windows
|
// Register appID on windows
|
||||||
if (is.windows()) {
|
if (is.windows()) {
|
||||||
const appID = 'com.github.th-ch.youtube-music';
|
const appID = 'com.github.th-ch.pear-music';
|
||||||
app.setAppUserModelId(appID);
|
app.setAppUserModelId(appID);
|
||||||
const appLocation = process.execPath;
|
const appLocation = process.execPath;
|
||||||
const appData = app.getPath('appData');
|
const appData = app.getPath('appData');
|
||||||
@ -675,7 +678,7 @@ app.whenReady().then(async () => {
|
|||||||
'Windows',
|
'Windows',
|
||||||
'Start Menu',
|
'Start Menu',
|
||||||
'Programs',
|
'Programs',
|
||||||
'YouTube Music.lnk',
|
'Pear Desktop.lnk',
|
||||||
);
|
);
|
||||||
try {
|
try {
|
||||||
// Check if shortcut is registered and valid
|
// Check if shortcut is registered and valid
|
||||||
@ -695,7 +698,7 @@ app.whenReady().then(async () => {
|
|||||||
{
|
{
|
||||||
target: appLocation,
|
target: appLocation,
|
||||||
cwd: path.dirname(appLocation),
|
cwd: path.dirname(appLocation),
|
||||||
description: 'YouTube Music Desktop App - including custom plugins',
|
description: 'Pear Desktop App - including custom plugins',
|
||||||
appUserModelId: appID,
|
appUserModelId: appID,
|
||||||
},
|
},
|
||||||
);
|
);
|
||||||
@ -804,7 +807,7 @@ app.whenReady().then(async () => {
|
|||||||
}, 2000);
|
}, 2000);
|
||||||
autoUpdater.on('update-available', () => {
|
autoUpdater.on('update-available', () => {
|
||||||
const downloadLink =
|
const downloadLink =
|
||||||
'https://github.com/th-ch/youtube-music/releases/latest';
|
'https://github.com/pear-devs/pear-desktop/releases/latest';
|
||||||
const dialogOptions: Electron.MessageBoxOptions = {
|
const dialogOptions: Electron.MessageBoxOptions = {
|
||||||
type: 'info',
|
type: 'info',
|
||||||
buttons: [
|
buttons: [
|
||||||
@ -943,7 +946,7 @@ function removeContentSecurityPolicy(
|
|||||||
!details.responseHeaders['access-control-allow-origin'] &&
|
!details.responseHeaders['access-control-allow-origin'] &&
|
||||||
!details.responseHeaders['Access-Control-Allow-Origin']
|
!details.responseHeaders['Access-Control-Allow-Origin']
|
||||||
) {
|
) {
|
||||||
details.responseHeaders['access-control-allow-origin'] = ['https://music.youtube.com'];
|
details.responseHeaders['access-control-allow-origin'] = ['https://music.\u0079\u006f\u0075\u0074\u0075\u0062\u0065.com'];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -19,9 +19,9 @@ export const createContext = <Config extends PluginConfig>(
|
|||||||
id: string,
|
id: string,
|
||||||
): RendererContext<Config> => ({
|
): RendererContext<Config> => ({
|
||||||
getConfig: () =>
|
getConfig: () =>
|
||||||
window.ipcRenderer.invoke('ytmd:get-config', id) as Promise<Config>,
|
window.ipcRenderer.invoke('peard:get-config', id) as Promise<Config>,
|
||||||
setConfig: async (newConfig) => {
|
setConfig: async (newConfig) => {
|
||||||
await window.ipcRenderer.invoke('ytmd:set-config', id, newConfig);
|
await window.ipcRenderer.invoke('peard:set-config', id, newConfig);
|
||||||
},
|
},
|
||||||
ipc: {
|
ipc: {
|
||||||
send: (event: string, ...args: unknown[]) => {
|
send: (event: string, ...args: unknown[]) => {
|
||||||
|
|||||||
@ -473,7 +473,7 @@ export const mainMenuTemplate = async (
|
|||||||
),
|
),
|
||||||
type: 'normal',
|
type: 'normal',
|
||||||
click() {
|
click() {
|
||||||
const url = 'https://hosted.weblate.org/engage/youtube-music/';
|
const url = 'https://bit.ly/48n5YF7';
|
||||||
shell.openExternal(url);
|
shell.openExternal(url);
|
||||||
},
|
},
|
||||||
} as Electron.MenuItemConstructorOptions,
|
} as Electron.MenuItemConstructorOptions,
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
/**
|
/**
|
||||||
* Overriding YouTube Music style
|
* Overriding default style
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/* Allow window dragging */
|
/* Allow window dragging */
|
||||||
@ -49,7 +49,7 @@ ytmusic-cast-button {
|
|||||||
display: none !important;
|
display: none !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Make youtube-music logo un-draggable */
|
/* Make the logo un-draggable */
|
||||||
ytmusic-nav-bar > div.left-content > a,
|
ytmusic-nav-bar > div.left-content > a,
|
||||||
ytmusic-nav-bar > div.left-content > a > picture > img {
|
ytmusic-nav-bar > div.left-content > a > picture > img {
|
||||||
-webkit-user-drag: none;
|
-webkit-user-drag: none;
|
||||||
@ -29,22 +29,22 @@ export const backend = createBackend<BackendType, APIServerConfig>({
|
|||||||
this.songInfo = songInfo;
|
this.songInfo = songInfo;
|
||||||
});
|
});
|
||||||
|
|
||||||
ctx.ipc.on('ytmd:player-api-loaded', () => {
|
ctx.ipc.on('peard:player-api-loaded', () => {
|
||||||
ctx.ipc.send('ytmd:setup-seeked-listener');
|
ctx.ipc.send('peard:setup-seeked-listener');
|
||||||
ctx.ipc.send('ytmd:setup-time-changed-listener');
|
ctx.ipc.send('peard:setup-time-changed-listener');
|
||||||
ctx.ipc.send('ytmd:setup-repeat-changed-listener');
|
ctx.ipc.send('peard:setup-repeat-changed-listener');
|
||||||
ctx.ipc.send('ytmd:setup-like-changed-listener');
|
ctx.ipc.send('peard:setup-like-changed-listener');
|
||||||
ctx.ipc.send('ytmd:setup-volume-changed-listener');
|
ctx.ipc.send('peard:setup-volume-changed-listener');
|
||||||
ctx.ipc.send('ytmd:setup-shuffle-changed-listener');
|
ctx.ipc.send('peard:setup-shuffle-changed-listener');
|
||||||
});
|
});
|
||||||
|
|
||||||
ctx.ipc.on(
|
ctx.ipc.on(
|
||||||
'ytmd:repeat-changed',
|
'peard:repeat-changed',
|
||||||
(mode: RepeatMode) => (this.currentRepeatMode = mode),
|
(mode: RepeatMode) => (this.currentRepeatMode = mode),
|
||||||
);
|
);
|
||||||
|
|
||||||
ctx.ipc.on(
|
ctx.ipc.on(
|
||||||
'ytmd:volume-changed',
|
'peard:volume-changed',
|
||||||
(newVolumeState: VolumeState) => (this.volumeState = newVolumeState),
|
(newVolumeState: VolumeState) => (this.volumeState = newVolumeState),
|
||||||
);
|
);
|
||||||
|
|
||||||
@ -138,7 +138,7 @@ export const backend = createBackend<BackendType, APIServerConfig>({
|
|||||||
openapi: '3.1.0',
|
openapi: '3.1.0',
|
||||||
info: {
|
info: {
|
||||||
version: '1.0.0',
|
version: '1.0.0',
|
||||||
title: 'Youtube Music API Server',
|
title: 'Pear Desktop API Server',
|
||||||
description:
|
description:
|
||||||
'Note: You need to get an access token using the `/auth/{id}` endpoint first to call any API endpoints under `/api`.',
|
'Note: You need to get an access token using the `/auth/{id}` endpoint first to call any API endpoints under `/api`.',
|
||||||
},
|
},
|
||||||
|
|||||||
@ -29,7 +29,7 @@ import type { SongInfo } from '@/providers/song-info';
|
|||||||
import type { BackendContext } from '@/types/contexts';
|
import type { BackendContext } from '@/types/contexts';
|
||||||
import type { APIServerConfig } from '../../config';
|
import type { APIServerConfig } from '../../config';
|
||||||
import type { HonoApp } from '../types';
|
import type { HonoApp } from '../types';
|
||||||
import type { QueueResponse } from '@/types/youtube-music-desktop-internal';
|
import type { QueueResponse } from '@/types/music-player-desktop-internal';
|
||||||
import type { Context } from 'hono';
|
import type { Context } from 'hono';
|
||||||
|
|
||||||
const routes = {
|
const routes = {
|
||||||
@ -630,7 +630,7 @@ export const register = (
|
|||||||
app.openapi(routes.getShuffleState, async (ctx) => {
|
app.openapi(routes.getShuffleState, async (ctx) => {
|
||||||
const stateResponsePromise = new Promise<boolean>((resolve) => {
|
const stateResponsePromise = new Promise<boolean>((resolve) => {
|
||||||
ipcMain.once(
|
ipcMain.once(
|
||||||
'ytmd:get-shuffle-response',
|
'peard:get-shuffle-response',
|
||||||
(_, isShuffled: boolean | undefined) => {
|
(_, isShuffled: boolean | undefined) => {
|
||||||
return resolve(!!isShuffled);
|
return resolve(!!isShuffled);
|
||||||
},
|
},
|
||||||
@ -693,7 +693,7 @@ export const register = (
|
|||||||
app.openapi(routes.getFullscreenState, async (ctx) => {
|
app.openapi(routes.getFullscreenState, async (ctx) => {
|
||||||
const stateResponsePromise = new Promise<boolean>((resolve) => {
|
const stateResponsePromise = new Promise<boolean>((resolve) => {
|
||||||
ipcMain.once(
|
ipcMain.once(
|
||||||
'ytmd:set-fullscreen',
|
'peard:set-fullscreen',
|
||||||
(_, isFullscreen: boolean | undefined) => {
|
(_, isFullscreen: boolean | undefined) => {
|
||||||
return resolve(!!isFullscreen);
|
return resolve(!!isFullscreen);
|
||||||
},
|
},
|
||||||
@ -728,7 +728,7 @@ export const register = (
|
|||||||
// Queue
|
// Queue
|
||||||
const queueInfo = async (ctx: Context) => {
|
const queueInfo = async (ctx: Context) => {
|
||||||
const queueResponsePromise = new Promise<QueueResponse>((resolve) => {
|
const queueResponsePromise = new Promise<QueueResponse>((resolve) => {
|
||||||
ipcMain.once('ytmd:get-queue-response', (_, queue: QueueResponse) => {
|
ipcMain.once('peard:get-queue-response', (_, queue: QueueResponse) => {
|
||||||
return resolve(queue);
|
return resolve(queue);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
@ -94,7 +94,7 @@ export const register = (
|
|||||||
lastSongInfo = { ...songInfo };
|
lastSongInfo = { ...songInfo };
|
||||||
});
|
});
|
||||||
|
|
||||||
ipc.on('ytmd:volume-changed', (newVolumeState: VolumeState) => {
|
ipc.on('peard:volume-changed', (newVolumeState: VolumeState) => {
|
||||||
volumeState = newVolumeState;
|
volumeState = newVolumeState;
|
||||||
send(DataTypes.VolumeChanged, {
|
send(DataTypes.VolumeChanged, {
|
||||||
volume: volumeState.state,
|
volume: volumeState.state,
|
||||||
@ -102,16 +102,16 @@ export const register = (
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
ipc.on('ytmd:repeat-changed', (mode: RepeatMode) => {
|
ipc.on('peard:repeat-changed', (mode: RepeatMode) => {
|
||||||
repeat = mode;
|
repeat = mode;
|
||||||
send(DataTypes.RepeatChanged, { repeat });
|
send(DataTypes.RepeatChanged, { repeat });
|
||||||
});
|
});
|
||||||
|
|
||||||
ipc.on('ytmd:seeked', (t: number) => {
|
ipc.on('peard:seeked', (t: number) => {
|
||||||
send(DataTypes.PositionChanged, { position: t });
|
send(DataTypes.PositionChanged, { position: t });
|
||||||
});
|
});
|
||||||
|
|
||||||
ipc.on('ytmd:shuffle-changed', (newShuffle: boolean) => {
|
ipc.on('peard:shuffle-changed', (newShuffle: boolean) => {
|
||||||
shuffle = newShuffle;
|
shuffle = newShuffle;
|
||||||
send(DataTypes.ShuffleChanged, { shuffle });
|
send(DataTypes.ShuffleChanged, { shuffle });
|
||||||
});
|
});
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
import { createPlugin } from '@/utils';
|
import { createPlugin } from '@/utils';
|
||||||
import { t } from '@/i18n';
|
import { t } from '@/i18n';
|
||||||
import { type YoutubePlayer } from '@/types/youtube-player';
|
import { type MusicPlayer } from '@/types/music-player';
|
||||||
|
|
||||||
const lazySafeTry = (...fns: (() => void)[]) => {
|
const lazySafeTry = (...fns: (() => void)[]) => {
|
||||||
for (const fn of fns) {
|
for (const fn of fns) {
|
||||||
@ -95,7 +95,7 @@ const audioCanPlayHandler = ({
|
|||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|
||||||
const ensureAudioContextLoad = (playerApi: YoutubePlayer) => {
|
const ensureAudioContextLoad = (playerApi: MusicPlayer) => {
|
||||||
if (playerApi.getPlayerState() !== 1 || storage.lastContext) return;
|
if (playerApi.getPlayerState() !== 1 || storage.lastContext) return;
|
||||||
|
|
||||||
playerApi.loadVideoById(
|
playerApi.loadVideoById(
|
||||||
@ -115,7 +115,7 @@ export default createPlugin({
|
|||||||
},
|
},
|
||||||
|
|
||||||
start() {
|
start() {
|
||||||
document.addEventListener('ytmd:audio-can-play', audioCanPlayHandler, {
|
document.addEventListener('peard:audio-can-play', audioCanPlayHandler, {
|
||||||
passive: true,
|
passive: true,
|
||||||
});
|
});
|
||||||
storage.connectToCompressor(
|
storage.connectToCompressor(
|
||||||
@ -126,7 +126,7 @@ export default createPlugin({
|
|||||||
},
|
},
|
||||||
|
|
||||||
stop() {
|
stop() {
|
||||||
document.removeEventListener('ytmd:audio-can-play', audioCanPlayHandler);
|
document.removeEventListener('peard:audio-can-play', audioCanPlayHandler);
|
||||||
storage.disconnectCompressor();
|
storage.disconnectCompressor();
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
|||||||
@ -7,7 +7,7 @@ import { t } from '@/i18n';
|
|||||||
export default createBackend({
|
export default createBackend({
|
||||||
start({ ipc: { handle }, window }) {
|
start({ ipc: { handle }, window }) {
|
||||||
handle(
|
handle(
|
||||||
'ytmd:captions-selector',
|
'peard:captions-selector',
|
||||||
async (captionLabels: Record<string, string>, currentIndex: string) =>
|
async (captionLabels: Record<string, string>, currentIndex: string) =>
|
||||||
await prompt(
|
await prompt(
|
||||||
{
|
{
|
||||||
|
|||||||
@ -7,7 +7,7 @@ import renderer, {
|
|||||||
type LanguageOptions,
|
type LanguageOptions,
|
||||||
} from './renderer';
|
} from './renderer';
|
||||||
|
|
||||||
import type { YoutubePlayer } from '@/types/youtube-player';
|
import type { MusicPlayer } from '@/types/music-player';
|
||||||
|
|
||||||
export default createPlugin<
|
export default createPlugin<
|
||||||
unknown,
|
unknown,
|
||||||
@ -15,7 +15,7 @@ export default createPlugin<
|
|||||||
{
|
{
|
||||||
captionsSettingsButton?: HTMLElement;
|
captionsSettingsButton?: HTMLElement;
|
||||||
captionTrackList: LanguageOptions[] | null;
|
captionTrackList: LanguageOptions[] | null;
|
||||||
api: YoutubePlayer | null;
|
api: MusicPlayer | null;
|
||||||
config: CaptionsSelectorConfig | null;
|
config: CaptionsSelectorConfig | null;
|
||||||
videoChangeListener: () => void;
|
videoChangeListener: () => void;
|
||||||
},
|
},
|
||||||
|
|||||||
@ -6,7 +6,7 @@ import { t } from '@/i18n';
|
|||||||
|
|
||||||
import { CaptionsSettingButton } from './templates/captions-settings-template';
|
import { CaptionsSettingButton } from './templates/captions-settings-template';
|
||||||
|
|
||||||
import type { YoutubePlayer } from '@/types/youtube-player';
|
import type { MusicPlayer } from '@/types/music-player';
|
||||||
import type { AppElement } from '@/types/queue';
|
import type { AppElement } from '@/types/queue';
|
||||||
|
|
||||||
export interface LanguageOptions {
|
export interface LanguageOptions {
|
||||||
@ -35,7 +35,7 @@ export default createRenderer<
|
|||||||
{
|
{
|
||||||
captionsSettingsButton?: HTMLElement;
|
captionsSettingsButton?: HTMLElement;
|
||||||
captionTrackList: LanguageOptions[] | null;
|
captionTrackList: LanguageOptions[] | null;
|
||||||
api: YoutubePlayer | null;
|
api: MusicPlayer | null;
|
||||||
config: CaptionsSelectorConfig | null;
|
config: CaptionsSelectorConfig | null;
|
||||||
videoChangeListener: () => void;
|
videoChangeListener: () => void;
|
||||||
},
|
},
|
||||||
@ -73,7 +73,7 @@ export default createRenderer<
|
|||||||
this.api?.unloadModule('captions');
|
this.api?.unloadModule('captions');
|
||||||
document
|
document
|
||||||
.querySelector('video')
|
.querySelector('video')
|
||||||
?.removeEventListener('ytmd:src-changed', this.videoChangeListener);
|
?.removeEventListener('peard:src-changed', this.videoChangeListener);
|
||||||
if (this.captionsSettingsButton) {
|
if (this.captionsSettingsButton) {
|
||||||
document
|
document
|
||||||
.querySelector('.right-controls-buttons')
|
.querySelector('.right-controls-buttons')
|
||||||
@ -111,7 +111,7 @@ export default createRenderer<
|
|||||||
];
|
];
|
||||||
|
|
||||||
currentIndex = (await ipc.invoke(
|
currentIndex = (await ipc.invoke(
|
||||||
'ytmd:captions-selector',
|
'peard:captions-selector',
|
||||||
captionLabels,
|
captionLabels,
|
||||||
currentIndex,
|
currentIndex,
|
||||||
)) as number;
|
)) as number;
|
||||||
@ -156,7 +156,7 @@ export default createRenderer<
|
|||||||
|
|
||||||
document
|
document
|
||||||
.querySelector('video')
|
.querySelector('video')
|
||||||
?.addEventListener('ytmd:src-changed', this.videoChangeListener);
|
?.addEventListener('peard:src-changed', this.videoChangeListener);
|
||||||
},
|
},
|
||||||
onConfigChange(newConfig) {
|
onConfigChange(newConfig) {
|
||||||
this.config = newConfig;
|
this.config = newConfig;
|
||||||
|
|||||||
@ -1,4 +1,4 @@
|
|||||||
import { Innertube } from 'youtubei.js';
|
import { Innertube } from '\u0079\u006f\u0075\u0074\u0075\u0062\u0065i.js';
|
||||||
|
|
||||||
import prompt from 'custom-electron-prompt';
|
import prompt from 'custom-electron-prompt';
|
||||||
|
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
import { createRenderer } from '@/utils';
|
import { createRenderer } from '@/utils';
|
||||||
|
|
||||||
import type { YoutubePlayer } from '@/types/youtube-player';
|
import type { MusicPlayer } from '@/types/music-player';
|
||||||
import type { RendererContext } from '@/types/contexts';
|
import type { RendererContext } from '@/types/contexts';
|
||||||
import type { CustomOutputPluginConfig } from './index';
|
import type { CustomOutputPluginConfig } from './index';
|
||||||
|
|
||||||
@ -48,13 +48,13 @@ export const renderer = createRenderer<
|
|||||||
await updateSinkId(audioContext, this.options!.output);
|
await updateSinkId(audioContext, this.options!.output);
|
||||||
},
|
},
|
||||||
|
|
||||||
async onPlayerApiReady(_: YoutubePlayer, context) {
|
async onPlayerApiReady(_: MusicPlayer, context) {
|
||||||
this.options = await context.getConfig();
|
this.options = await context.getConfig();
|
||||||
await navigator.mediaDevices.getUserMedia({ audio: true, video: false });
|
await navigator.mediaDevices.getUserMedia({ audio: true, video: false });
|
||||||
navigator.mediaDevices.ondevicechange = async () =>
|
navigator.mediaDevices.ondevicechange = async () =>
|
||||||
await updateDeviceList(context);
|
await updateDeviceList(context);
|
||||||
|
|
||||||
document.addEventListener('ytmd:audio-can-play', this.audioCanPlayHandler, {
|
document.addEventListener('peard:audio-can-play', this.audioCanPlayHandler, {
|
||||||
once: true,
|
once: true,
|
||||||
passive: true,
|
passive: true,
|
||||||
});
|
});
|
||||||
@ -63,7 +63,7 @@ export const renderer = createRenderer<
|
|||||||
|
|
||||||
stop() {
|
stop() {
|
||||||
document.removeEventListener(
|
document.removeEventListener(
|
||||||
'ytmd:audio-can-play',
|
'peard:audio-can-play',
|
||||||
this.audioCanPlayHandler,
|
this.audioCanPlayHandler,
|
||||||
);
|
);
|
||||||
navigator.mediaDevices.ondevicechange = null;
|
navigator.mediaDevices.ondevicechange = null;
|
||||||
|
|||||||
@ -3,7 +3,7 @@ import { createPlugin } from '@/utils';
|
|||||||
import { t } from '@/i18n';
|
import { t } from '@/i18n';
|
||||||
|
|
||||||
import type { VideoDataChanged } from '@/types/video-data-changed';
|
import type { VideoDataChanged } from '@/types/video-data-changed';
|
||||||
import type { YoutubePlayer } from '@/types/youtube-player';
|
import type { MusicPlayer } from '@/types/music-player';
|
||||||
|
|
||||||
export type DisableAutoPlayPluginConfig = {
|
export type DisableAutoPlayPluginConfig = {
|
||||||
enabled: boolean;
|
enabled: boolean;
|
||||||
@ -15,7 +15,7 @@ export default createPlugin<
|
|||||||
unknown,
|
unknown,
|
||||||
{
|
{
|
||||||
config: DisableAutoPlayPluginConfig | null;
|
config: DisableAutoPlayPluginConfig | null;
|
||||||
api: YoutubePlayer | null;
|
api: MusicPlayer | null;
|
||||||
eventListener: (event: CustomEvent<VideoDataChanged>) => void;
|
eventListener: (event: CustomEvent<VideoDataChanged>) => void;
|
||||||
timeUpdateListener: (e: Event) => void;
|
timeUpdateListener: (e: Event) => void;
|
||||||
},
|
},
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
/**
|
/**
|
||||||
* Application ID registered by @th-ch/youtube-music dev team
|
* Application ID registered by @th-ch/pear-desktop dev team
|
||||||
*/
|
*/
|
||||||
export const clientId = '1177081335727267940';
|
export const clientId = '1177081335727267940';
|
||||||
/**
|
/**
|
||||||
|
|||||||
@ -24,9 +24,9 @@ export type DiscordPluginConfig = {
|
|||||||
*/
|
*/
|
||||||
activityTimeoutTime: number;
|
activityTimeoutTime: number;
|
||||||
/**
|
/**
|
||||||
* Add a "Play on YouTube Music" button to rich presence
|
* Add a "Play on Pear Desktop" button to rich presence
|
||||||
*/
|
*/
|
||||||
playOnYouTubeMusic: boolean;
|
playOnPearDesktop: boolean;
|
||||||
/**
|
/**
|
||||||
* Hide the "View App On GitHub" button in the rich presence
|
* Hide the "View App On GitHub" button in the rich presence
|
||||||
*/
|
*/
|
||||||
@ -50,7 +50,7 @@ export default createPlugin({
|
|||||||
autoReconnect: true,
|
autoReconnect: true,
|
||||||
activityTimeoutEnabled: true,
|
activityTimeoutEnabled: true,
|
||||||
activityTimeoutTime: 10 * 60 * 1000,
|
activityTimeoutTime: 10 * 60 * 1000,
|
||||||
playOnYouTubeMusic: true,
|
playOnPearDesktop: true,
|
||||||
hideGitHubButton: false,
|
hideGitHubButton: false,
|
||||||
hideDurationLeft: false,
|
hideDurationLeft: false,
|
||||||
statusDisplayType: StatusDisplayType.Details,
|
statusDisplayType: StatusDisplayType.Details,
|
||||||
|
|||||||
@ -45,8 +45,8 @@ export const backend = createBackend<
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
ctx.ipc.on('ytmd:player-api-loaded', () => {
|
ctx.ipc.on('peard:player-api-loaded', () => {
|
||||||
ctx.ipc.send('ytmd:setup-time-changed-listener');
|
ctx.ipc.send('peard:setup-time-changed-listener');
|
||||||
});
|
});
|
||||||
|
|
||||||
app.on('before-quit', () => {
|
app.on('before-quit', () => {
|
||||||
|
|||||||
@ -18,7 +18,7 @@ const registerRefreshOnce = singleton((refreshMenu: () => void) => {
|
|||||||
|
|
||||||
const DiscordStatusDisplayTypeLabels: Record<StatusDisplayType, string> = {
|
const DiscordStatusDisplayTypeLabels: Record<StatusDisplayType, string> = {
|
||||||
[StatusDisplayType.Name]:
|
[StatusDisplayType.Name]:
|
||||||
'plugins.discord.menu.set-status-display-type.submenu.youtube-music',
|
'plugins.discord.menu.set-status-display-type.submenu.pear-desktop',
|
||||||
[StatusDisplayType.State]:
|
[StatusDisplayType.State]:
|
||||||
'plugins.discord.menu.set-status-display-type.submenu.artist',
|
'plugins.discord.menu.set-status-display-type.submenu.artist',
|
||||||
[StatusDisplayType.Details]:
|
[StatusDisplayType.Details]:
|
||||||
@ -67,12 +67,12 @@ export const onMenu = async ({
|
|||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: t('plugins.discord.menu.play-on-youtube-music'),
|
label: t('plugins.discord.menu.play-on-pear-desktop'),
|
||||||
type: 'checkbox',
|
type: 'checkbox',
|
||||||
checked: config.playOnYouTubeMusic,
|
checked: config.playOnPearDesktop,
|
||||||
click(item: Electron.MenuItem) {
|
click(item: Electron.MenuItem) {
|
||||||
setConfig({
|
setConfig({
|
||||||
playOnYouTubeMusic: item.checked,
|
playOnPearDesktop: item.checked,
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
|||||||
@ -28,16 +28,16 @@ export const buildDiscordButtons = (
|
|||||||
songInfo: SongInfo,
|
songInfo: SongInfo,
|
||||||
): GatewayActivityButton[] | undefined => {
|
): GatewayActivityButton[] | undefined => {
|
||||||
const buttons: GatewayActivityButton[] = [];
|
const buttons: GatewayActivityButton[] = [];
|
||||||
if (config.playOnYouTubeMusic && songInfo.url) {
|
if (config.playOnPearDesktop && songInfo.url) {
|
||||||
buttons.push({
|
buttons.push({
|
||||||
label: 'Play on YouTube Music',
|
label: 'Play on Pear Desktop',
|
||||||
url: songInfo.url,
|
url: songInfo.url,
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
if (!config.hideGitHubButton) {
|
if (!config.hideGitHubButton) {
|
||||||
buttons.push({
|
buttons.push({
|
||||||
label: 'View App On GitHub',
|
label: 'View App On GitHub',
|
||||||
url: 'https://github.com/th-ch/youtube-music',
|
url: 'https://github.com/pear-devs/pear-desktop',
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
return buttons.length ? buttons : undefined;
|
return buttons.length ? buttons : undefined;
|
||||||
|
|||||||
@ -3,7 +3,12 @@ import { join } from 'node:path';
|
|||||||
import { randomBytes } from 'node:crypto';
|
import { randomBytes } from 'node:crypto';
|
||||||
|
|
||||||
import { app, type BrowserWindow, dialog, ipcMain } from 'electron';
|
import { app, type BrowserWindow, dialog, ipcMain } from 'electron';
|
||||||
import { Innertube, UniversalCache, Utils, YTNodes } from 'youtubei.js';
|
import {
|
||||||
|
Innertube,
|
||||||
|
UniversalCache,
|
||||||
|
Utils,
|
||||||
|
YTNodes,
|
||||||
|
} from '\u0079\u006f\u0075\u0074\u0075\u0062\u0065i.js';
|
||||||
import is from 'electron-is';
|
import is from 'electron-is';
|
||||||
import filenamify from 'filenamify';
|
import filenamify from 'filenamify';
|
||||||
import { Mutex } from 'async-mutex';
|
import { Mutex } from 'async-mutex';
|
||||||
@ -28,18 +33,18 @@ import {
|
|||||||
import { getNetFetchAsFetch } from '@/plugins/utils/main';
|
import { getNetFetchAsFetch } from '@/plugins/utils/main';
|
||||||
import { t } from '@/i18n';
|
import { t } from '@/i18n';
|
||||||
|
|
||||||
import { DefaultPresetList, type Preset, YoutubeFormatList } from '../types';
|
import { DefaultPresetList, type Preset, VideoFormatList } from '../types';
|
||||||
|
|
||||||
import type { DownloaderPluginConfig } from '../index';
|
import type { DownloaderPluginConfig } from '../index';
|
||||||
import type { BackendContext } from '@/types/contexts';
|
import type { BackendContext } from '@/types/contexts';
|
||||||
import type { GetPlayerResponse } from '@/types/get-player-response';
|
import type { GetPlayerResponse } from '@/types/get-player-response';
|
||||||
import type { FormatOptions } from 'node_modules/youtubei.js/dist/src/types';
|
import type { FormatOptions } from 'node_modules/\u0079\u006f\u0075\u0074\u0075\u0062\u0065i.js/dist/src/types';
|
||||||
import type { VideoInfo } from 'node_modules/youtubei.js/dist/src/parser/youtube';
|
import type { VideoInfo } from 'node_modules/\u0079\u006f\u0075\u0074\u0075\u0062\u0065i.js/dist/src/parser/\u0079\u006f\u0075\u0074\u0075\u0062\u0065';
|
||||||
import type { PlayerErrorMessage } from 'node_modules/youtubei.js/dist/src/parser/nodes';
|
import type { PlayerErrorMessage } from 'node_modules/\u0079\u006f\u0075\u0074\u0075\u0062\u0065i.js/dist/src/parser/nodes';
|
||||||
import type {
|
import type {
|
||||||
TrackInfo,
|
TrackInfo,
|
||||||
Playlist,
|
Playlist,
|
||||||
} from 'node_modules/youtubei.js/dist/src/parser/ytmusic';
|
} from 'node_modules/\u0079\u006f\u0075\u0074\u0075\u0062\u0065i.js/dist/src/parser/ytmusic';
|
||||||
|
|
||||||
type CustomSongInfo = SongInfo & { trackId?: string };
|
type CustomSongInfo = SongInfo & { trackId?: string };
|
||||||
|
|
||||||
@ -56,7 +61,7 @@ let yt: Innertube;
|
|||||||
let win: BrowserWindow;
|
let win: BrowserWindow;
|
||||||
let playingUrl: string;
|
let playingUrl: string;
|
||||||
|
|
||||||
const isYouTubeMusicPremium = async () => {
|
const isPremium = async () => {
|
||||||
// If signed out, it is understood as non-premium
|
// If signed out, it is understood as non-premium
|
||||||
const isSignedIn = (await win.webContents.executeJavaScript(
|
const isSignedIn = (await win.webContents.executeJavaScript(
|
||||||
'!!yt.config_.LOGGED_IN',
|
'!!yt.config_.LOGGED_IN',
|
||||||
@ -66,7 +71,7 @@ const isYouTubeMusicPremium = async () => {
|
|||||||
|
|
||||||
// If signed in, check if the upgrade button is present
|
// If signed in, check if the upgrade button is present
|
||||||
const upgradeBtnIconPathData = (await win.webContents.executeJavaScript(
|
const upgradeBtnIconPathData = (await win.webContents.executeJavaScript(
|
||||||
'document.querySelector(\'iron-iconset-svg[name="yt-sys-icons"] #youtube_music_monochrome\')?.firstChild?.getAttribute("d")?.substring(0, 15)',
|
'document.querySelector(\'iron-iconset-svg[name="yt-sys-icons"] #\u0079\u006f\u0075\u0074\u0075\u0062\u0065_music_monochrome\')?.firstChild?.getAttribute("d")?.substring(0, 15)',
|
||||||
)) as string | null;
|
)) as string | null;
|
||||||
|
|
||||||
// Fallback to non-premium if the icon is not found
|
// Fallback to non-premium if the icon is not found
|
||||||
@ -107,7 +112,7 @@ const sendError = (error: Error, source?: string) => {
|
|||||||
export const getCookieFromWindow = async (win: BrowserWindow) => {
|
export const getCookieFromWindow = async (win: BrowserWindow) => {
|
||||||
return (
|
return (
|
||||||
await win.webContents.session.cookies.get({
|
await win.webContents.session.cookies.get({
|
||||||
url: 'https://music.youtube.com',
|
url: 'https://music.\u0079\u006f\u0075\u0074\u0075\u0062\u0065.com',
|
||||||
})
|
})
|
||||||
)
|
)
|
||||||
.map((it) => it.name + '=' + it.value)
|
.map((it) => it.name + '=' + it.value)
|
||||||
@ -192,7 +197,7 @@ export const onMainLoad = async ({
|
|||||||
}
|
}
|
||||||
|
|
||||||
ipc.handle('download-song', (url: string) => downloadSong(url));
|
ipc.handle('download-song', (url: string) => downloadSong(url));
|
||||||
ipc.on('ytmd:video-src-changed', (data: GetPlayerResponse) => {
|
ipc.on('peard:video-src-changed', (data: GetPlayerResponse) => {
|
||||||
playingUrl = data.microformat.microformatDataRenderer.urlCanonical;
|
playingUrl = data.microformat.microformatDataRenderer.urlCanonical;
|
||||||
});
|
});
|
||||||
ipc.handle('download-playlist-request', async (url: string) =>
|
ipc.handle('download-playlist-request', async (url: string) =>
|
||||||
@ -298,8 +303,8 @@ function downloadSongOnFinishSetup({
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
ipcMain.on('ytmd:player-api-loaded', () => {
|
ipcMain.on('peard:player-api-loaded', () => {
|
||||||
ipc.send('ytmd:setup-time-changed-listener');
|
ipc.send('peard:setup-time-changed-listener');
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -390,7 +395,7 @@ async function downloadSongUnsafe(
|
|||||||
}
|
}
|
||||||
|
|
||||||
const downloadOptions: FormatOptions = {
|
const downloadOptions: FormatOptions = {
|
||||||
type: (await isYouTubeMusicPremium()) ? 'audio' : 'video+audio', // Audio, video or video+audio
|
type: (await isPremium()) ? 'audio' : 'video+audio', // Audio, video or video+audio
|
||||||
quality: 'best', // Best, bestefficiency, 144p, 240p, 480p, 720p and so on.
|
quality: 'best', // Best, bestefficiency, 144p, 240p, 480p, 720p and so on.
|
||||||
format: 'any', // Media container format
|
format: 'any', // Media container format
|
||||||
};
|
};
|
||||||
@ -400,7 +405,7 @@ async function downloadSongUnsafe(
|
|||||||
let targetFileExtension: string;
|
let targetFileExtension: string;
|
||||||
if (!presetSetting?.extension) {
|
if (!presetSetting?.extension) {
|
||||||
targetFileExtension =
|
targetFileExtension =
|
||||||
YoutubeFormatList.find((it) => it.itag === format.itag)?.container ??
|
VideoFormatList.find((it) => it.itag === format.itag)?.container ??
|
||||||
'mp3';
|
'mp3';
|
||||||
} else {
|
} else {
|
||||||
targetFileExtension = presetSetting?.extension ?? 'mp3';
|
targetFileExtension = presetSetting?.extension ?? 'mp3';
|
||||||
|
|||||||
@ -10,7 +10,7 @@ export const sendFeedback = (win: BrowserWindow, message?: unknown) => {
|
|||||||
|
|
||||||
export const cropMaxWidth = (image: Electron.NativeImage) => {
|
export const cropMaxWidth = (image: Electron.NativeImage) => {
|
||||||
const imageSize = image.getSize();
|
const imageSize = image.getSize();
|
||||||
// Standart YouTube artwork width with margins from both sides is 280 + 720 + 280
|
// Standard artwork width with margins from both sides is 280 + 720 + 280
|
||||||
if (imageSize.width === 1280 && imageSize.height === 720) {
|
if (imageSize.width === 1280 && imageSize.height === 720) {
|
||||||
return image.crop({
|
return image.crop({
|
||||||
x: 280,
|
x: 280,
|
||||||
|
|||||||
@ -19,7 +19,7 @@ export const DefaultPresetList: Record<string, Preset> = {
|
|||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
export interface YouTubeFormat {
|
export interface VideoFormat {
|
||||||
itag: number;
|
itag: number;
|
||||||
container: string;
|
container: string;
|
||||||
content: string;
|
content: string;
|
||||||
@ -29,9 +29,9 @@ export interface YouTubeFormat {
|
|||||||
vrOr3D: string;
|
vrOr3D: string;
|
||||||
}
|
}
|
||||||
|
|
||||||
// converted from https://gist.github.com/sidneys/7095afe4da4ae58694d128b1034e01e2#file-youtube_format_code_itag_list-md
|
// converted from https://gist.github.com/sidneys/7095afe4da4ae58694d128b1034e01e2
|
||||||
// and https://gist.github.com/MartinEesmaa/2f4b261cb90a47e9c41ba115a011a4aa
|
// and https://gist.github.com/MartinEesmaa/2f4b261cb90a47e9c41ba115a011a4aa
|
||||||
export const YoutubeFormatList: YouTubeFormat[] = [
|
export const VideoFormatList: VideoFormat[] = [
|
||||||
{
|
{
|
||||||
itag: 5,
|
itag: 5,
|
||||||
container: 'flv',
|
container: 'flv',
|
||||||
|
|||||||
@ -57,7 +57,7 @@ export default createPlugin({
|
|||||||
const config = await getConfig();
|
const config = await getConfig();
|
||||||
|
|
||||||
document.addEventListener(
|
document.addEventListener(
|
||||||
'ytmd:audio-can-play',
|
'peard:audio-can-play',
|
||||||
({ detail: { audioSource, audioContext } }) => {
|
({ detail: { audioSource, audioContext } }) => {
|
||||||
const filtersToApply = config.filters.concat(
|
const filtersToApply = config.filters.concat(
|
||||||
defaultPresets
|
defaultPresets
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
import { createPlugin } from '@/utils';
|
import { createPlugin } from '@/utils';
|
||||||
import { t } from '@/i18n';
|
import { t } from '@/i18n';
|
||||||
|
|
||||||
import type { YoutubePlayer } from '@/types/youtube-player';
|
import type { MusicPlayer } from '@/types/music-player';
|
||||||
|
|
||||||
export default createPlugin({
|
export default createPlugin({
|
||||||
name: () => t('plugins.exponential-volume.name'),
|
name: () => t('plugins.exponential-volume.name'),
|
||||||
@ -12,7 +12,7 @@ export default createPlugin({
|
|||||||
},
|
},
|
||||||
renderer: {
|
renderer: {
|
||||||
onPlayerApiReady(playerApi) {
|
onPlayerApiReady(playerApi) {
|
||||||
const syncVolume = (playerApi: YoutubePlayer) => {
|
const syncVolume = (playerApi: MusicPlayer) => {
|
||||||
if (playerApi.getPlayerState() === 3) {
|
if (playerApi.getPlayerState() === 3) {
|
||||||
setTimeout(() => syncVolume(playerApi), 0);
|
setTimeout(() => syncVolume(playerApi), 0);
|
||||||
return;
|
return;
|
||||||
@ -21,8 +21,8 @@ export default createPlugin({
|
|||||||
playerApi.setVolume(playerApi.getVolume());
|
playerApi.setVolume(playerApi.getVolume());
|
||||||
};
|
};
|
||||||
|
|
||||||
// "YouTube Music fix volume ratio 0.4" by Marco Pfeiffer
|
// "fix volume ratio 0.4" by Marco Pfeiffer
|
||||||
// https://greasyfork.org/en/scripts/397686-youtube-music-fix-volume-ratio/
|
// https://bit.ly/4nMu2WF
|
||||||
|
|
||||||
// Manipulation exponent, higher value = lower volume
|
// Manipulation exponent, higher value = lower volume
|
||||||
// 3 is the value used by pulseaudio, which Barteks2x figured out this gist here: https://gist.github.com/Barteks2x/a4e189a36a10c159bb1644ffca21c02a
|
// 3 is the value used by pulseaudio, which Barteks2x figured out this gist here: https://gist.github.com/Barteks2x/a4e189a36a10c159bb1644ffca21c02a
|
||||||
|
|||||||
@ -54,7 +54,7 @@ export const onMainLoad = ({
|
|||||||
return target;
|
return target;
|
||||||
};
|
};
|
||||||
|
|
||||||
ipcMain.handle('ytmd:menu-event', (event, commandId: number) => {
|
ipcMain.handle('peard:menu-event', (event, commandId: number) => {
|
||||||
const target = getMenuItemById(commandId);
|
const target = getMenuItemById(commandId);
|
||||||
if (target)
|
if (target)
|
||||||
(
|
(
|
||||||
|
|||||||
@ -25,7 +25,7 @@ export const onRendererLoad = async ({
|
|||||||
}: RendererContext<InAppMenuConfig>) => {
|
}: RendererContext<InAppMenuConfig>) => {
|
||||||
setConfig(await getConfig());
|
setConfig(await getConfig());
|
||||||
|
|
||||||
document.title = 'YouTube Music';
|
document.title = 'Pear Desktop';
|
||||||
const stylesheet = new CSSStyleSheet();
|
const stylesheet = new CSSStyleSheet();
|
||||||
stylesheet.replaceSync(scrollStyle);
|
stylesheet.replaceSync(scrollStyle);
|
||||||
document.adoptedStyleSheets = [...document.adoptedStyleSheets, stylesheet];
|
document.adoptedStyleSheets = [...document.adoptedStyleSheets, stylesheet];
|
||||||
|
|||||||
@ -278,7 +278,7 @@ export const PanelItem = (props: PanelItemProps) => {
|
|||||||
};
|
};
|
||||||
|
|
||||||
const handleClick = async () => {
|
const handleClick = async () => {
|
||||||
await window.ipcRenderer.invoke('ytmd:menu-event', props.commandId);
|
await window.ipcRenderer.invoke('peard:menu-event', props.commandId);
|
||||||
if (props.type === 'radio') {
|
if (props.type === 'radio') {
|
||||||
props.onChange?.(!props.checked);
|
props.onChange?.(!props.checked);
|
||||||
} else if (props.type === 'checkbox') {
|
} else if (props.type === 'checkbox') {
|
||||||
|
|||||||
@ -3,7 +3,7 @@
|
|||||||
--menu-bar-height: 32px;
|
--menu-bar-height: 32px;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* youtube-music style */
|
/* original style */
|
||||||
ytmusic-app-layout {
|
ytmusic-app-layout {
|
||||||
overflow: auto scroll;
|
overflow: auto scroll;
|
||||||
height: calc(100vh - var(--menu-bar-height, 36px));
|
height: calc(100vh - var(--menu-bar-height, 36px));
|
||||||
@ -73,7 +73,7 @@ ytmusic-app-layout ytmusic-player-page[is-mweb-modernization-enabled] .side-pane
|
|||||||
transform: translate(0, calc(var(--ytmusic-player-page-inner-height) - var(--ytmusic-player-page-tabs-header-height) - var(--ytmusic-player-page-player-bar-height) - var(--menu-bar-height, 32px) ));
|
transform: translate(0, calc(var(--ytmusic-player-page-inner-height) - var(--ytmusic-player-page-tabs-header-height) - var(--ytmusic-player-page-player-bar-height) - var(--menu-bar-height, 32px) ));
|
||||||
}
|
}
|
||||||
|
|
||||||
/* ytm-bugs: see https://github.com/th-ch/youtube-music/issues/1737 */
|
/* ytm-bugs: see https://github.com/pear-devs/pear-desktop/issues/1737 */
|
||||||
html {
|
html {
|
||||||
scrollbar-color: unset;
|
scrollbar-color: unset;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -36,7 +36,7 @@ export default createPlugin({
|
|||||||
const previousStatePaused = null;
|
const previousStatePaused = null;
|
||||||
|
|
||||||
const data: LumiaData = {
|
const data: LumiaData = {
|
||||||
origin: 'youtubemusic',
|
origin: 'peardesktop',
|
||||||
eventType: 'switchSong',
|
eventType: 'switchSong',
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -65,8 +65,8 @@ export default createPlugin({
|
|||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
ipc.on('ytmd:player-api-loaded', () =>
|
ipc.on('peard:player-api-loaded', () =>
|
||||||
ipc.send('ytmd:setup-time-changed-listener'),
|
ipc.send('peard:setup-time-changed-listener'),
|
||||||
);
|
);
|
||||||
|
|
||||||
registerCallback((songInfo) => {
|
registerCallback((songInfo) => {
|
||||||
|
|||||||
@ -21,7 +21,7 @@ import settingHTML from './templates/setting.html?raw';
|
|||||||
import style from './style.css?inline';
|
import style from './style.css?inline';
|
||||||
|
|
||||||
import type { DataConnection } from 'peerjs';
|
import type { DataConnection } from 'peerjs';
|
||||||
import type { YoutubePlayer } from '@/types/youtube-player';
|
import type { MusicPlayer } from '@/types/music-player';
|
||||||
import type { RendererContext } from '@/types/contexts';
|
import type { RendererContext } from '@/types/contexts';
|
||||||
import type { VideoDataChanged } from '@/types/video-data-changed';
|
import type { VideoDataChanged } from '@/types/video-data-changed';
|
||||||
import type { AppElement } from '@/types/queue';
|
import type { AppElement } from '@/types/queue';
|
||||||
@ -49,7 +49,7 @@ export default createPlugin<
|
|||||||
ipc?: RendererContext<never>['ipc'];
|
ipc?: RendererContext<never>['ipc'];
|
||||||
api: AppElement | null;
|
api: AppElement | null;
|
||||||
queue?: Queue;
|
queue?: Queue;
|
||||||
playerApi?: YoutubePlayer;
|
playerApi?: MusicPlayer;
|
||||||
showPrompt: (title: string, label: string) => Promise<string>;
|
showPrompt: (title: string, label: string) => Promise<string>;
|
||||||
popups: {
|
popups: {
|
||||||
host: ReturnType<typeof createHostPopup>;
|
host: ReturnType<typeof createHostPopup>;
|
||||||
|
|||||||
@ -7,13 +7,13 @@ export const extractToken = (cookie = document.cookie) =>
|
|||||||
export const getHash = async (
|
export const getHash = async (
|
||||||
papisid: string,
|
papisid: string,
|
||||||
millis = Date.now(),
|
millis = Date.now(),
|
||||||
origin: string = 'https://music.youtube.com',
|
origin: string = 'https://music.\u0079\u006f\u0075\u0074\u0075\u0062\u0065.com',
|
||||||
) => (await SHA1Hash(`${millis} ${papisid} ${origin}`)).toLowerCase();
|
) => (await SHA1Hash(`${millis} ${papisid} ${origin}`)).toLowerCase();
|
||||||
|
|
||||||
export const getAuthorizationHeader = async (
|
export const getAuthorizationHeader = async (
|
||||||
papisid: string,
|
papisid: string,
|
||||||
millis = Date.now(),
|
millis = Date.now(),
|
||||||
origin: string = 'https://music.youtube.com',
|
origin: string = 'https://music.\u0079\u006f\u0075\u0074\u0075\u0062\u0065.com',
|
||||||
) => {
|
) => {
|
||||||
return `SAPISIDHASH ${millis}_${await getHash(papisid, millis, origin)}`;
|
return `SAPISIDHASH ${millis}_${await getHash(papisid, millis, origin)}`;
|
||||||
};
|
};
|
||||||
|
|||||||
@ -1,4 +1,4 @@
|
|||||||
import type { YouTubeMusicAppElement } from '@/types/youtube-music-app-element';
|
import type { MusicPlayerAppElement } from '@/types/music-player-app-element';
|
||||||
import type { QueueElement } from '@/types/queue';
|
import type { QueueElement } from '@/types/queue';
|
||||||
|
|
||||||
type QueueRendererResponse = {
|
type QueueRendererResponse = {
|
||||||
@ -13,7 +13,7 @@ export const getMusicQueueRenderer = async (
|
|||||||
videoIds: string[],
|
videoIds: string[],
|
||||||
): Promise<QueueRendererResponse | null> => {
|
): Promise<QueueRendererResponse | null> => {
|
||||||
const queue = document.querySelector<QueueElement>('#queue');
|
const queue = document.querySelector<QueueElement>('#queue');
|
||||||
const app = document.querySelector<YouTubeMusicAppElement>('ytmusic-app');
|
const app = document.querySelector<MusicPlayerAppElement>('ytmusic-app');
|
||||||
if (!app) return null;
|
if (!app) return null;
|
||||||
|
|
||||||
const store = queue?.queue.store.store;
|
const store = queue?.queue.store.store;
|
||||||
|
|||||||
@ -127,7 +127,7 @@ export default (
|
|||||||
const getButton = (kind: keyof typeof mediaIcons) =>
|
const getButton = (kind: keyof typeof mediaIcons) =>
|
||||||
`<action ${display(
|
`<action ${display(
|
||||||
kind,
|
kind,
|
||||||
)} activationType="protocol" arguments="youtubemusic://${kind}"/>`;
|
)} activationType="protocol" arguments="peardesktop://${kind}"/>`;
|
||||||
|
|
||||||
const getButtons = (isPaused: boolean) => `\
|
const getButtons = (isPaused: boolean) => `\
|
||||||
<actions>
|
<actions>
|
||||||
@ -260,7 +260,7 @@ export default (
|
|||||||
songControls = getSongControls(win);
|
songControls = getSongControls(win);
|
||||||
|
|
||||||
let currentSeconds = 0;
|
let currentSeconds = 0;
|
||||||
on('ytmd:player-api-loaded', () => send('ytmd:setup-time-changed-listener'));
|
on('peard:player-api-loaded', () => send('peard:setup-time-changed-listener'));
|
||||||
|
|
||||||
let savedSongInfo: SongInfo;
|
let savedSongInfo: SongInfo;
|
||||||
let lastUrl: string | undefined;
|
let lastUrl: string | undefined;
|
||||||
|
|||||||
@ -3,7 +3,7 @@ import fs from 'node:fs';
|
|||||||
|
|
||||||
import { app, type NativeImage } from 'electron';
|
import { app, type NativeImage } from 'electron';
|
||||||
|
|
||||||
import youtubeMusicIcon from '@assets/youtube-music.png?asset&asarUnpack';
|
import musicPlayerIcon from '@assets/icon.png?asset&asarUnpack';
|
||||||
|
|
||||||
import { type SongInfo } from '@/providers/song-info';
|
import { type SongInfo } from '@/providers/song-info';
|
||||||
|
|
||||||
@ -46,7 +46,7 @@ export const notificationImage = (
|
|||||||
config: NotificationsPluginConfig,
|
config: NotificationsPluginConfig,
|
||||||
) => {
|
) => {
|
||||||
if (!songInfo.image) {
|
if (!songInfo.image) {
|
||||||
return youtubeMusicIcon;
|
return musicPlayerIcon;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!config.interactive) {
|
if (!config.interactive) {
|
||||||
@ -71,7 +71,7 @@ export const saveImage = (img: NativeImage, savePath: string) => {
|
|||||||
} catch (error: unknown) {
|
} catch (error: unknown) {
|
||||||
console.error('Error writing song icon to disk:');
|
console.error('Error writing song icon to disk:');
|
||||||
console.trace(error);
|
console.trace(error);
|
||||||
return youtubeMusicIcon;
|
return musicPlayerIcon;
|
||||||
}
|
}
|
||||||
|
|
||||||
return savePath;
|
return savePath;
|
||||||
|
|||||||
@ -37,7 +37,7 @@ export const injectCpuTamerByAnimationFrame = ((__CONTEXT__) => {
|
|||||||
win[hkey_script] = true;
|
win[hkey_script] = true;
|
||||||
|
|
||||||
/** @type {globalThis.PromiseConstructor} */
|
/** @type {globalThis.PromiseConstructor} */
|
||||||
const Promise = (async () => { })().constructor; // YouTube hacks Promise in WaterFox Classic and "Promise.resolve(0)" nevers resolve.
|
const Promise = (async () => { })().constructor; // hacks Promise in WaterFox Classic and "Promise.resolve(0)" nevers resolve.
|
||||||
const PromiseExternal = ((resolve_, reject_) => {
|
const PromiseExternal = ((resolve_, reject_) => {
|
||||||
const h = (resolve, reject) => { resolve_ = resolve; reject_ = reject };
|
const h = (resolve, reject) => { resolve_ = resolve; reject_ = reject };
|
||||||
return class PromiseExternal extends Promise {
|
return class PromiseExternal extends Promise {
|
||||||
@ -64,7 +64,7 @@ export const injectCpuTamerByAnimationFrame = ((__CONTEXT__) => {
|
|||||||
})();
|
})();
|
||||||
|
|
||||||
if (!isGPUAccelerationAvailable) {
|
if (!isGPUAccelerationAvailable) {
|
||||||
throw new Error('Your browser does not support GPU Acceleration. YouTube CPU Tamer by AnimationFrame is skipped.');
|
throw new Error('Your browser does not support GPU Acceleration. CPU Tamer by AnimationFrame is skipped.');
|
||||||
}
|
}
|
||||||
|
|
||||||
const timeupdateDT = (() => {
|
const timeupdateDT = (() => {
|
||||||
@ -100,7 +100,7 @@ export const injectCpuTamerByAnimationFrame = ((__CONTEXT__) => {
|
|||||||
frame.sandbox = 'allow-same-origin'; // script cannot be run inside iframe but API can be obtained from iframe
|
frame.sandbox = 'allow-same-origin'; // script cannot be run inside iframe but API can be obtained from iframe
|
||||||
let n = document.createElement('noscript'); // wrap into NOSCRPIT to avoid reflow (layouting)
|
let n = document.createElement('noscript'); // wrap into NOSCRPIT to avoid reflow (layouting)
|
||||||
n.appendChild(frame);
|
n.appendChild(frame);
|
||||||
while (!document.documentElement && mx-- > 0) await new Promise(waitFn); // requestAnimationFrame here could get modified by YouTube engine
|
while (!document.documentElement && mx-- > 0) await new Promise(waitFn); // requestAnimationFrame here could get modified by the engine
|
||||||
const root = document.documentElement;
|
const root = document.documentElement;
|
||||||
root.appendChild(n); // throw error if root is null due to exceeding MAX TRIAL
|
root.appendChild(n); // throw error if root is null due to exceeding MAX TRIAL
|
||||||
if (blobURL) Promise.resolve().then(() => URL.revokeObjectURL(blobURL));
|
if (blobURL) Promise.resolve().then(() => URL.revokeObjectURL(blobURL));
|
||||||
|
|||||||
@ -37,7 +37,7 @@ export const injectCpuTamerByDomMutation = ((__CONTEXT__) => {
|
|||||||
win[hkey_script] = true;
|
win[hkey_script] = true;
|
||||||
|
|
||||||
/** @type {globalThis.PromiseConstructor} */
|
/** @type {globalThis.PromiseConstructor} */
|
||||||
const Promise = (async () => { })().constructor; // YouTube hacks Promise in WaterFox Classic and "Promise.resolve(0)" nevers resolve.
|
const Promise = (async () => { })().constructor; // hacks Promise in WaterFox Classic and "Promise.resolve(0)" nevers resolve.
|
||||||
const PromiseExternal = ((resolve_, reject_) => {
|
const PromiseExternal = ((resolve_, reject_) => {
|
||||||
const h = (resolve, reject) => { resolve_ = resolve; reject_ = reject };
|
const h = (resolve, reject) => { resolve_ = resolve; reject_ = reject };
|
||||||
return class PromiseExternal extends Promise {
|
return class PromiseExternal extends Promise {
|
||||||
@ -89,7 +89,7 @@ export const injectCpuTamerByDomMutation = ((__CONTEXT__) => {
|
|||||||
frame.sandbox = 'allow-same-origin'; // script cannot be run inside iframe but API can be obtained from iframe
|
frame.sandbox = 'allow-same-origin'; // script cannot be run inside iframe but API can be obtained from iframe
|
||||||
let n = document.createElement('noscript'); // wrap into NOSCRPIT to avoid reflow (layouting)
|
let n = document.createElement('noscript'); // wrap into NOSCRPIT to avoid reflow (layouting)
|
||||||
n.appendChild(frame);
|
n.appendChild(frame);
|
||||||
while (!document.documentElement && mx-- > 0) await new Promise(waitFn); // requestAnimationFrame here could get modified by YouTube engine
|
while (!document.documentElement && mx-- > 0) await new Promise(waitFn); // requestAnimationFrame here could get modified by the engine
|
||||||
const root = document.documentElement;
|
const root = document.documentElement;
|
||||||
root.appendChild(n); // throw error if root is null due to exceeding MAX TRIAL
|
root.appendChild(n); // throw error if root is null due to exceeding MAX TRIAL
|
||||||
if (blobURL) Promise.resolve().then(() => URL.revokeObjectURL(blobURL));
|
if (blobURL) Promise.resolve().then(() => URL.revokeObjectURL(blobURL));
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user