Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,10 @@ on:
branches: [ master ]
pull_request:

concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: false

env:
NODE_VERSION: "22.x"

Expand Down
32 changes: 32 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,35 @@
# Fork Information

## Purpose of This Fork

This fork adds back the **adblocker plugin** and implements a new **ytdlp-based downloader plugin** that provides more reliable downloading functionality compared to the previous youtube.js implementation.

### Key Changes
- **Adblocker Plugin**: Restores ad-blocking capabilities using Cliqz adblocker
- **Downloader (ytdlp)**: New implementation using yt-dlp for robust video/audio downloads

Comment on lines +1 to +10
Copy link

Copilot AI Feb 28, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The PR title/description focuses on a unified downloader, but this change introduces fork-specific README content about restoring an adblocker plugin and upstreaming workflow instructions. If this PR is intended for upstream, this README section is likely a mismatch and should be removed or moved to fork-only documentation.

Copilot uses AI. Check for mistakes.
## Keeping Your Feature Branch Updated

**To keep your feature branch updated with upstream changes:**
```bash
git checkout master
git fetch upstream
git merge upstream/master
git push origin master
git checkout feature/adblocker-and-downloader-plugins
git rebase master # Cleanly applies your changes on top of latest master
git push --force-with-lease origin feature/adblocker-and-downloader-plugins
```

**When ready to create a PR to upstream:**
1. Make sure your feature branch is rebased on latest upstream/master (steps above)
2. Push to your fork: `git push origin feature/adblocker-and-downloader-plugins`
3. Go to https://github.com/pear-devs/pear-desktop and create a PR from your fork's branch

Using `rebase` keeps a clean, linear history which is preferred for PRs.

---

<div align="center" markdown="1">
<sup>Special thanks to:</sup>
<br>
Expand Down
4 changes: 3 additions & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -89,6 +89,7 @@
"bgutils-js": "3.2.0",
"butterchurn": "3.0.0-beta.5",
"butterchurn-presets": "3.0.0-beta.4",
"chalk": "^5.6.2",
Copy link

Copilot AI Feb 28, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

chalk is added as a dependency but there are no imports/usages in the codebase changes. If it’s not needed, please remove it to avoid increasing the app bundle and dependency surface area.

Suggested change
"chalk": "^5.6.2",

Copilot uses AI. Check for mistakes.
"chinese-conv": "^4.0.0",
"color": "5.0.3",
"conf": "15.1.0",
Expand Down Expand Up @@ -145,6 +146,7 @@
"@playwright/test": "1.58.2",
"@stylistic/eslint-plugin": "5.7.1",
"@total-typescript/ts-reset": "0.6.1",
"@types/chalk": "^2.2.4",
"@types/electron-localshortcut": "3.1.3",
"@types/howler": "2.2.12",
Comment on lines 148 to 151
Copy link

Copilot AI Feb 28, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@types/chalk is typically for older Chalk versions and can conflict with Chalk v5+, which ships its own types (and is ESM-only). If Chalk is kept, prefer relying on its bundled types and remove @types/chalk to avoid type resolution issues.

Copilot uses AI. Check for mistakes.
"@types/html-to-text": "9.0.4",
Expand Down Expand Up @@ -185,4 +187,4 @@
"unreleased": true,
"output": "changelog.md"
}
}
}
5 changes: 5 additions & 0 deletions src/i18n/resources/ar.json
Original file line number Diff line number Diff line change
Expand Up @@ -548,6 +548,10 @@
"button": "تنزيل"
}
},
"downloader-ytdlp": {
"name": "أداة التنزيل (yt-dlp)",
"description": "يقوم بتنزيل ملفات MP3/مصدر الصوت مباشرة من الواجهة. نسخة من إضافة التنزيل تستخدم yt-dlp.exe. يمكنك تحديد مسار مخصص للملف التنفيذي وضبط سلسلة ملفات تعريف الارتباط (cookies) لتحسين نجاح التنزيلات عبر تضمين ملفات تعريف ارتباط صالحة."
},
"equalizer": {
"description": "يضيف معادل صوتي للمشغل",
"menu": {
Expand Down Expand Up @@ -948,3 +952,4 @@
}
}
}

