Skip to content

Commit 99adecf

Browse files
committed
Merge branch 'yt-master'
# Conflicts: # src/plugins/synced-lyrics/providers/LRCLib.ts
2 parents b7ad8e6 + 83b6800 commit 99adecf

File tree

165 files changed

+16401
-4002
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

165 files changed

+16401
-4002
lines changed

.github/workflows/build.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ on:
66
pull_request:
77

88
env:
9-
NODE_VERSION: "20.x"
9+
NODE_VERSION: "22.x"
1010

1111
jobs:
1212
build:
@@ -162,7 +162,7 @@ jobs:
162162
163163
- name: Commit changelog
164164
if: ${{ env.VERSION_HASH == '' }}
165-
uses: stefanzweifel/git-auto-commit-action@v5
165+
uses: stefanzweifel/git-auto-commit-action@v6
166166
with:
167167
commit_message: Update changelog for ${{ env.VERSION_TAG }}
168168
file_pattern: "changelog.md"

.gitignore

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
node_modules
22
/dist
33
/pack
4-
electron-builder.yml
54
.vscode/settings.json
65
.idea
76

.prettierrc

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
{
22
"tabWidth": 2,
33
"useTabs": false,
4-
"singleQuote": true
4+
"singleQuote": true,
5+
"trailingComma": "all",
6+
"quoteProps": "consistent"
57
}

