{ "name": "youtube-music", "desktopName": "com.github.th_ch.youtube_music", "productName": "YouTube Music", "version": "3.9.0", "description": "YouTube Music Desktop App - including custom plugins", "main": "./dist/main/index.js", "license": "MIT", "repository": "th-ch/youtube-music", "author": { "name": "th-ch", "email": "th-ch@users.noreply.github.com", "url": "https://github.com/th-ch/youtube-music" }, "build": { "appId": "com.github.th-ch.youtube-music", "productName": "YouTube Music", "files": [ "!*", "dist", "assets", "license", "!node_modules", "node_modules/custom-electron-prompt/**", "node_modules/@ghostery/adblocker-electron-preload/**", "node_modules/@ffmpeg.wasm/core-mt/**", "!node_modules/**/*.map", "!node_modules/**/*.ts" ], "asarUnpack": [ "assets" ], "mac": { "identity": null, "target": [ { "target": "dmg", "arch": [ "x64", "arm64" ] } ], "icon": "assets/generated/icons/mac/icon.icns", "compression": "maximum" }, "win": { "icon": "assets/generated/icons/win/icon.ico", "target": [ { "target": "nsis-web", "arch": [ "x64", "ia32", "arm64" ] }, { "target": "portable", "arch": [ "x64", "ia32", "arm64" ] } ], "compression": "maximum" }, "nsisWeb": { "runAfterFinish": false }, "linux": { "icon": "assets/generated/icons/png", "category": "AudioVideo", "desktop": { "entry": { "StartupWMClass": "com.github.th_ch.youtube_music" } }, "target": [ { "target": "AppImage", "arch": [ "x64", "arm64", "armv7l" ] }, { "target": "flatpak", "arch": [ "x64" ] }, { "target": "deb", "arch": [ "x64", "arm64", "armv7l" ] }, { "target": "rpm", "arch": [ "x64", "arm64" ] }, { "target": "snap", "arch": [ "x64" ] }, { "target": "freebsd", "arch": [ "x64", "arm64", "armv7l" ] }, { "target": "tar.gz", "arch": [ "x64", "arm64", "armv7l" ] } ] }, "appImage": { "description": "YouTube Music Desktop App bundled with custom plugins (and built-in ad blocker / downloader)", "category": "AudioVideo" }, "flatpak": { "description": "YouTube Music Desktop App bundled with custom plugins (and built-in ad blocker / downloader)", "category": "AudioVideo", "runtimeVersion": "24.08", "baseVersion": "24.08", "finishArgs": [ "--socket=wayland", "--socket=x11", "--share=ipc", "--device=dri", "--socket=pulseaudio", "--share=network", "--filesystem=xdg-music:rw", "--talk-name=org.freedesktop.Notifications", "--talk-name=org.gnome.SessionManager", "--talk-name=org.kde.StatusNotifierWatcher", "--own-name=org.mpris.MediaPlayer2.YoutubeMusic.*" ] }, "deb": { "depends": [ "libgtk-3-0", "libnotify4", "libnss3", "libxss1", "libxtst6", "xdg-utils", "libatspi2.0-0", "libuuid1", "libasound2", "libgbm1" ] }, "rpm": { "depends": [ "/usr/lib64/libuuid.so.1" ], "fpm": [ "--rpm-rpmbuild-define", "_build_id_links none" ] }, "snap": { "slots": [ { "mpris": { "interface": "mpris" } } ] }, "directories": { "output": "./pack/" } }, "scripts": { "test": "playwright test", "test:debug": "cross-env DEBUG=pw:*,-pw:test:protocol playwright test", "build": "electron-vite build", "vite:inspect": "pnpm clean && electron-vite build --mode development && pnpm exec serve .vite-inspect", "start": "electron-vite preview", "start:debug": "cross-env ELECTRON_ENABLE_LOGGING=1 pnpm start", "dev": "cross-env NODE_OPTIONS=--enable-source-maps electron-vite dev --watch", "dev:renderer": "cross-env NODE_OPTIONS=--enable-source-maps electron-vite dev", "dev:debug": "cross-env ELECTRON_ENABLE_LOGGING=1 pnpm dev", "clean": "del-cli dist && del-cli pack && del-cli .vite-inspect", "dist": "pnpm clean && pnpm build && pnpm electron-builder --win --mac --linux -p never", "dist:linux": "pnpm clean && pnpm build && pnpm electron-builder --linux -p never", "dist:linux:deb-arm64": "pnpm clean && pnpm build && pnpm electron-builder --linux deb:arm64 -p never", "dist:linux:rpm-arm64": "pnpm clean && pnpm build && pnpm electron-builder --linux rpm:arm64 -p never", "dist:mac": "pnpm clean && pnpm build && pnpm electron-builder --mac dmg:x64 -p never", "dist:mac:arm64": "pnpm clean && pnpm build && pnpm electron-builder --mac dmg:arm64 -p never", "dist:win": "pnpm clean && pnpm build && pnpm electron-builder --win -p never", "dist:win:x64": "pnpm clean && pnpm build && pnpm electron-builder --win nsis-web:x64 -p never", "lint": "eslint .", "changelog": "npx --yes auto-changelog", "release:linux": "pnpm clean && pnpm build && pnpm electron-builder --linux -p always -c.snap.publish=github", "release:mac": "pnpm clean && pnpm build && pnpm electron-builder --mac -p always", "release:win": "pnpm clean && pnpm build && pnpm electron-builder --win -p always", "typecheck": "tsc -p tsconfig.json --noEmit" }, "engines": { "node": ">=18", "pnpm": ">=10" }, "pnpm": { "overrides": { "vite": "npm:rolldown-vite@7.0.3", "node-gyp": "11.2.0", "xml2js": "0.6.2", "node-fetch": "3.3.2", "@electron/universal": "2.0.3", "@babel/runtime": "7.27.6", "vitefu": "1.0.7" }, "patchedDependencies": { "vudio@2.1.1": "patches/vudio@2.1.1.patch", "@malept/flatpak-bundler@0.4.0": "patches/@malept__flatpak-bundler@0.4.0.patch", "kuromoji@0.1.2": "patches/kuromoji@0.1.2.patch" }, "neverBuiltDependencies": [] }, "dependencies": { "@electron-toolkit/tsconfig": "1.0.1", "@electron/remote": "2.1.2", "@ffmpeg.wasm/core-mt": "0.12.0", "@ffmpeg.wasm/main": "0.12.0", "@floating-ui/dom": "1.7.2", "@foobar404/wave": "2.0.5", "@ghostery/adblocker-electron": "2.8.0", "@ghostery/adblocker-electron-preload": "2.8.0", "@hono/node-server": "1.14.4", "@hono/swagger-ui": "0.5.2", "@hono/zod-openapi": "0.19.9", "@hono/zod-validator": "0.7.0", "@jellybrick/dbus-next": "0.10.3", "@jellybrick/electron-better-web-request": "1.0.4", "@jellybrick/mpris-service": "2.1.5", "@jimp/plugin-color": "1.6.0", "@skyra/jaro-winkler": "1.1.1", "@xhayper/discord-rpc": "1.2.2", "async-mutex": "0.5.0", "bgutils-js": "3.2.0", "butterchurn": "3.0.0-beta.4", "butterchurn-presets": "3.0.0-beta.4", "color": "5.0.0", "conf": "14.0.0", "custom-electron-prompt": "1.5.8", "deepmerge-ts": "7.1.5", "delay": "6.0.0", "electron-debug": "4.1.0", "electron-is": "3.0.0", "electron-localshortcut": "3.2.1", "electron-store": "10.1.0", "electron-unhandled": "4.0.1", "electron-updater": "6.6.2", "es-hangul": "2.3.4", "fast-average-color": "9.5.0", "fast-equals": "5.2.2", "fflate": "0.8.2", "filenamify": "6.0.0", "hanja": "1.1.4", "happy-dom": "18.0.1", "hono": "4.8.3", "howler": "2.2.4", "html-to-text": "9.0.5", "i18next": "25.2.1", "jimp": "1.6.0", "keyboardevent-from-electron-accelerator": "2.0.0", "keyboardevents-areequal": "0.2.2", "kuromoji": "0.1.2", "kuroshiro": "1.2.0", "kuroshiro-analyzer-kuromoji": "1.1.0", "lazy-var": "2.2.2", "node-html-parser": "7.0.1", "node-id3": "0.2.9", "peerjs": "1.5.5", "segmentit": "2.0.3", "semver": "7.7.2", "serve": "14.2.4", "simple-youtube-age-restriction-bypass": "github:organization/Simple-YouTube-Age-Restriction-Bypass#v2.5.9", "socks": "2.8.5", "solid-floating-ui": "0.3.1", "solid-js": "1.9.7", "solid-styled-components": "0.28.5", "solid-transition-group": "0.3.0", "tiny-pinyin": "1.3.2", "ts-morph": "26.0.0", "vudio": "2.1.1", "x11": "2.3.0", "youtubei.js": "14.0.0", "zod": "3.25.67" }, "devDependencies": { "@eslint/js": "9.30.0", "@malept/flatpak-bundler": "0.4.0", "@playwright/test": "1.53.1", "@stylistic/eslint-plugin-js": "4.4.1", "@total-typescript/ts-reset": "0.6.1", "@types/electron-localshortcut": "3.1.3", "@types/howler": "2.2.12", "@types/html-to-text": "9.0.4", "@types/semver": "7.7.0", "@types/trusted-types": "2.0.7", "bufferutil": "4.0.9", "builtin-modules": "5.0.0", "cross-env": "7.0.3", "del-cli": "6.0.0", "discord-api-types": "0.38.13", "electron": "37.1.0", "electron-builder": "26.0.12", "electron-builder-squirrel-windows": "26.0.12", "electron-devtools-installer": "4.0.0", "electron-vite": "4.0.0-beta.0", "esbuild": "0.25.5", "eslint": "9.30.0", "eslint-config-prettier": "10.1.5", "eslint-import-resolver-exports": "1.0.0-beta.5", "eslint-import-resolver-typescript": "4.4.4", "eslint-plugin-import": "2.32.0", "eslint-plugin-prettier": "5.5.1", "glob": "11.0.3", "node-gyp": "11.2.0", "playwright": "1.53.1", "rollup": "4.44.1", "typescript": "5.8.3", "typescript-eslint": "8.35.0", "utf-8-validate": "6.0.5", "vite": "npm:rolldown-vite@7.0.3", "vite-plugin-inspect": "11.3.0", "vite-plugin-resolve": "2.5.2", "vite-plugin-solid": "2.11.7", "ws": "8.18.3" }, "auto-changelog": { "hideCredit": true, "package": true, "unreleased": true, "output": "changelog.md" } }