5 changes: 5 additions & 0 deletions src/i18n/resources/bg.json
Original file line number Diff line number Diff line change
Expand Up @@ -548,6 +548,10 @@
"button": "Изтегляне"
}
},
"downloader-ytdlp": {
"name": "Изтегляч (yt-dlp)",
"description": "Изтегля MP3 / източниково аудио директно от интерфейса. Версия на приставката за изтегляне, която използва yt-dlp.exe. Можете да зададете персонализиран път до изпълнимия файл и низ с бисквитки (cookies), за да повишите успеваемостта на изтеглянията, като добавите валидни бисквитки."
},
"equalizer": {
"description": "Добавя еквалайзер към плеъра",
"menu": {
Expand Down Expand Up @@ -948,3 +952,4 @@
}
}
}

5 changes: 5 additions & 0 deletions src/i18n/resources/bn.json
Original file line number Diff line number Diff line change
Expand Up @@ -527,6 +527,10 @@
"button": "ডাউনলোড"
}
},
"downloader-ytdlp": {
"name": "ডাউনলোডার (yt-dlp)",
"description": "ইন্টারফেস থেকে সরাসরি MP3 / উৎস অডিও ডাউনলোড করে. ডাউনলোডার প্লাগইনের একটি সংস্করণ যা yt-dlp.exe ব্যবহার করে। এক্সিকিউটেবলটির জন্য কাস্টম পাথ এবং বৈধ কুকি অন্তর্ভুক্ত করে ডাউনলোড সফলতার হার বাড়াতে একটি cookies string সেট করা যায়।"
},
"equalizer": {
"description": "প্লেয়ারে একটি ইকুয়ালাইজার যোগ করে",
"menu": {
Expand Down Expand Up @@ -897,3 +901,4 @@
}
}
}

5 changes: 5 additions & 0 deletions src/i18n/resources/ca.json
Original file line number Diff line number Diff line change
Expand Up @@ -565,6 +565,10 @@
"button": "Descarrega"
}
},
"downloader-ytdlp": {
"name": "Descàrregues (yt-dlp)",
"description": "Descarrega el MP3 / àudio d'origen directament des de la interfície. Una versió del connector de descàrrega que utilitza yt-dlp.exe. Pots establir un camí personalitzat per a l'executable i una cadena de cookies per millorar l'èxit de les descàrregues incloent cookies vàlides."
},
"equalizer": {
"description": "Afegeix un equalitzador al reproductor",
"menu": {
Expand Down Expand Up @@ -965,3 +969,4 @@
}
}
}

5 changes: 5 additions & 0 deletions src/i18n/resources/cs.json
Original file line number Diff line number Diff line change
Expand Up @@ -548,6 +548,10 @@
"button": "Stáhnout"
}
},
"downloader-ytdlp": {
"name": "Stahovač (yt-dlp)",
"description": "Stahuje MP3 / source audio přímo z rozhraní. Verze pluginu stahování, která používá yt-dlp.exe. Můžete nastavit vlastní cestu ke spustitelnému souboru a řetězec cookies pro zlepšení úspěšnosti stahování zahrnutím platných cookies."
},
"equalizer": {
"description": "Přidá do přehrávače ekvalizér",
"menu": {
Expand Down Expand Up @@ -948,3 +952,4 @@
}
}
}

5 changes: 5 additions & 0 deletions src/i18n/resources/de.json
Original file line number Diff line number Diff line change
Expand Up @@ -577,6 +577,10 @@
"button": "Herunterladen"
}
},
"downloader-ytdlp": {
"name": "Downloader (yt-dlp)",
"description": "Lädt MP3-/Original-Audio direkt von der Schnittstelle herunter. Eine Version des Downloader-Plugins, die yt-dlp.exe verwendet. Du kannst einen benutzerdefinierten Pfad zur ausführbaren Datei sowie einen Cookies-String festlegen, um erfolgreiche Downloads durch gültige Cookies zu verbessern."
},
"equalizer": {
"description": "Fügt einen Equalizer zum Player hinzu",
"menu": {
Expand Down Expand Up @@ -995,3 +999,4 @@
}
}
}