README.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -153,6 +153,8 @@ Read this in other languages: [한국어](./docs/readme/README-ko.md), [Françai
153153
- **Tuna OBS**: Integration with [OBS](https://obsproject.com/)'s
154154
plugin [Tuna](https://obsproject.com/forum/resources/tuna.843/)
155155

156+
- **Unobtrusive Player**: Prevents the player from popping up when playing a song
157+
156158
- **Video Quality Changer**: Allows changing the video quality with
157159
a [button](https://user-images.githubusercontent.com/78568641/138574366-70324a5e-2d64-4f6a-acdd-dc2a2b9cecc5.png) on
158160
the video overlay

changelog.md

Lines changed: 173 additions & 0 deletions
Large diffs are not rendered by default.

electron-builder.yml

Lines changed: 125 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,125 @@
1+
appId: com.github.th-ch.youtube-music
2+
productName: YouTube Music
3+
files:
4+
- '!*'
5+
- dist
6+
- assets
7+
- license
8+
- '!node_modules'
9+
- 'node_modules/custom-electron-prompt/**'
10+
- 'node_modules/@ghostery/adblocker-electron-preload/**'
11+
- 'node_modules/@ffmpeg.wasm/core-mt/**'
12+
- '!node_modules/**/*.map'
13+
- '!node_modules/**/*.ts'
14+
asarUnpack:
15+
- assets
16+
mac:
17+
identity: null
18+
target:
19+
- target: dmg
20+
arch:
21+
- x64
22+
- arm64
23+
icon: assets/generated/icons/mac/icon.icns
24+
compression: maximum
25+
win:
26+
icon: assets/generated/icons/win/icon.ico
27+
target:
28+
- target: nsis-web
29+
arch:
30+
- x64
31+
- ia32
32+
- arm64
33+
- target: portable
34+
arch:
35+
- x64
36+
- ia32
37+
- arm64
38+
compression: maximum
39+
nsisWeb:
40+
runAfterFinish: false
41+
linux:
42+
icon: assets/generated/icons/png
43+
category: AudioVideo
44+
desktop:
45+
entry:
46+
StartupWMClass: com.github.th_ch.youtube_music
47+
target:
48+
- target: AppImage
49+
arch:
50+
- x64
51+
- arm64
52+
- armv7l
53+
- target: flatpak
54+
arch:
55+
- x64
56+
- target: deb
57+
arch:
58+
- x64
59+
- arm64
60+
- armv7l
61+
- target: rpm
62+
arch:
63+
- x64
64+
- arm64
65+
- target: snap
66+
arch:
67+
- x64
68+
- target: freebsd
69+
arch:
70+
- x64
71+
- arm64
72+
- armv7l
73+
- target: tar.gz
74+
arch:
75+
- x64
76+
- arm64
77+
- armv7l
78+
appImage:
79+
description: >-
80+
YouTube Music Desktop App bundled with custom plugins (and built-in ad
81+
blocker / downloader)
82+
category: AudioVideo
83+
flatpak:
84+
description: >-
85+
YouTube Music Desktop App bundled with custom plugins (and built-in ad
86+
blocker / downloader)
87+
category: AudioVideo
88+
runtimeVersion: '24.08'
89+
baseVersion: '24.08'
90+
finishArgs:
91+
- '--socket=wayland'
92+
- '--socket=x11'
93+
- '--share=ipc'
94+
- '--device=dri'
95+
- '--socket=pulseaudio'
96+
- '--share=network'
97+
- '--filesystem=xdg-music:rw'
98+
- '--talk-name=org.freedesktop.Notifications'
99+
- '--talk-name=org.gnome.SessionManager'
100+
- '--talk-name=org.kde.StatusNotifierWatcher'
101+
- '--own-name=org.mpris.MediaPlayer2.YoutubeMusic.*'
102+
deb:
103+
depends:
104+
- libgtk-3-0
105+
- libnotify4
106+
- libnss3
107+
- libxss1
108+
- libxtst6
109+
- xdg-utils
110+
- libatspi2.0-0
111+
- libuuid1
112+
- libasound2
113+
- libgbm1
114+
rpm:
115+
depends:
116+
- /usr/lib64/libuuid.so.1
117+
fpm:
118+
- '--rpm-rpmbuild-define'
119+
- _build_id_links none
120+
snap:
121+
slots:
122+
- mpris:
123+
interface: mpris
124+
directories:
125+
output: ./pack/

electron.vite.config.mts

Lines changed: 21 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,17 @@
11
import { dirname, join, resolve } from 'node:path';
22
import { fileURLToPath } from 'node:url';
33

4-
import { UserConfig } from 'vite';
54
import { defineConfig, defineViteConfig } from 'electron-vite';
65
import builtinModules from 'builtin-modules';
7-
import viteResolve from 'vite-plugin-resolve';
6+
87
import Inspect from 'vite-plugin-inspect';
98
import solidPlugin from 'vite-plugin-solid';
9+
import viteResolve from 'vite-plugin-resolve';
10+
11+
import { withFilter, type UserConfig } from 'vite';
1012

1113
import { pluginVirtualModuleGenerator } from './vite-plugins/plugin-importer.mjs';
1214
import pluginLoader from './vite-plugins/plugin-loader.mjs';
13-
1415
import { i18nImporter } from './vite-plugins/i18n-importer.mjs';
1516

1617
const __dirname = dirname(fileURLToPath(import.meta.url));
@@ -23,6 +24,9 @@ const resolveAlias = {
2324
export default defineConfig({
2425
main: defineViteConfig(({ mode }) => {
2526
const commonConfig: UserConfig = {
27+
experimental: {
28+
enableNativePlugin: true,
29+
},
2630
plugins: [
2731
pluginLoader('backend'),
2832
viteResolve({
@@ -31,15 +35,16 @@ export default defineConfig({
3135
}),
3236
],
3337
publicDir: 'assets',
38+
define: {
39+
'__dirname': 'import.meta.dirname',
40+
'__filename': 'import.meta.filename',
41+
},
3442
build: {
3543
lib: {
3644
entry: 'src/index.ts',
37-
formats: ['cjs'],
45+
formats: ['es'],
3846
},
3947
outDir: 'dist/main',
40-
commonjsOptions: {
41-
ignoreDynamicRequires: true,
42-
},
4348
rollupOptions: {
4449
external: ['electron', 'custom-electron-prompt', ...builtinModules],
4550
input: './src/index.ts',
@@ -72,6 +77,9 @@ export default defineConfig({
7277
}),
7378
preload: defineViteConfig(({ mode }) => {
7479
const commonConfig: UserConfig = {
80+
experimental: {
81+
enableNativePlugin: true,
82+
},
7583
plugins: [
7684
pluginLoader('preload'),
7785
viteResolve({
@@ -120,13 +128,18 @@ export default defineConfig({
120128
}),
121129
renderer: defineViteConfig(({ mode }) => {
122130
const commonConfig: UserConfig = {
131+
experimental: {
132+
enableNativePlugin: mode !== 'development', // Disable native plugin in development mode to avoid issues with HMR (bug in rolldown-vite)
133+
},
123134
plugins: [
124135
pluginLoader('renderer'),
125136
viteResolve({
126137
'virtual:i18n': i18nImporter(),
127138
'virtual:plugins': pluginVirtualModuleGenerator('renderer'),
128139
}),
129-
solidPlugin(),
140+
withFilter(solidPlugin(), {
141+
load: { id: [/\.(tsx|jsx)$/, '/@solid-refresh'] },
142+
}),
130143
],
131144
root: './src/',
132145
build: {
@@ -136,9 +149,6 @@ export default defineConfig({
136149
name: 'renderer',
137150
},
138151
outDir: 'dist/renderer',
139-
commonjsOptions: {
140-
ignoreDynamicRequires: true,
141-
},
142152
rollupOptions: {
143153
external: ['electron', ...builtinModules],
144154
input: './src/index.html',

eslint.config.mjs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,8 @@
22

33
import eslint from '@eslint/js';
44
import prettier from 'eslint-plugin-prettier/recommended';
5-
import stylistic from '@stylistic/eslint-plugin-js';
5+
import solid from 'eslint-plugin-solid/configs/recommended';
6+
import stylistic from '@stylistic/eslint-plugin';
67
import tsEslint from 'typescript-eslint';
78

89
import * as importPlugin from 'eslint-plugin-import';
@@ -12,6 +13,7 @@ export default tsEslint.config(
1213
tsEslint.configs.eslintRecommended,
1314
...tsEslint.configs.recommendedTypeChecked,
1415
prettier,
16+
solid,
1517
{ ignores: ['dist', 'node_modules', '*.config.*js', '*.test.*js'] },
1618
{
1719
plugins: {

0 commit comments

Comments
 (0)