5 changes: 5 additions & 0 deletions src/i18n/resources/el.json
Original file line number Diff line number Diff line change
Expand Up @@ -527,6 +527,10 @@
"button": "Λήψη"
}
},
"downloader-ytdlp": {
"name": "Κατεβαστής (yt-dlp)",
"description": "Λήψεις MP3 / ήχου πηγής απευθείας από τη διεπαφή. Μια έκδοση του πρόσθετου λήψης που χρησιμοποιεί το yt-dlp.exe. Μπορείς να ορίσεις προσαρμοσμένη διαδρομή για το εκτελέσιμο και μια συμβολοσειρά cookies για να βελτιώσεις την επιτυχία των λήψεων συμπεριλαμβάνοντας έγκυρα cookies."
},
"equalizer": {
"description": "Προσθέτει έναν ισοσταθμιστή στο πρόγραμμα αναπαραγωγής",
"menu": {
Expand Down Expand Up @@ -897,3 +901,4 @@
}
}
}

10 changes: 9 additions & 1 deletion src/i18n/resources/en.json
Original file line number Diff line number Diff line change
Expand Up @@ -567,7 +567,11 @@
},
"download-playlist": "Download playlist",
"presets": "Presets",
"skip-existing": "Skip existing files"
"skip-existing": "Skip existing files",
"yt-dlp-location-nice": "yt-dlp executable location",
"yt-dlp-location-title": "Set yt-dlp path",
"yt-dlp-location-label": "Path to yt-dlp executable",
"yt-dlp-location-saved": "yt-dlp path saved"
},
"name": "Downloader",
"renderer": {
Expand All @@ -577,6 +581,10 @@
"button": "Download"
}
},
"downloader-ytdlp": {
"name": "Downloader (yt-dlp)",
"description": "Downloads MP3 / source audio directly from the interface. A version of the downloader plugin that uses yt-dlp.exe. You can set a custom path for the executable and a cookies string to improve successful downloads by including valid cookies."
},
"equalizer": {
"description": "Adds an equalizer to the player",
"menu": {
Expand Down
5 changes: 5 additions & 0 deletions src/i18n/resources/es.json
Original file line number Diff line number Diff line change
Expand Up @@ -577,6 +577,10 @@
"button": "Descargar"
}
},
"downloader-ytdlp": {
"name": "Gestor de descargas (yt-dlp)",
"description": "Descarga audio MP3 / fuente directamente desde la interfaz. Una versión del complemento de descargas que usa yt-dlp.exe. Puedes establecer una ruta personalizada para el ejecutable y una cadena de cookies para mejorar el éxito de las descargas incluyendo cookies válidas."
},
"equalizer": {
"description": "Añade un ecualizador al reproductor",
"menu": {
Expand Down Expand Up @@ -995,3 +999,4 @@
}
}
}

5 changes: 5 additions & 0 deletions src/i18n/resources/fa.json
Original file line number Diff line number Diff line change
Expand Up @@ -564,6 +564,10 @@
"button": "دانلود"
}
},
"downloader-ytdlp": {
"name": "دانلودر (yt-dlp)",
"description": "دانلود MP3 / صدای منبع به طور مستقیم از رابط. نسخه‌ای از افزونهٔ دانلود که از yt-dlp.exe استفاده می‌کند. می‌توانید مسیر سفارشی برای فایل اجرایی و یک رشتهٔ کوکی‌ها تنظیم کنید تا با افزودن کوکی‌های معتبر، موفقیت دانلودها بیشتر شود."
},
"equalizer": {
"description": "اضافه کردن یک اکولایزر به پخش‌کننده",
"menu": {
Expand Down Expand Up @@ -964,3 +968,4 @@
}
}
}

5 changes: 5 additions & 0 deletions src/i18n/resources/fi.json
Original file line number Diff line number Diff line change
Expand Up @@ -527,6 +527,10 @@
"button": "Lataa"
}
},
"downloader-ytdlp": {
"name": "Lataaja (yt-dlp)",
"description": "Lataa MP3- tai lähdetiedoston suoraan käyttöliittymästä. Latauslisäosan versio, joka käyttää yt-dlp.exe:tä. Voit asettaa suoritettavalle tiedostolle mukautetun polun sekä eväste-merkkijonon parantaaksesi latausten onnistumista lisäämällä kelvolliset evästeet."
},
"equalizer": {
"description": "Lisää taajuuskorjaimen toistimeen",
"menu": {
Expand Down Expand Up @@ -777,3 +781,4 @@
}
}
}

5 changes: 5 additions & 0 deletions src/i18n/resources/fil.json
Original file line number Diff line number Diff line change
Expand Up @@ -536,6 +536,10 @@
"button": "I-download"
}
},
"downloader-ytdlp": {
"name": "Taga-download (yt-dlp)",
"description": "Dina-download ang mga MP3 / source audio direkta mula sa interface. Isang bersyon ng plugin na pang-download na gumagamit ng yt-dlp.exe. Maaari kang magtakda ng custom na path para sa executable at isang cookies string para mas tumaas ang tagumpay ng pag-download sa pamamagitan ng paglalagay ng valid na cookies."
},
"equalizer": {
"description": "Nagdaragdag ng equalizer sa player",
"menu": {
Expand Down Expand Up @@ -910,3 +914,4 @@
}
}
}

5 changes: 5 additions & 0 deletions src/i18n/resources/fr.json
Original file line number Diff line number Diff line change
Expand Up @@ -577,6 +577,10 @@
"button": "Télécharger"
}
},
"downloader-ytdlp": {
"name": "Téléchargeur (yt-dlp)",
"description": "Télécharge les fichiers MP3/source audio directement depuis l'interface. Une version du plugin de téléchargement qui utilise yt-dlp.exe. Vous pouvez définir un chemin personnalisé vers l'exécutable ainsi qu'une chaîne de cookies afin d'améliorer la réussite des téléchargements en incluant des cookies valides."
},
"equalizer": {
"description": "Ajoute un égaliseur au lecteur",
"menu": {
Expand Down Expand Up @@ -995,3 +999,4 @@
}
}
}

5 changes: 5 additions & 0 deletions src/i18n/resources/hi.json
Original file line number Diff line number Diff line change
Expand Up @@ -548,6 +548,10 @@
"button": "डाउनलोड"
}
},
"downloader-ytdlp": {
"name": "डाउनलोडर (yt-dlp)",
"description": "इंटरफ़ेस से सीधे MP3 / स्रोत ऑडियो डाउनलोड करता है. डाउनलोडर प्लगइन का एक संस्करण जो yt-dlp.exe का उपयोग करता है। आप executable के लिए कस्टम पाथ और वैध कुकीज़ शामिल करके डाउनलोड की सफलता बढ़ाने हेतु एक cookies string सेट कर सकते हैं।"
},
"equalizer": {
"description": "प्लेयर में एक एक्विलाइज़र जोड़ता है",
"menu": {
Expand Down Expand Up @@ -826,3 +830,4 @@
}
}
}

5 changes: 5 additions & 0 deletions src/i18n/resources/hr.json
Original file line number Diff line number Diff line change
Expand Up @@ -565,6 +565,10 @@
"button": "Preuzmi"
}
},
"downloader-ytdlp": {
"name": "Preuzimatelj (yt-dlp)",
"description": "Preuzima MP3 / izvorni audiozapis izravno iz sučelja. Verzija dodatka za preuzimanje koja koristi yt-dlp.exe. Možete postaviti prilagođenu putanju do izvršne datoteke i niz kolačića (cookies) kako biste poboljšali uspješnost preuzimanja uključivanjem važećih kolačića."
},
"equalizer": {
"description": "Dodaje equalizer reprodukciji",
"menu": {
Expand Down Expand Up @@ -965,3 +969,4 @@
}
}
}

5 changes: 5 additions & 0 deletions src/i18n/resources/hu.json
Original file line number Diff line number Diff line change
Expand Up @@ -545,6 +545,10 @@
"button": "Letöltés"
}
},
"downloader-ytdlp": {
"name": "Letöltő (yt-dlp)",
"description": "MP3 / forrás hanganyag letöltése közvetlenül az interfészről. A letöltő bővítmény egy változata, amely a yt-dlp.exe-t használja. Beállítható egy egyéni útvonal a futtatható fájlhoz, valamint egy cookie-karakterlánc, amellyel érvényes cookie-k megadásával javítható a letöltések sikeressége."
},
"equalizer": {
"description": "Hangszínszabályzót ad hozzá a zenelejátszóhoz",
"menu": {
Expand Down Expand Up @@ -909,3 +913,4 @@
}
}
}

5 changes: 5 additions & 0 deletions src/i18n/resources/id.json
Original file line number Diff line number Diff line change
Expand Up @@ -548,6 +548,10 @@
"button": "Unduh"
}
},
"downloader-ytdlp": {
"name": "Pengunduh (yt-dlp)",
"description": "Unduh MP3 / sumber suara secara langsung via antarmuka. Versi dari plugin pengunduh yang menggunakan yt-dlp.exe. Anda dapat mengatur jalur khusus untuk executable dan sebuah string cookies untuk meningkatkan keberhasilan unduhan dengan menyertakan cookies yang valid."
},
"equalizer": {
"description": "Menambahkan equalizer ke pemutar",
"menu": {
Expand Down Expand Up @@ -948,3 +952,4 @@
}
}
}

5 changes: 5 additions & 0 deletions src/i18n/resources/is.json
Original file line number Diff line number Diff line change
Expand Up @@ -484,6 +484,10 @@
"button": "Sækja"
}
},
"downloader-ytdlp": {
"name": "Niðurhalari (yt-dlp)",
"description": "Niðurhalar MP3 / upprunahljóði beint úr viðmótinu. Útgáfa af niðurhalsviðbótinni sem notar yt-dlp.exe. Þú getur stillt sérsniðna slóð að keyrsluskránni og cookies-streng til að auka líkur á árangursríkum niðurhölum með því að nota gild cookies."
},
"exponential-volume": {
"description": "Gerir hljóðstyrkssleðann veldisvísis svo það er auðveldara að velja lægra hljóðstyrk.",
"name": "Veldibundiðrúmmál"
Expand Down Expand Up @@ -811,3 +815,4 @@
}
}
}

5 changes: 5 additions & 0 deletions src/i18n/resources/it.json
Original file line number Diff line number Diff line change
Expand Up @@ -577,6 +577,10 @@
"button": "Scarica"
}
},
"downloader-ytdlp": {
"name": "Downloader (yt-dlp)",
"description": "Download MP3 / sorgenti audio direttamente dall'interfaccia. Una versione del plugin di download che usa yt-dlp.exe. Puoi impostare un percorso personalizzato per l'eseguibile e una stringa di cookie per aumentare il successo dei download includendo cookie validi."
},
"equalizer": {
"description": "Aggiunge un equalizzatore al player",
"menu": {
Expand Down Expand Up @@ -977,3 +981,4 @@
}
}
}

5 changes: 5 additions & 0 deletions src/i18n/resources/ja.json
Original file line number Diff line number Diff line change
Expand Up @@ -548,6 +548,10 @@
"button": "ダウンロード"
}
},
"downloader-ytdlp": {
"name": "ダウンローダー (yt-dlp)",
"description": "UIから直にMP3・ソースオーディオをダウンロードします. yt-dlp.exe を使用するダウンローダープラグインの別版です。実行ファイルのカスタムパスや、有効な Cookie を含めてダウンロード成功率を高めるための Cookie 文字列を設定できます。"
},
"equalizer": {
"description": "イコライザーを追加",
"menu": {
Expand Down Expand Up @@ -948,3 +952,4 @@
}
}
}

Loading
Loading