diff --git a/.env.example b/.env.example index 3f066830..6db0313b 100644 --- a/.env.example +++ b/.env.example @@ -1,9 +1,12 @@ -# Aptabase analytics app key. Leave empty to disable telemetry in dev. -# Format: -- (e.g. A-EU-123456789) -# Obtain a key from https://aptabase.com -APTABASE_KEY=A-EU-XXXXXXXXXX +# Analytics — OpenPanel (https://openpanel.dev) — desktop app +OPENPANEL_CLIENT_ID= +OPENPANEL_CLIENT_SECRET= -# Set to 1 to send analytics during `bun run dev` (events are tagged debug-mode -# by the SDK so they're filterable on the dashboard). Off by default — HMR +# Analytics — OpenPanel — landing site (docs/). Web SDK uses clientId only; +# secret kept here for parity / future server-side use, never embedded in HTML. +LANDING_OPENPANEL_CLIENT_ID= +LANDING_OPENPANEL_CLIENT_SECRET= + +# Set to 1 to send analytics during `bun run dev`. Off by default — HMR # reloads would otherwise spam wizard_started / app_started. -# ARROXY_ANALYTICS_DEBUG=1 \ No newline at end of file +ARROXY_ANALYTICS_DEBUG=1 diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 3e306bc1..33da4a5f 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -49,6 +49,8 @@ jobs: run: bun install --frozen-lockfile - name: Regenerate landing + blog pages + env: + LANDING_OPENPANEL_CLIENT_ID: ${{ secrets.LANDING_OPENPANEL_CLIENT_ID }} run: bun run build:docs - name: Verify docs/ matches landing-src/ diff --git a/.github/workflows/flatpak.yml b/.github/workflows/flatpak.yml index b6aacbe1..d9133856 100644 --- a/.github/workflows/flatpak.yml +++ b/.github/workflows/flatpak.yml @@ -27,6 +27,11 @@ jobs: options: --privileged steps: - uses: actions/checkout@v4 + with: + # render-flatpak-manifest.py reads v* tags to build the metainfo + # block, matching the tagged release workflow. + fetch-depth: 0 + fetch-tags: true - name: Resolve latest release tarball id: resolve env: @@ -90,16 +95,19 @@ jobs: --dir flatpak - name: Render temporary manifest run: | + git config --global --add safe.directory "$GITHUB_WORKSPACE" VERSION="${{ steps.resolve.outputs.version }}" python3 scripts/render-flatpak-manifest.py \ --sha256 "${{ steps.resolve.outputs.sha256 }}" \ --archive-path "Arroxy-${VERSION}.tar.gz" \ --template flatpak/io.github.antonio_orionus.Arroxy.yml.in \ - --output flatpak/io.github.antonio_orionus.Arroxy.yml + --output flatpak/io.github.antonio_orionus.Arroxy.yml \ + --metainfo-template flatpak/io.github.antonio_orionus.Arroxy.metainfo.xml.in \ + --metainfo-output flatpak/io.github.antonio_orionus.Arroxy.metainfo.xml - uses: flatpak/flatpak-github-actions/flatpak-builder@v6 id: build with: bundle: arroxy.flatpak manifest-path: flatpak/io.github.antonio_orionus.Arroxy.yml - cache-key: flatpak-builder-${{ github.sha }} + cache-key: flatpak-builder-${{ hashFiles('flatpak/**') }} verbose: true diff --git a/.github/workflows/installer-smoke.yml b/.github/workflows/installer-smoke.yml index 2bd02b78..035a47df 100644 --- a/.github/workflows/installer-smoke.yml +++ b/.github/workflows/installer-smoke.yml @@ -47,7 +47,8 @@ jobs: - name: Build Windows artifacts shell: bash env: - APTABASE_KEY: ${{ secrets.APTABASE_KEY }} + OPENPANEL_CLIENT_ID: ${{ secrets.OPENPANEL_CLIENT_ID }} + OPENPANEL_CLIENT_SECRET: ${{ secrets.OPENPANEL_CLIENT_SECRET }} run: | if [[ "${{ github.ref }}" == refs/tags/v* ]]; then bun run dist:win diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 6c335ebb..7534f5bb 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -25,15 +25,41 @@ jobs: fi echo "Releasing version $PACKAGE_VERSION" + prepare-release: + # Pre-create a single draft release for this tag before any publisher runs. + # Without this, the parallel mac/linux `build` matrix jobs each call + # electron-publisher-github's getOrCreateRelease(), which lists releases + # by tag and creates a draft when none is found. Both racers see no + # release simultaneously and create one each, plus the Windows Installer + # workflow creates a third — leaving Linux assets stranded in an orphan + # draft and breaking `build-flatpak`'s `gh release download`. + # + # By pre-creating a draft here, electron-publisher reuses it (it returns + # the existing draft on the next list-releases call) and Windows + # Installer's `view || create` shortcut also reuses it. + needs: verify-version + runs-on: ubuntu-latest + permissions: + contents: write + steps: + - name: Ensure single draft release exists for this tag + env: + GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} + run: | + gh release view "$GITHUB_REF_NAME" --repo "$GITHUB_REPOSITORY" >/dev/null 2>&1 \ + || gh release create "$GITHUB_REF_NAME" --repo "$GITHUB_REPOSITORY" \ + --draft --title "$GITHUB_REF_NAME" --notes "" + build: # Windows is built separately by the Windows Installer workflow # (.github/workflows/installer-smoke.yml) so it can be smoke-tested # before publish. mac/linux still build + publish here via dist:release. # - # ffmpeg/ffprobe are downloaded at runtime by BinaryManager (BtbN for - # Win/Linux, evermeet.cx for macOS) — no per-platform npm optional deps - # to patch in here. - needs: verify-version + # ffmpeg/ffprobe are embedded at build time via electron-builder's + # beforeBuild hook (build/beforeBuild.cjs invokes + # scripts/build/fetch-embedded.sh). yt-dlp + deno remain runtime-fetched + # by BinaryManager. + needs: prepare-release strategy: matrix: include: @@ -51,7 +77,8 @@ jobs: - run: bun run ${{ matrix.dist-cmd }} env: GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} - APTABASE_KEY: ${{ secrets.APTABASE_KEY }} + OPENPANEL_CLIENT_ID: ${{ secrets.OPENPANEL_CLIENT_ID }} + OPENPANEL_CLIENT_SECRET: ${{ secrets.OPENPANEL_CLIENT_SECRET }} finalize: needs: build @@ -105,9 +132,21 @@ jobs: env: GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} - name: Publish release - run: gh release edit ${{ github.ref_name }} --draft=false + # Tags w/ a semver pre-release suffix (e.g. v0.4.0-beta.1) un-draft as + # GitHub Pre-release. electron-updater's GitHub provider queries + # /releases/latest, which excludes pre-releases — existing user installs + # do NOT auto-update. Manual install from the release page works for + # internal testing. Stable tags (e.g. v0.4.0) un-draft as full release + # and trigger normal user auto-update. env: GH_TOKEN: ${{ secrets.WINGET_TOKEN }} + REF_NAME: ${{ github.ref_name }} + run: | + EXTRA="" + if [[ "$REF_NAME" == *-* ]]; then + EXTRA="--prerelease" + fi + gh release edit "$REF_NAME" --draft=false $EXTRA build-flatpak: # Build a Flatpak bundle for the GitHub Release only. @@ -124,10 +163,21 @@ jobs: options: --privileged steps: - uses: actions/checkout@v4 + with: + # Need full tag history so render-flatpak-manifest.py can read tagger + # dates of prior v* tags to render the metainfo block. + fetch-depth: 0 + fetch-tags: true - name: Render manifest for this release env: GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} run: | + # The flatpak-builder container runs as a different user than the + # workspace owner; without this, git refuses to read the repo with + # "fatal: detected dubious ownership". actions/checkout sets this + # too, but only into a temporary config that doesn't always survive + # across steps in this container image. + git config --global --add safe.directory "$GITHUB_WORKSPACE" VERSION="${GITHUB_REF_NAME#v}" TARBALL="Arroxy-${VERSION}.tar.gz" gh release download "${GITHUB_REF_NAME}" \ @@ -139,12 +189,17 @@ jobs: --sha256 "$HASH" \ --archive-path "$TARBALL" \ --template flatpak/io.github.antonio_orionus.Arroxy.yml.in \ - --output flatpak/io.github.antonio_orionus.Arroxy.yml + --output flatpak/io.github.antonio_orionus.Arroxy.yml \ + --metainfo-template flatpak/io.github.antonio_orionus.Arroxy.metainfo.xml.in \ + --metainfo-output flatpak/io.github.antonio_orionus.Arroxy.metainfo.xml - uses: flatpak/flatpak-github-actions/flatpak-builder@v6 with: bundle: arroxy.flatpak manifest-path: flatpak/io.github.antonio_orionus.Arroxy.yml - cache-key: flatpak-builder-${{ github.sha }} + # Stable across release tags. Previously keyed on github.sha which + # never hit, adding ~7 min per release. Invalidates only when flatpak + # manifest or electron build inputs change. + cache-key: flatpak-builder-${{ hashFiles('flatpak/**', 'electron-builder.json5', 'package.json') }} upload-flatpak: needs: build-flatpak @@ -173,6 +228,9 @@ jobs: publish-scoop: needs: finalize + # Skip for pre-release tags (e.g. v0.4.0-beta.1) — only stable releases + # bump the public Scoop bucket. + if: ${{ !contains(github.ref_name, '-') }} runs-on: ubuntu-latest steps: - name: Checkout bucket @@ -212,6 +270,8 @@ jobs: publish-homebrew: needs: finalize + # Skip for pre-release tags — only stable releases bump the Homebrew tap. + if: ${{ !contains(github.ref_name, '-') }} runs-on: ubuntu-latest steps: - name: Checkout tap diff --git a/.gitignore b/.gitignore index 01a0ee0c..cfbad462 100644 --- a/.gitignore +++ b/.gitignore @@ -43,6 +43,18 @@ flatpak/builddir/ flatpak/repo/ flatpak/flathub.json flatpak/io.github.antonio_orionus.Arroxy.yml +flatpak/io.github.antonio_orionus.Arroxy.metainfo.xml +flatpak/*.flatpak +flatpak/Arroxy-*.tar.gz .flatpak-builder/ build-dir/ -private \ No newline at end of file +private + +# Smoke harness output (root-only — scripts/test-binaries/ contains +# the harness scripts themselves and must stay tracked) +/test-binaries/ + +# Build-time embedded ffmpeg/ffprobe (scripts/build/fetch-embedded.sh output) +# Use **/ prefix so it matches both /build/embedded/ and any accidental +# copies (e.g. src/build/embedded/ if a tool resolves cwd wrong). +**/build/embedded/ \ No newline at end of file diff --git a/.husky/pre-commit b/.husky/pre-commit index 22e568c2..ea5a55b6 100644 --- a/.husky/pre-commit +++ b/.husky/pre-commit @@ -1 +1 @@ -bunx lint-staged && bun run lint && bun run knip && bun run typecheck +bunx lint-staged diff --git a/.husky/pre-push b/.husky/pre-push deleted file mode 100644 index e3609882..00000000 --- a/.husky/pre-push +++ /dev/null @@ -1 +0,0 @@ -bun run test diff --git a/README.am.md b/README.am.md index 911e7778..f33e8ba8 100644 --- a/README.am.md +++ b/README.am.md @@ -87,7 +87,7 @@ YouTube የቦት ማወቂያ ሲያዘምን፣ አብዛኛዎቹ ሶፍት - **ክሊፕቦርድ ክትትል** — YouTube ሊንክ ቅዱ እና Arroxy ወደ አፕ ሲመለሱ URL ን አውቶሜቲክ ይሙላሉ (በ Advanced settings ውስጥ ያብሩ/ያጥፉ) - **URL ን ራስ ሰር ያጥሩ** — ትራኪንግ ፓራሜትሮችን (`si`፣ `pp`፣ `utm_*`፣ `fbclid`፣ `gclid`) ያስወግዳሉ እና `youtube.com/redirect` ሊንኮችን ያሰናስሉ - **ትሬ ሁነታ** — መስኮቱን መዝጋት ማውረዶቹን በጀርባ ያስቀጥላሉ -- **9 ቋንቋዎች** — የሥርዓት ቋንቋ ራስ ሰር ያውቃሉ፣ ሁልጊዜ መቀየር ይቻላሉ +- **21 ቋንቋዎች** — የሥርዓት ቋንቋ ራስ ሰር ያውቃሉ፣ ሁልጊዜ መቀየር ይቻላሉ ### ንዑስ ርዕሶች እና ድህረ-ሂደት @@ -217,7 +217,7 @@ flatpak run io.github.antonio_orionus.Arroxy ማውረዶቹ ቀጥታ በ [yt-dlp](https://github.com/yt-dlp/yt-dlp) ከ YouTube ወደ መረጡት አቃፊ ይወርዳሉ — ምንም ሦስተኛ ወገን ሰርቨር አይሆንም። የእይታ ታሪክ፣ የማውረድ ታሪክ፣ URLs፣ እና የፋይሎቹ ይዘቶች በመሳሪያዎ ላይ ይቆያሉ። -Arroxy ስም-አልባ፣ ሰብሰቦ ቴሌሜትሪ በ [TelemetryDeck](https://telemetrydeck.com) ይልካሉ — ለኢንዲ ፕሮጀክት ምን ጥቅም ላይ እንዳለ ለማየት ብቻ (ጅምሮች፣ OS፣ አፕ ስሪት፣ ብልሽቶች)። ምንም URLs፣ ምንም ቪዲዮ ርዕሶች፣ ምንም የፋይል ዱካዎች፣ ምንም ሒሳብ መረጃ የለም። በጭፍን የተቀናጀ ማንነቱ ከመላኩ በፊት ይሃሽ ይደረጋል፣ TelemetryDeck ደግሞ IPs ፈጽሞ አያከማቸም — EU ውስጥ የሚሰራ እና ዲዛይን ሆኖ GDPR-ምቹ ነው። ቅንብሮቹ ውስጥ መቃወም ይቻሉ። +Arroxy ስም-አልባ፣ የተጠቃለለ telemetry በ [OpenPanel](https://openpanel.dev) ይልካል — ጅምሮችን፣ OS፣ የአፕ ስሪቶችን እና ብልሽቶችን ለመረዳት ብቻ። URLs፣ የቪዲዮ ርዕሶች፣ የፋይል መንገዶች፣ የመለያ መረጃ፣ fingerprinting ወይም የግል ዳታ የለም። የእያንዳንዱ ጭነት ID የዘፈቀደ ነው እና ከማንነትዎ ጋር አይያያዝም። በSettings ውስጥ opt out ማድረግ ይችላሉ። --- @@ -239,10 +239,10 @@ YouTube የሚሰጣቸው ሁሉ: 4K UHD (2160p)፣ 1440p፣ 1080p፣ 720p፣ 4 ሁለት የጥንካሬ ሽፋኖች: yt-dlp የ YouTube ለውጦቹ ከደረሱ ከጥቂት ሰዓት ውስጥ ያዘምናሉ፣ እናም Arroxy በ~30 ደቂቃ ውስጥ ሊቋርጡ በሚችሉ ኩኪዎች አይመሠረቱም። ይህ ከምን ኮድ ያለው ብሮውዘር ክፍለ ጊዜዎች ላይ ከሚወሰኑ ሶፍትዌሮች ጋር ሲነጻጸር ግልፅ ስርዓት ይሰጣሉ። **Arroxy በምን ቋንቋዎች ይገኛሉ?** -ዘጠኝ: English፣ Español፣ Deutsch፣ Français፣ 日本語፣ 中文፣ Русский፣ Українська፣ हिन्दी። የሥርዓት ቋንቋዎን ራስ ሰር ያወቁ; ሁልጊዜ ከቱልባሩ ይቀይሩ። የቦታ ፋይሎቹ `src/shared/i18n/locales/` ውስጥ ቀጥተኛ TypeScript ዕቃዎች ናቸው — [PRs ይቀበላሉ](../../pulls)። +ሃያ አንድ፣ ከሳጥን ውጭ: English, Español (Spanish), Deutsch (German), Français (French), 日本語 (Japanese), 中文 (Chinese), Русский (Russian), Українська (Ukrainian), हिन्दी (Hindi), Afaan Oromoo, Kiswahili, O'zbekcha (Uzbek), Tiếng Việt (Vietnamese), አማርኛ (Amharic), العربية (Arabic), اردو (Urdu), پښتو (Pashto), বাংলা (Bengali), မြန်မာဘာသာ (Burmese), Ελληνικά (Greek) እና Српски (Serbian)። Arroxy በመጀመሪያ ጊዜ ሲጀምሩ የስርዓተ ምOS ቋንቋዎን ራስ-ሰር ያወቃል፣ ከመሳሪያ አሞሌ የቋንቋ ምርጫ ማንኛውም ጊዜ መቀየር ይችላሉ። ትርጉሞች ከ src/shared/i18n/locales/ ውስጥ ቀላል TypeScript ዕቃዎች ናቸው — ለማዋጮ GitHub ላይ PR ይክፈቱ። **ሌላ ነገር ጫን ያስፈልጋሉ?** -አይ። yt-dlp እና ffmpeg በመጀመሪያ አስጀማሪ ከዕውቅ GitHub ስሪቶቻቸው ራስ ሰር ይወርዳሉ እናም አካባቢያዊ ይቀምጣሉ። +አይ። yt-dlp በመጀመሪያ አስጀማሪ ራስ-ሰር ይወርዳል እና በማሽንዎ ላይ ይቀመጣል፤ ffmpeg እና ffprobe ከአፑ ጋር ይመጣሉ። ከዚያ ተጨማሪ setup አያስፈልግም። **ፕሌይሊስቶች ወይም ሙሉ ቻናሎች ማውረድ ይቻላሉ?** አዎ፣ ለplaylists: የplaylist URL ለጥፍ፣ ከዚያ ሙሉ ዝርዝሩን ወይም አንተ የመረጥካቸውን ቪዲዮዎች ብቻ ወደ ቅደም ተከተል አክል። ሙሉ channel በብዛት ማውረድ ገና አይደገፍም። @@ -280,7 +280,7 @@ YouTube የሚሰጣቸው ሁሉ: 4K UHD (2160p)፣ 1440p፣ 1080p፣ 720p፣ 4 - **React 19** + **TypeScript** — UI - **Tailwind CSS v4** — ቅጥ አሠጣጥ - **Zustand** — የሁኔታ አስተዳደር -- **yt-dlp** + **ffmpeg** — የማውረድ እና ማዋሃጃ ሞተር (በመጀመሪያ አስጀማሪ ከ GitHub ይወርዳሉ፣ ሁልጊዜ ወቅታዊ) +- **yt-dlp** + **ffmpeg** — የማውረድ እና mux ሞተር (yt-dlp በ runtime ይወርዳል፤ ffmpeg/ffprobe በ build time ይካተታሉ) - **Vite** + **electron-vite** — የግንባታ መሣሪያዎች - **Vitest** + **Playwright** — የአሃዳዊ እና ከጫፍ-ወደ-ጫፍ ፈተናዎች @@ -340,7 +340,7 @@ bun run dist # package for current OS bun run dist:win # cross-compile Windows portable exe ``` -> yt-dlp እና ffmpeg አያካተቱም — በመጀመሪያ አስጀማሪ ከዕውቅ GitHub ስሪቶቻቸው ይወርዳሉ እናም በአፕ ዳታ አቃፊዎ ውስጥ ይቀመጣሉ። +> yt-dlp በመጀመሪያ አስጀማሪ ከ GitHub ይወርዳል እና በ app data አቃፊ ይቀመጣል። ffmpeg እና ffprobe ከእያንዳንዱ የArroxy ስሪት ጋር ተካትተው ይመጣሉ። diff --git a/README.ar.md b/README.ar.md index f00a64b3..ce40e893 100644 --- a/README.ar.md +++ b/README.ar.md @@ -87,7 +87,7 @@ Arroxy مبني لغرض واحد: الصق رابطاً، احصل على مل - **مراقبة الحافظة** — انسخ رابط يوتيوب ويملأ Arroxy الحقل تلقائياً عند العودة للتطبيق (قابل للتفعيل في الإعدادات المتقدمة) - **تنظيف الروابط تلقائياً** — يحذف معاملات التتبع (`si`، `pp`، `utm_*`، `fbclid`، `gclid`) ويفك روابط `youtube.com/redirect` - **وضع الشريط** — إغلاق النافذة يبقي التنزيلات تعمل في الخلفية -- **9 لغات** — يكتشف لغة النظام تلقائياً، قابل للتغيير في أي وقت +- **21 لغة** — يكتشف لغة النظام تلقائياً، قابل للتغيير في أي وقت ### الترجمات والمعالجة اللاحقة @@ -217,7 +217,7 @@ flatpak run io.github.antonio_orionus.Arroxy تُجلب التنزيلات مباشرة عبر [yt-dlp](https://github.com/yt-dlp/yt-dlp) من يوتيوب إلى المجلد الذي تختاره — لا شيء يمر عبر خادم طرف ثالث. سجل المشاهدة والتنزيل والروابط ومحتوى الملفات تبقى على جهازك. -يرسل Arroxy بيانات تشخيصية مجهولة ومجمَّعة عبر [TelemetryDeck](https://telemetrydeck.com) — بما يكفي فقط لمشروع مستقل لمعرفة ما إذا كان أحد يستخدمه فعلاً (عمليات التشغيل، OS، إصدار التطبيق، الأعطال). لا URLs، لا عناوين فيديو، لا مسارات ملفات، لا معلومات حساب. يُجزَّأ معرِّف كل تثبيت قبل الإرسال ولا يخزِّن TelemetryDeck عناوين IPs — مستضاف في EU وصديق لـ GDPR بحكم التصميم. يمكنك إيقافه من الإعدادات. +يرسل Arroxy قياسات مجهولة ومجمّعة عبر [OpenPanel](https://openpanel.dev) — بما يكفي فقط لفهم مرات التشغيل وأنظمة التشغيل وإصدارات التطبيق والأعطال. لا URLs، لا عناوين فيديو، لا مسارات ملفات، لا معلومات حساب، لا بصمة رقمية، ولا بيانات شخصية. معرّف كل تثبيت عشوائي وغير مرتبط بهويتك. يمكنك إيقافه من الإعدادات. --- @@ -239,10 +239,10 @@ flatpak run io.github.antonio_orionus.Arroxy طبقتان من الصمود: يتحدث yt-dlp خلال ساعات من تغييرات يوتيوب، ولا يعتمد Arroxy على كوكيز تنتهي صلاحيتها كل ~30 دقيقة. هذا يجعله أكثر استقراراً بشكل ملحوظ من الأدوات التي تعتمد على جلسات المتصفح المُصدَّرة. **ما اللغات المتاحة في Arroxy؟** -تسع لغات: English، Español، Deutsch، Français، 日本語، 中文، Русский، Українська، हिन्दी. يكتشف لغة نظامك تلقائياً؛ يمكن التبديل في أي وقت من شريط الأدوات. ملفات اللغة عبارة عن كائنات TypeScript عادية في `src/shared/i18n/locales/` — [طلبات السحب مرحَّب بها](../../pulls). +إحدى وعشرون لغة، جاهزة للاستخدام: English وEspañol (الإسبانية) وDeutsch (الألمانية) وFrançais (الفرنسية) و日本語 (اليابانية) و中文 (الصينية) وРусский (الروسية) وУкраїнська (الأوكرانية) وहिन्दी (الهندية) وAfaan Oromoo وKiswahili وO'zbekcha (الأوزبكية) وTiếng Việt (الفيتنامية) وአማርኛ (الأمهرية) والعربية واردو (الأردية) وپښتو (البشتونية) وবাংলা (البنغالية) وမြန်မာဘာသာ (البورمية) وΕλληνικά (اليونانية) وСрпски (الصربية). يكتشف Arroxy لغة نظام تشغيلك تلقائياً عند الإطلاق الأول، ويمكنك التبديل في أي وقت من محدد اللغة في شريط الأدوات. تقع ملفات الترجمة كأوبجكتات TypeScript بسيطة في src/shared/i18n/locales/ — افتح طلب سحب على GitHub للمساهمة. **هل أحتاج إلى تثبيت شيء آخر؟** -لا. يُنزَّل yt-dlp وffmpeg تلقائياً عند أول تشغيل من إصداراتهما الرسمية على GitHub ويُخزَّنان محلياً. +لا. يُحمَّل yt-dlp تلقائياً عند الإطلاق الأول ويُخزَّن على جهازك؛ أمّا ffmpeg وffprobe فيأتيان داخل التطبيق. بعد ذلك، لا تحتاج أي إعداد إضافي. **هل يمكنني تنزيل قوائم التشغيل أو القنوات بالكامل؟** نعم، بالنسبة لقوائم التشغيل: الصق رابط قائمة التشغيل ثم ضع القائمة كاملة أو الفيديوهات التي تختارها فقط في قائمة الانتظار. تنزيل القنوات الكاملة دفعة واحدة غير مدعوم بعد. @@ -280,7 +280,7 @@ flatpak run io.github.antonio_orionus.Arroxy - **React 19** + **TypeScript** — واجهة المستخدم - **Tailwind CSS v4** — التنسيق - **Zustand** — إدارة الحالة -- **yt-dlp** + **ffmpeg** — محرك التنزيل والدمج (يُجلب من GitHub عند أول تشغيل، دائماً محدَّث) +- **yt-dlp** + **ffmpeg** — محرك التنزيل والدمج (يُجلب yt-dlp وقت التشغيل؛ ويُضمَّن ffmpeg/ffprobe وقت البناء) - **Vite** + **electron-vite** — أدوات البناء - **Vitest** + **Playwright** — اختبارات الوحدة والشامل @@ -340,7 +340,7 @@ bun run dist # حزمة للنظام الحالي bun run dist:win # تجميع متقاطع لـ Windows Portable exe ``` -> لا يتضمن yt-dlp و ffmpeg في الحزمة — يُجلبان من إصدارات GitHub الرسمية عند أول تشغيل ويُخزَّنان محلياً. +> يُجلب yt-dlp من GitHub عند أول تشغيل ويُخزَّن في مجلد بيانات التطبيق. يأتي ffmpeg وffprobe مضمنين مع كل إصدار من Arroxy. diff --git a/README.bn.md b/README.bn.md index 08a00e4d..22ad2708 100644 --- a/README.bn.md +++ b/README.bn.md @@ -87,7 +87,7 @@ YouTube যখন তার বট ডিটেকশন আপডেট কর - **ক্লিপবোর্ড ওয়াচ** — একটি YouTube লিঙ্ক কপি করুন এবং অ্যাপে ফিরলে Arroxy স্বয়ংক্রিয়ভাবে URL পূরণ করে (অ্যাডভান্সড সেটিংসে টগল করুন) - **অটো-ক্লিন URLs** — ট্র্যাকিং প্যারামিটার (`si`, `pp`, `utm_*`, `fbclid`, `gclid`) সরিয়ে দেয় এবং `youtube.com/redirect` লিঙ্ক খুলে দেয় - **ট্রে মোড** — উইন্ডো বন্ধ করলেও ডাউনলোড ব্যাকগ্রাউন্ডে চলতে থাকে -- **৯টি ভাষা** — সিস্টেম লোকেল স্বয়ংক্রিয়ভাবে শনাক্ত করে, যেকোনো সময় পরিবর্তনযোগ্য +- **২১টি ভাষা** — সিস্টেম লোকেল স্বয়ংক্রিয়ভাবে শনাক্ত করে, যেকোনো সময় পরিবর্তনযোগ্য ### সাবটাইটেল ও পোস্ট-প্রসেসিং @@ -217,7 +217,7 @@ flatpak run io.github.antonio_orionus.Arroxy ডাউনলোডগুলো সরাসরি [yt-dlp](https://github.com/yt-dlp/yt-dlp)-এর মাধ্যমে YouTube থেকে আপনার বেছে নেওয়া ফোল্ডারে আনা হয় — কোনো থার্ড-পার্টি সার্ভারের মধ্য দিয়ে যায় না। দেখার ইতিহাস, ডাউনলোড ইতিহাস, URL ও ফাইলের বিষয়বস্তু আপনার ডিভাইসেই থাকে। -Arroxy [TelemetryDeck](https://telemetrydeck.com)-এর মাধ্যমে বেনামী, সমষ্টিগত টেলিমেট্রি পাঠায় — শুধু একটি ইন্ডি প্রজেক্টের জন্য যথেষ্ট যাতে দেখা যায় কেউ আদৌ ব্যবহার করছে কিনা (চালু, OS, অ্যাপ ভার্সন, ক্র্যাশ)। কোনো URLs নেই, কোনো ভিডিওর শিরোনাম নেই, কোনো ফাইল পাথ নেই, কোনো অ্যাকাউন্টের তথ্য নেই। প্রতি-ইনস্টল ID পাঠানোর আগে হ্যাশ করা হয় এবং TelemetryDeck কখনো IPs সংরক্ষণ করে না — EU-হোস্টেড এবং ডিজাইন অনুযায়ী GDPR-বান্ধব। সেটিংসে অপ্ট-আউট করতে পারবেন। +Arroxy [OpenPanel](https://openpanel.dev)-এর মাধ্যমে বেনামী, সমষ্টিগত টেলিমেট্রি পাঠায় — চালু হওয়া, OS, অ্যাপ সংস্করণ ও ক্র্যাশ বোঝার জন্য যতটা দরকার। কোনো URL, ভিডিও শিরোনাম, ফাইল পাথ, অ্যাকাউন্ট তথ্য, ফিঙ্গারপ্রিন্টিং বা ব্যক্তিগত ডেটা নেই। প্রতি-ইনস্টল ID এলোমেলো এবং আপনার পরিচয়ের সাথে যুক্ত নয়। সেটিংসে অপ্ট আউট করতে পারবেন। --- @@ -239,10 +239,10 @@ YouTube যা দেয় সব কিছু: 4K UHD (2160p), 1440p, 1080p, 7 দুটি স্তরের স্থিতিস্থাপকতা: yt-dlp YouTube-এর পরিবর্তনের কয়েক ঘণ্টার মধ্যে আপডেট হয়, এবং Arroxy এমন কুকিজের উপর নির্ভর করে না যা প্রতি ~৩০ মিনিটে মেয়াদোত্তীর্ণ হয়। এটি এটিকে এক্সপোর্ট করা ব্রাউজার সেশনের উপর নির্ভরশীল টুলগুলোর চেয়ে উল্লেখযোগ্যভাবে বেশি স্থিতিশীল করে তোলে। **Arroxy কোন ভাষায় পাওয়া যায়?** -নয়টি: English, Español, Deutsch, Français, 日本語, 中文, Русский, Українська, हिन्दी। সিস্টেম ভাষা স্বয়ংক্রিয়ভাবে শনাক্ত করে; টুলবার থেকে যেকোনো সময় পরিবর্তন করুন। লোকেল ফাইলগুলো `src/shared/i18n/locales/`-এ সাদামাটা TypeScript অবজেক্ট — [PR স্বাগত](../../pulls)। +একুশটি, বাক্সের বাইরে: English, Español (স্পেনিশ), Deutsch (জার্মান), Français (ফরাসি), 日本語 (জাপানি), 中文 (চীনা), Русский (রাশিয়ান), Українська (ইউক্রেনিয়ান), हिन्दी (হিন্দি), Afaan Oromoo, Kiswahili, O'zbekcha (উজবেক), Tiếng Việt (ভিয়েতনামি), አማርኛ (আমহারিক), العربية (আরবি), اردو (উর্দু), پښتو (পশতু), বাংলা, မြန်မာဘာသာ (বার্মিজ), Ελληνικά (গ্রিক), এবং Српски (সার্বিয়ান)। Arroxy প্রথম চালুতে আপনার অপারেটিং সিস্টেমের ভাষা স্বয়ংক্রিয়ভাবে শনাক্ত করে এবং আপনি টুলবারের ভাষা পিকার থেকে যেকোনো সময় পরিবর্তন করতে পারেন। অনুবাদগুলো src/shared/i18n/locales/-এ সাধারণ TypeScript অবজেক্ট হিসেবে আছে — অবদান রাখতে GitHub-এ একটি PR খুলুন। **আমাকে কি আর কিছু ইনস্টল করতে হবে?** -না। yt-dlp ও ffmpeg প্রথম চালুতে তাদের অফিসিয়াল GitHub রিলিজ থেকে স্বয়ংক্রিয়ভাবে ডাউনলোড হয়ে লোকালে ক্যাশ হয়। +না। yt-dlp প্রথম চালুতে স্বয়ংক্রিয়ভাবে ডাউনলোড হয়ে আপনার মেশিনে ক্যাশ হয়; ffmpeg ও ffprobe অ্যাপের সাথেই আসে। এরপর কোনো অতিরিক্ত সেটআপ দরকার নেই। **আমি কি প্লেলিস্ট বা পুরো চ্যানেল ডাউনলোড করতে পারব?** হ্যাঁ, playlist-এর জন্য: playlist URL পেস্ট করুন, তারপর পুরো তালিকা বা শুধু আপনার বেছে নেওয়া ভিডিওগুলো queue করুন। পুরো channel batch download এখনও সাপোর্টেড নয়। @@ -280,7 +280,7 @@ YouTube যা দেয় সব কিছু: 4K UHD (2160p), 1440p, 1080p, 7 - **React 19** + **TypeScript** — UI - **Tailwind CSS v4** — স্টাইলিং - **Zustand** — স্টেট ম্যানেজমেন্ট -- **yt-dlp** + **ffmpeg** — ডাউনলোড ও মাক্স ইঞ্জিন (প্রথম চালুতে GitHub থেকে আনা হয়, সবসময় আপ-টু-ডেট) +- **yt-dlp** + **ffmpeg** — ডাউনলোড ও মাক্স ইঞ্জিন (yt-dlp রানটাইমে আনা হয়; ffmpeg/ffprobe বিল্ড টাইমে বান্ডেল থাকে) - **Vite** + **electron-vite** — বিল্ড টুলিং - **Vitest** + **Playwright** — ইউনিট ও এন্ড-টু-এন্ড টেস্ট @@ -340,7 +340,7 @@ bun run dist # বর্তমান OS-এর জন্য প্যা bun run dist:win # ক্রস-কম্পাইল Windows পোর্টেবল exe ``` -> yt-dlp ও ffmpeg বান্ডেল করা নেই — প্রথম চালুতে এগুলো GitHub থেকে আনা হয় এবং আপনার অ্যাপ ডেটা ফোল্ডারে ক্যাশ করা হয়। +> yt-dlp প্রথম চালুতে GitHub থেকে আনা হয় এবং আপনার অ্যাপ ডেটা ফোল্ডারে ক্যাশ হয়। ffmpeg ও ffprobe প্রতিটি Arroxy রিলিজের সাথেই বান্ডেল থাকে। diff --git a/README.de.md b/README.de.md index d09ebe7b..55c85c7b 100644 --- a/README.de.md +++ b/README.de.md @@ -89,7 +89,7 @@ Wenn YouTube seine Bot-Erkennung aktualisiert, sagen die meisten Tools, du solls - **Zwischenablage-Überwachung** — kopiere einen YouTube-Link und Arroxy füllt die URL automatisch aus, wenn du die App wieder fokussierst (in den erweiterten Einstellungen umschaltbar) - **URLs automatisch bereinigen** — entfernt Tracking-Parameter (`si`, `pp`, `utm_*`, `fbclid`, `gclid`) und löst `youtube.com/redirect`-Links auf - **Tray-Modus** — das Schließen des Fensters lässt Downloads im Hintergrund weiterlaufen -- **9 Sprachen** — erkennt automatisch die Systemsprache, jederzeit umschaltbar +- **21 Sprachen** — erkennt automatisch die Systemsprache, jederzeit umschaltbar ### Untertitel & Nachbearbeitung @@ -219,7 +219,7 @@ flatpak run io.github.antonio_orionus.Arroxy Downloads werden direkt über [yt-dlp](https://github.com/yt-dlp/yt-dlp) von YouTube in den von dir gewählten Ordner geholt — nichts wird über einen Drittanbieter-Server geleitet. Verlauf, Download-Historie, URLs und Dateiinhalte bleiben auf deinem Gerät. -Arroxy sendet anonyme, aggregierte Telemetrie über [TelemetryDeck](https://telemetrydeck.com) — gerade genug, damit ein Indie-Projekt sehen kann, ob es überhaupt genutzt wird (Starts, OS, App-Version, Abstürze). Keine URLs, keine Video-Titel, keine Dateipfade, keine Kontodaten. Die pro-Installation-ID wird vor dem Senden gehasht und TelemetryDeck speichert keine IPs — EU-gehostet und GDPR-freundlich by Design. Du kannst das in den Einstellungen deaktivieren. +Arroxy sendet anonyme, aggregierte Telemetrie über [OpenPanel](https://openpanel.dev) — gerade genug, um Starts, OS, App-Versionen und Abstürze zu verstehen. Keine URLs, Video-Titel, Dateipfade, Kontodaten, Fingerprinting oder personenbezogenen Daten. Die ID pro Installation ist zufällig und nicht mit deiner Identität verknüpft. Du kannst das in den Einstellungen deaktivieren. --- @@ -241,10 +241,10 @@ Nein. Arroxy verwendet nur die öffentlichen Tokens, die YouTube an jeden Browse Zwei Resilienzschichten: yt-dlp wird innerhalb von Stunden nach YouTube-Änderungen aktualisiert, und Arroxy verlässt sich nicht auf Cookies, die alle ~30 Minuten ablaufen. Das macht es deutlich stabiler als Tools, die auf exportierte Browser-Sessions angewiesen sind. **In welchen Sprachen ist Arroxy verfügbar?** -Neun: English, Español, Deutsch, Français, 日本語, 中文, Русский, Українська, हिन्दी. Erkennt automatisch deine Systemsprache; jederzeit über die Symbolleiste umschaltbar. Sprachdateien sind einfache TypeScript-Objekte in `src/shared/i18n/locales/` — [PRs willkommen](../../pulls). +Einundzwanzig, direkt out of the box: English, Español (Spanisch), Deutsch, Français (Französisch), 日本語 (Japanisch), 中文 (Chinesisch), Русский (Russisch), Українська (Ukrainisch), हिन्दी (Hindi), Afaan Oromoo, Kiswahili, O'zbekcha (Usbekisch), Tiếng Việt (Vietnamesisch), አማርኛ (Amharisch), العربية (Arabisch), اردو (Urdu), پښتو (Paschto), বাংলা (Bengalisch), မြန်မာဘာသာ (Birmanisch), Ελληνικά (Griechisch) und Српски (Serbisch). Arroxy erkennt deine Betriebssystem-Sprache beim ersten Start und du kannst jederzeit über die Sprachauswahl in der Symbolleiste wechseln. Übersetzungen liegen als einfache TypeScript-Objekte in src/shared/i18n/locales/ — öffne einen PR auf GitHub, um beizutragen. **Muss ich etwas zusätzlich installieren?** -Nein. yt-dlp und ffmpeg werden beim ersten Start automatisch von ihren offiziellen GitHub-Releases heruntergeladen und lokal gecacht. +Nein. yt-dlp wird beim ersten Start automatisch heruntergeladen und auf deinem Rechner gecacht; ffmpeg und ffprobe werden mit der App geliefert. Danach ist keine weitere Einrichtung nötig. **Kann ich Playlists oder ganze Kanäle herunterladen?** Ja, für Playlists: Füge eine Playlist-URL ein und stelle dann entweder die ganze Liste oder nur die Videos in die Warteschlange, die du auswählst. Ganze Kanäle im Batch werden noch nicht unterstützt. @@ -282,7 +282,7 @@ Eine Funktion im Sinn? [Anfrage öffnen](../../issues) — Community-Input besti - **React 19** + **TypeScript** — UI - **Tailwind CSS v4** — Styling - **Zustand** — State Management -- **yt-dlp** + **ffmpeg** — Download- und Mux-Engine (beim ersten Start von GitHub geholt, immer aktuell) +- **yt-dlp** + **ffmpeg** — Download- und Mux-Engine (yt-dlp wird zur Laufzeit geholt; ffmpeg/ffprobe sind beim Build gebündelt) - **Vite** + **electron-vite** — Build-Tooling - **Vitest** + **Playwright** — Unit- und End-to-End-Tests @@ -342,7 +342,7 @@ bun run dist # für aktuelles OS paketieren bun run dist:win # Windows Portable exe cross-kompilieren ``` -> yt-dlp und ffmpeg sind nicht gebündelt — sie werden beim ersten Start von den offiziellen GitHub-Releases geholt und im App-Datenordner gecacht. +> yt-dlp wird beim ersten Start von GitHub geholt und im App-Datenordner gecacht. ffmpeg und ffprobe sind in jedem Arroxy-Release enthalten. diff --git a/README.el.md b/README.el.md index e48ab1dd..98b273dd 100644 --- a/README.el.md +++ b/README.el.md @@ -87,7 +87,7 @@ - **Παρακολούθηση πρόχειρου** — αντιγράψτε έναν σύνδεσμο YouTube και το Arroxy συμπληρώνει αυτόματα το URL όταν εστιάζετε ξανά στην εφαρμογή (εναλλαγή στις Σύνθετες ρυθμίσεις) - **Αυτόματη εκκαθάριση URL** — αφαιρεί παραμέτρους παρακολούθησης (`si`, `pp`, `utm_*`, `fbclid`, `gclid`) και ξετυλίγει συνδέσμους `youtube.com/redirect` - **Λειτουργία δίσκου** — το κλείσιμο του παραθύρου διατηρεί τις λήψεις στο παρασκήνιο -- **9 γλώσσες** — αυτόματη ανίχνευση τοπικής ρύθμισης συστήματος, εναλλαγή οποιαδήποτε στιγμή +- **21 γλώσσες** — αυτόματη ανίχνευση τοπικής ρύθμισης συστήματος, εναλλαγή οποιαδήποτε στιγμή ### Υπότιτλοι & μετεπεξεργασία @@ -217,7 +217,7 @@ flatpak run io.github.antonio_orionus.Arroxy Οι λήψεις γίνονται απευθείας μέσω [yt-dlp](https://github.com/yt-dlp/yt-dlp) από το YouTube στον φάκελο που επιλέγετε — τίποτα δεν δρομολογείται μέσω τρίτου διακομιστή. Το ιστορικό παρακολούθησης, το ιστορικό λήψεων, τα URL και τα περιεχόμενα αρχείων παραμένουν στη συσκευή σας. -Το Arroxy στέλνει ανώνυμη, συγκεντρωτική τηλεμετρία μέσω [TelemetryDeck](https://telemetrydeck.com) — αρκετά για ένα indie project να δει αν κάποιος το χρησιμοποιεί πραγματικά (εκκινήσεις, OS, έκδοση εφαρμογής, σφάλματα). Χωρίς URLs, χωρίς τίτλους βίντεο, χωρίς διαδρομές αρχείων, χωρίς πληροφορίες λογαριασμού. Το αναγνωριστικό ανά εγκατάσταση γίνεται hashed πριν αποσταλεί και το TelemetryDeck δεν αποθηκεύει ποτέ IPs — φιλοξενείται στην EU και φιλικό προς το GDPR εκ σχεδιασμού. Μπορείτε να το απενεργοποιήσετε στις Ρυθμίσεις. +Το Arroxy στέλνει ανώνυμη, συγκεντρωτική τηλεμετρία μέσω [OpenPanel](https://openpanel.dev) — μόνο ό,τι χρειάζεται για εκκινήσεις, OS, εκδόσεις εφαρμογής και σφάλματα. Χωρίς URLs, τίτλους βίντεο, διαδρομές αρχείων, στοιχεία λογαριασμού, fingerprinting ή προσωπικά δεδομένα. Το αναγνωριστικό ανά εγκατάσταση είναι τυχαίο και δεν συνδέεται με την ταυτότητά σας. Μπορείτε να το απενεργοποιήσετε στις Ρυθμίσεις. --- @@ -239,10 +239,10 @@ flatpak run io.github.antonio_orionus.Arroxy Δύο επίπεδα ανθεκτικότητας: το yt-dlp ενημερώνεται εντός ωρών από αλλαγές του YouTube, και το Arroxy δεν βασίζεται σε cookies που λήγουν κάθε ~30 λεπτά. Αυτό το κάνει αισθητά πιο σταθερό από εργαλεία που εξαρτώνται από εξαγόμενες συνεδρίες προγράμματος περιήγησης. **Σε ποιες γλώσσες είναι διαθέσιμο το Arroxy;** -Εννέα: Αγγλικά, Español, Deutsch, Français, 日本語, 中文, Русский, Українська, हिन्दी. Αυτόματη ανίχνευση γλώσσας συστήματος· εναλλαγή οποιαδήποτε στιγμή από τη γραμμή εργαλείων. Τα αρχεία locale είναι απλά αντικείμενα TypeScript στο `src/shared/i18n/locales/` — [Καλωσορίζονται PRs](../../pulls). +Είκοσι μία, εκτός συσκευής: English, Español (ισπανικά), Deutsch (γερμανικά), Français (γαλλικά), 日本語 (ιαπωνικά), 中文 (κινέζικα), Русский (ρωσικά), Українська (ουκρανικά), हिन्दी (χίντι), Afaan Oromoo (ορόμο), Kiswahili (σουαχίλι), O'zbekcha (ουζμπεκικά), Tiếng Việt (βιετναμέζικα), አማርኛ (αμχαρικά), العربية (αραβικά), اردو (ούρντου), پښتو (παστό), বাংলা (βεγγαλικά), မြန်မာဘာသာ (βιρμανικά), Ελληνικά και Српски (σερβικά). Το Arroxy εντοπίζει αυτόματα τη γλώσσα του λειτουργικού σας συστήματος κατά την πρώτη εκκίνηση και μπορείτε να αλλάξετε ανά πάσα στιγμή από τον επιλογέα γλώσσας στη γραμμή εργαλείων. Οι μεταφράσεις βρίσκονται ως απλά TypeScript αντικείμενα στο src/shared/i18n/locales/ — ανοίξτε PR στο GitHub για να συνεισφέρετε. **Χρειάζεται να εγκαταστήσω κάτι άλλο;** -Όχι. Το yt-dlp και το ffmpeg κατεβαίνουν αυτόματα κατά την πρώτη εκκίνηση από τις επίσημες εκδόσεις GitHub τους και αποθηκεύονται τοπικά. +Όχι. Το yt-dlp κατεβαίνει αυτόματα στην πρώτη εκκίνηση και αποθηκεύεται στον υπολογιστή σας· το ffmpeg και το ffprobe περιλαμβάνονται στην εφαρμογή. Μετά από αυτό δεν απαιτείται καμία επιπλέον ρύθμιση. **Μπορώ να κατεβάσω λίστες αναπαραγωγής ή ολόκληρα κανάλια;** Ναι, για playlists: επικόλλησε το URL μιας playlist και μετά βάλε στην ουρά ολόκληρη τη λίστα ή μόνο τα βίντεο που επιλέγεις. Η μαζική λήψη ολόκληρων καναλιών δεν υποστηρίζεται ακόμη. @@ -280,7 +280,7 @@ flatpak run io.github.antonio_orionus.Arroxy - **React 19** + **TypeScript** — UI - **Tailwind CSS v4** — styling - **Zustand** — διαχείριση κατάστασης -- **yt-dlp** + **ffmpeg** — μηχανή λήψης και mux (λαμβάνεται από το GitHub κατά την πρώτη εκκίνηση, πάντα ενημερωμένο) +- **yt-dlp** + **ffmpeg** — μηχανή λήψης και mux (το yt-dlp λαμβάνεται στο runtime· τα ffmpeg/ffprobe περιλαμβάνονται στο build) - **Vite** + **electron-vite** — build tooling - **Vitest** + **Playwright** — unit και end-to-end tests @@ -340,7 +340,7 @@ bun run dist # package for current OS bun run dist:win # cross-compile Windows portable exe ``` -> Το yt-dlp και το ffmpeg δεν περιλαμβάνονται στο πακέτο — λαμβάνονται από το GitHub κατά την πρώτη εκκίνηση και αποθηκεύονται στον φάκελο δεδομένων της εφαρμογής. +> Το yt-dlp λαμβάνεται από το GitHub στην πρώτη εκκίνηση και αποθηκεύεται στον φάκελο δεδομένων της εφαρμογής. Τα ffmpeg και ffprobe περιλαμβάνονται σε κάθε έκδοση του Arroxy. diff --git a/README.es.md b/README.es.md index 13d2b6d5..2cdf34df 100644 --- a/README.es.md +++ b/README.es.md @@ -89,7 +89,7 @@ Cuando YouTube actualiza su detección de bots, la mayoría de las herramientas - **Monitoreo del portapapeles** — copia un enlace de YouTube y Arroxy rellena automáticamente la URL al volver a enfocar la app (actívalo en la Configuración avanzada) - **Limpieza automática de URLs** — elimina parámetros de seguimiento (`si`, `pp`, `utm_*`, `fbclid`, `gclid`) y desempaqueta los enlaces `youtube.com/redirect` - **Modo bandeja** — cerrar la ventana mantiene las descargas en segundo plano -- **9 idiomas** — detecta automáticamente el idioma del sistema, se puede cambiar en cualquier momento +- **21 idiomas** — detecta automáticamente el idioma del sistema, se puede cambiar en cualquier momento ### Subtítulos y posprocesamiento @@ -219,7 +219,7 @@ flatpak run io.github.antonio_orionus.Arroxy Las descargas se obtienen directamente a través de [yt-dlp](https://github.com/yt-dlp/yt-dlp) desde YouTube hacia la carpeta que elijas — nada pasa por un servidor de terceros. El historial de visualización, el historial de descargas, las URLs y el contenido de los archivos permanecen en tu dispositivo. -Arroxy envía telemetría anónima y agregada a través de [TelemetryDeck](https://telemetrydeck.com) — lo justo para que un proyecto independiente vea si alguien lo usa realmente (arranques, OS, versión de la app, fallos). Sin URLs, sin títulos de video, sin rutas de archivo, sin información de cuenta. El ID por instalación se hashea antes del envío y TelemetryDeck nunca almacena IPs — alojado en la EU y compatible con GDPR por diseño. Puedes desactivarlo en Configuración. +Arroxy envía telemetría anónima y agregada a través de [OpenPanel](https://openpanel.dev) — lo justo para entender arranques, OS, versiones de la app y fallos. Sin URLs, títulos de video, rutas de archivo, datos de cuenta, fingerprinting ni datos personales. El ID por instalación es aleatorio y no está ligado a tu identidad. Puedes desactivarlo en Configuración. --- @@ -241,10 +241,10 @@ No. Arroxy usa solo los tokens públicos que YouTube sirve a cualquier navegador Dos capas de resiliencia: yt-dlp se actualiza en horas tras los cambios de YouTube, y Arroxy no depende de cookies que caducan cada ~30 minutos. Eso lo hace notablemente más estable que las herramientas que dependen de sesiones de navegador exportadas. **¿En qué idiomas está disponible Arroxy?** -Nueve: English, Español, Deutsch, Français, 日本語, 中文, Русский, Українська, हिन्दी. Detecta automáticamente el idioma del sistema; cámbialo en cualquier momento desde la barra de herramientas. Los archivos de idioma son objetos TypeScript planos en `src/shared/i18n/locales/` — [las PRs son bienvenidas](../../pulls). +Veintiuno, listos para usar: English, Español, Deutsch (alemán), Français (francés), 日本語 (japonés), 中文 (chino), Русский (ruso), Українська (ucraniano), हिन्दी (hindi), Afaan Oromoo, Kiswahili, O'zbekcha (uzbeko), Tiếng Việt (vietnamita), አማርኛ (amhárico), العربية (árabe), اردو (urdu), پښتو (pastún), বাংলা (bengalí), မြန်မာဘာသာ (birmano), Ελληνικά (griego) y Српски (serbio). Arroxy detecta el idioma de tu sistema operativo en el primer arranque y puedes cambiarlo en cualquier momento desde el selector de idioma en la barra de herramientas. Las traducciones viven como objetos TypeScript planos en src/shared/i18n/locales/ — abre un PR en GitHub para contribuir. **¿Necesito instalar algo más?** -No. yt-dlp y ffmpeg se descargan automáticamente en el primer arranque desde sus releases oficiales en GitHub y se guardan en caché localmente. +No. yt-dlp se descarga automáticamente en el primer arranque y se guarda en caché en tu máquina; ffmpeg y ffprobe vienen incluidos con la app. Después de eso, no se necesita configuración adicional. **¿Puedo descargar listas de reproducción o canales completos?** Sí, para playlists: pega la URL de una playlist y luego pon en cola toda la lista o solo los videos que selecciones. Las descargas por lotes de canales completos todavía no están disponibles. @@ -282,7 +282,7 @@ Próximamente — aproximadamente por orden de prioridad: - **React 19** + **TypeScript** — interfaz de usuario - **Tailwind CSS v4** — estilos - **Zustand** — gestión de estado -- **yt-dlp** + **ffmpeg** — motor de descarga y muxing (obtenidos de GitHub en el primer arranque, siempre actualizados) +- **yt-dlp** + **ffmpeg** — motor de descarga y muxing (yt-dlp se obtiene en runtime; ffmpeg/ffprobe se incluyen al compilar) - **Vite** + **electron-vite** — herramientas de compilación - **Vitest** + **Playwright** — pruebas unitarias y de extremo a extremo @@ -342,7 +342,7 @@ bun run dist # package for current OS bun run dist:win # cross-compile Windows portable exe ``` -> yt-dlp y ffmpeg no están incluidos — se descargan de GitHub en el primer arranque y se guardan en caché en tu carpeta de datos de la aplicación. +> yt-dlp se obtiene desde GitHub en el primer arranque y se guarda en la carpeta de datos de la app. ffmpeg y ffprobe vienen incluidos en cada release de Arroxy. diff --git a/README.fr.md b/README.fr.md index 0bab7441..6184c017 100644 --- a/README.fr.md +++ b/README.fr.md @@ -89,7 +89,7 @@ Lorsque YouTube met à jour sa détection de bots, la plupart des outils te dema - **Surveillance du presse-papiers** — copie un lien YouTube et Arroxy remplit automatiquement l'URL quand tu reviens sur l'app (désactivable dans les Paramètres avancés) - **Nettoyage auto des URLs** — supprime les paramètres de tracking (`si`, `pp`, `utm_*`, `fbclid`, `gclid`) et dénoue les liens `youtube.com/redirect` - **Mode tray** — fermer la fenêtre garde les téléchargements en cours en arrière-plan -- **9 langues** — détecte automatiquement la langue du système, modifiable à tout moment +- **21 langues** — détecte automatiquement la langue du système, modifiable à tout moment ### Sous-titres & post-traitement @@ -219,7 +219,7 @@ flatpak run io.github.antonio_orionus.Arroxy Les téléchargements sont récupérés directement via [yt-dlp](https://github.com/yt-dlp/yt-dlp) depuis YouTube vers le dossier que tu choisis — rien ne passe par un serveur tiers. L'historique de visionnage, l'historique de téléchargement, les URLs et le contenu des fichiers restent sur ton appareil. -Arroxy envoie une télémétrie anonyme et agrégée via [TelemetryDeck](https://telemetrydeck.com) — juste assez pour qu'un projet indépendant sache si quelqu'un l'utilise vraiment (lancements, OS, version de l'app, crashs). Pas d'URLs, pas de titres de vidéos, pas de chemins de fichiers, pas d'informations de compte. L'identifiant par installation est haché avant l'envoi et TelemetryDeck ne stocke jamais les IPs — hébergé dans l'EU et GDPR-friendly par conception. Tu peux te désabonner dans les Paramètres. +Arroxy envoie une télémétrie anonyme et agrégée via [OpenPanel](https://openpanel.dev) — juste assez pour comprendre les lancements, OS, versions de l’app et crashs. Pas d’URLs, de titres de vidéos, de chemins de fichiers, d’infos de compte, de fingerprinting ni de données personnelles. L’identifiant par installation est aléatoire et non lié à ton identité. Tu peux te désabonner dans les Paramètres. --- @@ -241,10 +241,10 @@ Non. Arroxy utilise uniquement les tokens publics que YouTube sert à n'importe Deux couches de résilience : yt-dlp est mis à jour dans les heures qui suivent les changements YouTube, et Arroxy ne dépend pas de cookies qui expirent toutes les ~30 minutes. Cela le rend notablement plus stable que les outils qui dépendent de sessions de navigateur exportées. **Dans quelles langues Arroxy est-il disponible ?** -Neuf : English, Español, Deutsch, Français, 日本語, 中文, Русский, Українська, हिन्दी. Détecte automatiquement la langue de ton système ; modifiable à tout moment depuis la barre d'outils. Les fichiers de langue sont de simples objets TypeScript dans `src/shared/i18n/locales/` — [les PRs sont les bienvenues](../../pulls). +Vingt-et-une, prêtes à l'emploi : English, Español (espagnol), Deutsch (allemand), Français, 日本語 (japonais), 中文 (chinois), Русский (russe), Українська (ukrainien), हिन्दी (hindi), Afaan Oromoo, Kiswahili, O'zbekcha (ouzbek), Tiếng Việt (vietnamien), አማርኛ (amharique), العربية (arabe), اردو (ourdou), پښتو (pachto), বাংলা (bengali), မြန်မာဘာသာ (birman), Ελληνικά (grec) et Српски (serbe). Arroxy détecte la langue de ton système d'exploitation au premier lancement et tu peux changer à tout moment depuis le sélecteur de langue dans la barre d'outils. Les traductions sont de simples objets TypeScript dans src/shared/i18n/locales/ — ouvre une PR sur GitHub pour contribuer. **Dois-je installer autre chose ?** -Non. yt-dlp et ffmpeg sont téléchargés automatiquement au premier lancement depuis leurs releases officielles GitHub et mis en cache en local. +Non. yt-dlp est téléchargé automatiquement au premier lancement et mis en cache sur ta machine ; ffmpeg et ffprobe sont inclus dans l’app. Après ça, aucune configuration supplémentaire. **Puis-je télécharger des playlists ou des chaînes entières ?** Oui, pour les playlists : colle l'URL d'une playlist puis mets en file toute la liste ou seulement les vidéos que tu sélectionnes. Les téléchargements par lot de chaînes entières ne sont pas encore pris en charge. @@ -282,7 +282,7 @@ Tu as une fonctionnalité en tête ? [Ouvre une demande](../../issues) — les r - **React 19** + **TypeScript** — UI - **Tailwind CSS v4** — styles - **Zustand** — gestion d'état -- **yt-dlp** + **ffmpeg** — moteur de téléchargement et de muxage (récupérés depuis GitHub au premier lancement, toujours à jour) +- **yt-dlp** + **ffmpeg** — moteur de téléchargement et de muxage (yt-dlp est récupéré à l’exécution ; ffmpeg/ffprobe sont inclus au build) - **Vite** + **electron-vite** — outillage de build - **Vitest** + **Playwright** — tests unitaires et end-to-end @@ -342,7 +342,7 @@ bun run dist # paquet pour l'OS actuel bun run dist:win # compilation croisée exe portable Windows ``` -> yt-dlp et ffmpeg ne sont pas inclus dans le paquet — ils sont récupérés depuis GitHub au premier lancement et mis en cache dans ton dossier de données d'application. +> yt-dlp est récupéré depuis GitHub au premier lancement et mis en cache dans le dossier de données de l’app. ffmpeg et ffprobe sont inclus dans chaque release d’Arroxy. diff --git a/README.hi.md b/README.hi.md index a04935e7..d8a9ff8b 100644 --- a/README.hi.md +++ b/README.hi.md @@ -89,7 +89,7 @@ Arroxy एक काम के लिए बना है: URL पेस्ट - **क्लिपबोर्ड वॉच** — YouTube लिंक कॉपी करें और ऐप पर वापस आते ही Arroxy URL अपने आप भर देता है (एडवांस्ड सेटिंग्स में टॉगल करें) - **ऑटो-क्लीन URLs** — ट्रैकिंग पैरामीटर (`si`, `pp`, `utm_*`, `fbclid`, `gclid`) हटाता है और `youtube.com/redirect` लिंक खोलता है - **ट्रे मोड** — विंडो बंद करने पर डाउनलोड बैकग्राउंड में चलते रहते हैं -- **9 भाषाएँ** — सिस्टम लोकेल अपने आप पहचानता है, कभी भी बदला जा सकता है +- **21 भाषाएँ** — सिस्टम लोकेल अपने आप पहचानता है, कभी भी बदला जा सकता है ### सबटाइटल और पोस्ट-प्रोसेसिंग @@ -219,7 +219,7 @@ flatpak run io.github.antonio_orionus.Arroxy डाउनलोड सीधे [yt-dlp](https://github.com/yt-dlp/yt-dlp) के ज़रिए YouTube से आपके चुने हुए फ़ोल्डर में फ़ेच होते हैं — किसी थर्ड-पार्टी सर्वर से नहीं गुज़रते। देखने की हिस्ट्री, डाउनलोड हिस्ट्री, URLs और फ़ाइल कंटेंट आपके डिवाइस पर रहते हैं। -Arroxy [TelemetryDeck](https://telemetrydeck.com) के ज़रिए अनाम, एग्रीगेट टेलीमेट्री भेजता है — बस इतना कि एक इंडी प्रोजेक्ट देख सके कि कोई इसे इस्तेमाल कर रहा है या नहीं (लॉन्च, OS, ऐप वर्शन, क्रैश)। कोई URLs नहीं, कोई वीडियो टाइटल नहीं, कोई फ़ाइल पाथ नहीं, कोई अकाउंट जानकारी नहीं। प्रति-इंस्टॉल ID भेजने से पहले हैश की जाती है और TelemetryDeck कभी IPs स्टोर नहीं करता — EU-होस्टेड और डिज़ाइन से GDPR-फ़्रेंडली। Settings में ऑप्ट-आउट कर सकते हैं। +Arroxy [OpenPanel](https://openpanel.dev) के ज़रिए गुमनाम, एग्रीगेट टेलीमेट्री भेजता है — लॉन्च, OS, ऐप वर्शन और क्रैश समझने भर के लिए। कोई URL, वीडियो शीर्षक, फ़ाइल पाथ, अकाउंट जानकारी, फ़िंगरप्रिंटिंग या निजी डेटा नहीं। प्रति-इंस्टॉल ID रैंडम होती है और आपकी पहचान से जुड़ी नहीं होती। Settings में ऑप्ट आउट कर सकते हैं। --- @@ -241,10 +241,10 @@ Arroxy [TelemetryDeck](https://telemetrydeck.com) के ज़रिए अन रिज़िलियेंस की दो परतें हैं: yt-dlp YouTube के बदलावों के घंटों के भीतर अपडेट होता है, और Arroxy उन कुकीज़ पर निर्भर नहीं है जो हर ~30 मिनट में एक्सपायर होती हैं। यह इसे ब्राउज़र सेशन एक्सपोर्ट पर निर्भर टूल्स से काफ़ी ज़्यादा स्थिर बनाता है। **Arroxy किन भाषाओं में उपलब्ध है?** -नौ: English, Español, Deutsch, Français, 日本語, 中文, Русский, Українська, हिन्दी। सिस्टम भाषा अपने आप पहचानता है; टूलबार से कभी भी बदलें। लोकेल फ़ाइलें `src/shared/i18n/locales/` में सादे TypeScript ऑब्जेक्ट्स हैं — [PR का स्वागत है](../../pulls)। +इक्कीस, बॉक्स से बाहर: English, Español (स्पेनिश), Deutsch (जर्मन), Français (फ़्रेंच), 日本語 (जापानी), 中文 (चीनी), Русский (रूसी), Українська (यूक्रेनी), हिन्दी, Afaan Oromoo (ओरोमो), Kiswahili (स्वाहिली), O'zbekcha (उज़्बेक), Tiếng Việt (वियतनामी), አማርኛ (अम्हारिक), العربية (अरबी), اردو (उर्दू), پښتو (पश्तो), বাংলা (बंगाली), မြန်မာဘာသာ (बर्मी), Ελληνικά (यूनानी) और Српски (सर्बियाई)। Arroxy पहले लॉन्च पर आपके ऑपरेटिंग सिस्टम की भाषा अपने आप पहचानता है, और आप टूलबार में भाषा चुनने वाले से कभी भी बदल सकते हैं। लोकेल फ़ाइलें src/shared/i18n/locales/ में सादे TypeScript ऑब्जेक्ट्स हैं — योगदान के लिए GitHub पर एक PR खोलें। **क्या मुझे कुछ और इंस्टॉल करना होगा?** -नहीं। yt-dlp और ffmpeg पहले लॉन्च पर उनके ऑफ़िशियल GitHub releases से अपने आप डाउनलोड होकर लोकल में कैश हो जाते हैं। +नहीं। yt-dlp पहले लॉन्च पर अपने आप डाउनलोड होकर आपकी मशीन पर कैश हो जाता है; ffmpeg और ffprobe ऐप के साथ आते हैं। उसके बाद कोई अतिरिक्त सेटअप ज़रूरी नहीं। **क्या मैं प्लेलिस्ट या पूरे चैनल डाउनलोड कर सकता हूँ?** हाँ, playlists के लिए: playlist URL पेस्ट करें, फिर पूरी सूची या सिर्फ चुने हुए वीडियो queue करें. पूरे channel की batch downloads अभी supported नहीं हैं. @@ -282,7 +282,7 @@ Arroxy [TelemetryDeck](https://telemetrydeck.com) के ज़रिए अन - **React 19** + **TypeScript** — UI - **Tailwind CSS v4** — स्टाइलिंग - **Zustand** — स्टेट मैनेजमेंट -- **yt-dlp** + **ffmpeg** — डाउनलोड और मक्स इंजन (पहले लॉन्च पर GitHub से फ़ेच होते हैं, हमेशा अप-टू-डेट) +- **yt-dlp** + **ffmpeg** — डाउनलोड और मक्स इंजन (yt-dlp रनटाइम पर फ़ेच होता है; ffmpeg/ffprobe बिल्ड समय पर बंडल होते हैं) - **Vite** + **electron-vite** — बिल्ड टूलिंग - **Vitest** + **Playwright** — यूनिट और एंड-टू-एंड टेस्ट @@ -342,7 +342,7 @@ bun run dist # वर्तमान OS के लिए पैकेज bun run dist:win # Windows पोर्टेबल exe क्रॉस-कम्पाइल ``` -> yt-dlp और ffmpeg बंडल नहीं हैं — ये पहले लॉन्च पर GitHub से फ़ेच होकर आपके ऐप डेटा फ़ोल्डर में कैश हो जाते हैं। +> yt-dlp पहले लॉन्च पर GitHub से फ़ेच होकर आपके ऐप डेटा फ़ोल्डर में कैश होता है। ffmpeg और ffprobe हर Arroxy रिलीज़ के साथ बंडल होते हैं। diff --git a/README.ja.md b/README.ja.md index e024bf67..d58f45cc 100644 --- a/README.ja.md +++ b/README.ja.md @@ -89,7 +89,7 @@ YouTube が bot 検出を更新すると、多くのツールはブラウザの - **クリップボード監視** — YouTube リンクをコピーすると、アプリにフォーカスを戻したときに Arroxy が URL を自動入力(詳細設定でトグル切替可能) - **URL 自動クリーンアップ** — トラッキングパラメータ(`si`、`pp`、`utm_*`、`fbclid`、`gclid`)を除去し、`youtube.com/redirect` リンクを展開 - **トレイモード** — ウィンドウを閉じてもダウンロードはバックグラウンドで継続 -- **9 言語対応** — システムロケールを自動検出、いつでも切替可能 +- **21 言語対応** — システムロケールを自動検出、いつでも切替可能 ### 字幕・後処理 @@ -219,7 +219,7 @@ flatpak run io.github.antonio_orionus.Arroxy ダウンロードは [yt-dlp](https://github.com/yt-dlp/yt-dlp) 経由で YouTube から選択したフォルダへ直接取得されます — サードパーティのサーバーは経由しません。視聴履歴、ダウンロード履歴、URL、ファイルの内容はすべてあなたのデバイスに留まります。 -Arroxy は [TelemetryDeck](https://telemetrydeck.com) 経由で匿名・集計されたテレメトリを送信します — インディープロジェクトが実際に使われているかを確認するための最低限の情報(起動数、OS、アプリバージョン、クラッシュ)のみです。URLs、動画タイトル、ファイルパス、アカウント情報は一切収集しません。インストールごとの ID は送信前にハッシュ化され、TelemetryDeck は IPs を保存しません — EU ホスティングで設計上 GDPR 対応済みです。設定からオプトアウトできます。 +Arroxy は [OpenPanel](https://openpanel.dev) 経由で匿名・集計されたテレメトリーを送信します — 起動数、OS、アプリバージョン、クラッシュを把握するための最低限だけです。URL、動画タイトル、ファイルパス、アカウント情報、フィンガープリンティング、個人データはありません。インストールごとの ID はランダムで、あなたの身元には結びつきません。設定からオプトアウトできます。 --- @@ -241,10 +241,10 @@ YouTube が提供するすべて:4K UHD(2160p)、1440p、1080p、720p、48 2 段階の耐性があります:yt-dlp は YouTube の変更から数時間以内に更新され、Arroxy は 30 分ごとに失効する Cookie に依存しません。これにより、ブラウザのセッションエクスポートに依存するツールよりも明らかに安定しています。 **Arroxy は何言語に対応していますか?** -9 言語:English、Español、Deutsch、Français、日本語、中文、Русский、Українська、हिन्दी。システム言語を自動検出し、ツールバーからいつでも切替可能。ロケールファイルは `src/shared/i18n/locales/` の素の TypeScript オブジェクトです — [PR を歓迎します](../../pulls)。 +21 言語に標準対応:English、Español(スペイン語)、Deutsch(ドイツ語)、Français(フランス語)、日本語、中文(中国語)、Русский(ロシア語)、Українська(ウクライナ語)、हिन्दी(ヒンディー語)、Afaan Oromoo、Kiswahili、O'zbekcha(ウズベク語)、Tiếng Việt(ベトナム語)、አማርኛ(アムハラ語)、العربية(アラビア語)、اردو(ウルドゥー語)、پښتو(パシュトー語)、বাংলা(ベンガル語)、မြန်မာဘာသာ(ビルマ語)、Ελληνικά(ギリシャ語)、Српски(セルビア語)。Arroxy は初回起動時に OS の言語を自動検出し、ツールバーの言語選択でいつでも切り替え可能です。翻訳は src/shared/i18n/locales/ 内の素の TypeScript オブジェクトとして管理されているので、GitHub で PR を開いて貢献できます。 **他に何かインストールが必要ですか?** -いいえ。yt-dlp と ffmpeg は初回起動時に公式 GitHub releases から自動ダウンロードされ、ローカルにキャッシュされます。 +いいえ。yt-dlp は初回起動時に自動ダウンロードされてマシンにキャッシュされます。ffmpeg と ffprobe はアプリに同梱されています。それ以降は追加のセットアップ不要です。 **プレイリストやチャンネル全体をダウンロードできますか?** はい、プレイリストは対応しています。プレイリスト URL を貼り付けたあと、一覧全体をキューに入れることも、選んだ動画だけを入れることもできます。チャンネル全体の一括ダウンロードはまだ未対応です。 @@ -282,7 +282,7 @@ YouTube が提供するすべて:4K UHD(2160p)、1440p、1080p、720p、48 - **React 19** + **TypeScript** — UI - **Tailwind CSS v4** — スタイリング - **Zustand** — 状態管理 -- **yt-dlp** + **ffmpeg** — ダウンロード・マルチプレクサエンジン(初回起動時に GitHub から取得、常に最新) +- **yt-dlp** + **ffmpeg** — ダウンロード・マルチプレクサエンジン(yt-dlp は実行時に取得、ffmpeg/ffprobe はビルド時に同梱) - **Vite** + **electron-vite** — ビルドツール - **Vitest** + **Playwright** — ユニットテスト・E2E テスト @@ -342,7 +342,7 @@ bun run dist # 現在の OS 向けパッケージ bun run dist:win # Windows ポータブル exe のクロスコンパイル ``` -> yt-dlp と ffmpeg はバンドルされていません — 初回起動時に公式 GitHub releases から取得され、アプリデータフォルダにキャッシュされます。 +> yt-dlp は初回起動時に GitHub から取得され、アプリデータフォルダにキャッシュされます。ffmpeg と ffprobe はすべての Arroxy リリースに同梱されています。 diff --git a/README.md b/README.md index cc981c9e..b29fdc81 100644 --- a/README.md +++ b/README.md @@ -87,7 +87,7 @@ When YouTube updates its bot detection, most tools tell you to export your brows - **Clipboard watch** — copy a YouTube link and Arroxy auto-fills the URL when you refocus the app (toggle in Advanced settings) - **Auto-clean URLs** — strips tracking params (`si`, `pp`, `utm_*`, `fbclid`, `gclid`) and unwraps `youtube.com/redirect` links - **Tray mode** — closing the window keeps downloads running in the background -- **9 languages** — auto-detects system locale, switchable any time +- **21 languages** — auto-detects system locale, switchable any time ### Subtitles & post-processing @@ -217,7 +217,7 @@ flatpak run io.github.antonio_orionus.Arroxy Downloads are fetched directly via [yt-dlp](https://github.com/yt-dlp/yt-dlp) from YouTube to the folder you pick — nothing routed through a third-party server. Watch history, download history, URLs, and file contents stay on your device. -Arroxy sends anonymous, aggregate telemetry via [TelemetryDeck](https://telemetrydeck.com) — just enough for an indie project to see whether anyone is actually using it (launches, OS, app version, crashes). No URLs, no video titles, no file paths, no account info. The per-install ID is hashed before send and TelemetryDeck never stores IPs — EU-hosted and GDPR-friendly by design. You can opt out in Settings. +Arroxy sends anonymous, aggregate telemetry via [OpenPanel](https://openpanel.dev) — just enough for an indie project to understand launches, OS, app versions, and crashes. No URLs, video titles, file paths, account info, fingerprinting, or personal data. The per-install ID is random and not tied to your identity. You can opt out in Settings. --- @@ -239,10 +239,10 @@ No. Arroxy uses only the public tokens YouTube serves to any browser. No cookies Two layers of resilience: yt-dlp updates within hours of YouTube changes, and Arroxy doesn't rely on cookies that expire every ~30 minutes. That makes it noticeably more stable than tools that depend on exported browser sessions. **What languages is Arroxy available in?** -Nine: English, Español, Deutsch, Français, 日本語, 中文, Русский, Українська, हिन्दी. Auto-detects your system language; switch any time from the toolbar. Locale files are plain TypeScript objects in `src/shared/i18n/locales/` — [PRs welcome](../../pulls). +Twenty-one, out of the box: English, Español (Spanish), Deutsch (German), Français (French), 日本語 (Japanese), 中文 (Chinese), Русский (Russian), Українська (Ukrainian), हिन्दी (Hindi), Afaan Oromoo, Kiswahili, O'zbekcha (Uzbek), Tiếng Việt (Vietnamese), አማርኛ (Amharic), العربية (Arabic), اردو (Urdu), پښتو (Pashto), বাংলা (Bengali), မြန်မာဘာသာ (Burmese), Ελληνικά (Greek), and Српски (Serbian). Arroxy auto-detects your operating system's language on first launch and you can switch at any time from the language picker in the toolbar. Translations live as plain TypeScript objects in src/shared/i18n/locales/ — open a PR on GitHub to contribute. **Do I need to install anything else?** -No. yt-dlp and ffmpeg are downloaded automatically on first launch from their official GitHub releases and cached locally. +No. yt-dlp is downloaded automatically on first launch and cached on your machine; ffmpeg and ffprobe ship with the app. After that, no extra setup is needed. **Can I download playlists or whole channels?** Yes for playlists: paste a playlist URL, then queue the whole list or only the videos you select. Whole-channel batch downloads are not supported yet. @@ -280,7 +280,7 @@ Have a feature in mind? [Open a request](../../issues) — community input shape - **React 19** + **TypeScript** — UI - **Tailwind CSS v4** — styling - **Zustand** — state management -- **yt-dlp** + **ffmpeg** — download and mux engine (fetched from GitHub on first launch, always up-to-date) +- **yt-dlp** + **ffmpeg** — download and mux engine (yt-dlp fetched at runtime; ffmpeg/ffprobe bundled at build time) - **Vite** + **electron-vite** — build tooling - **Vitest** + **Playwright** — unit and end-to-end tests @@ -340,7 +340,7 @@ bun run dist # package for current OS bun run dist:win # cross-compile Windows portable exe ``` -> yt-dlp and ffmpeg are not bundled — they're fetched from GitHub on first launch and cached in your app data folder. +> yt-dlp is fetched from GitHub on first launch and cached in your app data folder. ffmpeg and ffprobe are bundled with every Arroxy release. diff --git a/README.my.md b/README.my.md index db5c3a91..85b9913f 100644 --- a/README.my.md +++ b/README.my.md @@ -87,7 +87,7 @@ YouTube က bot detection ကို အပ်ဒိတ်လုပ်သည့ - **Clipboard watch** — YouTube link ကို copy လုပ်ပြီး app ကို refocus လုပ်သောအခါ Arroxy သည် URL ကို auto-fill လုပ်သည် (Advanced settings တွင် toggle နှိပ်ပါ) - **Auto-clean URLs** — tracking params (`si`, `pp`, `utm_*`, `fbclid`, `gclid`) ကိုဖယ်ရှားပြီး `youtube.com/redirect` links ကိုဖြေရှင်းသည် - **Tray mode** — window ကိုပိတ်လျှင် downloads များသည် နောက်ကွယ်တွင် ဆက်လည်ပတ်နေသည် -- **ဘာသာစကား ၉ မျိုး** — system locale ကို auto-detect လုပ်ပြီး မည်သည့်အချိန်မဆို ပြောင်းလဲနိုင်သည် +- **ဘာသာစကား ၂၁ မျိုး** — system locale ကို auto-detect လုပ်ပြီး မည်သည့်အချိန်မဆို ပြောင်းလဲနိုင်သည် ### Subtitles နှင့် post-processing @@ -217,7 +217,7 @@ flatpak run io.github.antonio_orionus.Arroxy Downloads များကို [yt-dlp](https://github.com/yt-dlp/yt-dlp) မှတဆင့် YouTube မှ တိုက်ရိုက် သင်ရွေးချယ်သောဖိုဒါသို့ fetch လုပ်သည် — third-party server မှတဆင့် routing မလုပ်ပါ။ ကြည့်ရှုမှတ်တမ်း၊ ဒေါင်းလုဒ်မှတ်တမ်း၊ URL များနှင့် ဖိုင်အကြောင်းအရာများသည် သင့်ကိရိယာပေါ်တွင်သာ ကျန်ရှိသည်။ -Arroxy သည် [TelemetryDeck](https://telemetrydeck.com) မှတဆင့် anonymous aggregate telemetry ပေးပို့သည် — indie project တစ်ခုအတွက် တစ်ယောက်ယောက်က တကယ်အသုံးပြုနေသည်ကို မြင်နိုင်ရုံလောက် (launches, OS, app version, crashes)။ URLs မပါ၊ ဗီဒီယိုခေါင်းစဉ်မပါ၊ ဖိုင် path မပါ၊ account info မပါ။ per-install ID ကို ပို့မတိုင်ခင် hash လုပ်ပြီး TelemetryDeck သည် IPs ကို ဘယ်တော့မှ သိမ်းဆည်းမည် မဟုတ် — EU-hosted ဖြစ်ပြီး design အားဖြင့် GDPR-friendly ဖြစ်သည်။ Settings တွင် opt out လုပ်နိုင်သည်။ +Arroxy သည် [OpenPanel](https://openpanel.dev) မှတဆင့် anonymous aggregate telemetry ပေးပို့သည် — launches, OS, app versions နှင့် crashes ကိုနားလည်ရန်လောက်သာ။ URLs, video titles, file paths, account info, fingerprinting သို့မဟုတ် personal data မရှိပါ။ per-install ID သည် random ဖြစ်ပြီး သင့် identity နှင့် မချိတ်ဆက်ထားပါ။ Settings တွင် opt out လုပ်နိုင်သည်။ --- @@ -239,10 +239,10 @@ YouTube ပေးသောအရာများအားလုံး: 4K UHD (21 ခံနိုင်ရည်ရှိမှုနှစ်ထပ်: yt-dlp သည် YouTube ပြောင်းလဲမှုများ ဖြစ်ပြီး နာရီပိုင်းအတွင်း update လုပ်သည်၊ Arroxy သည် ~30 မိနစ်တိုင်း သက်တမ်းကုန်ဆုံးသော cookie များပေါ်တွင် မမှီခိုပါ။ ၎င်းကြောင့် export လုပ်ထားသော browser session များပေါ်တွင် မှီခိုသော tools များထက် သိသာစွာ ပိုတည်ငြိမ်သည်။ **Arroxy ကို မည်သည့်ဘာသာစကားများဖြင့် ရနိုင်သနည်း?** -ကိုးမျိုး: English, Español, Deutsch, Français, 日本語, 中文, Русский, Українська, हिन्दी။ သင့် system language ကို auto-detect လုပ်ပြီး toolbar မှ မည်သည့်အချိန်မဆို ပြောင်းနိုင်သည်။ Locale ဖိုင်များသည် `src/shared/i18n/locales/` တွင် plain TypeScript objects ဖြစ်သည် — [PR ဖိတ်ကြိုသည်](../../pulls)။ +နှစ်ဆယ့်တစ်မျိုး၊ အသင့်ပါ: English, Español (Spanish), Deutsch (German), Français (French), 日本語 (Japanese), 中文 (Chinese), Русский (Russian), Українська (Ukrainian), हिन्दी (Hindi), Afaan Oromoo, Kiswahili, O'zbekcha (Uzbek), Tiếng Việt (Vietnamese), አማርኛ (Amharic), العربية (Arabic), اردو (Urdu), پښتو (Pashto), বাংলা (Bengali), မြန်မာဘာသာ, Ελληνικά (Greek), နှင့် Српски (Serbian)။ Arroxy သည် ပထမဆုံး ဖွင့်ချိန်တွင် သင့် operating system ၏ ဘာသာစကားကို အလိုအလျောက် ရှာဖွေပြီး toolbar ရှိ ဘာသာစကားရွေးချယ်မှုမှ မည်သည့်အချိန်မဆို ပြောင်းနိုင်သည်။ Locale ဖိုင်များသည် src/shared/i18n/locales/ တွင် plain TypeScript object များဖြစ်သည် — ပါဝင်ကူညီရန် GitHub တွင် PR တင်ပါ။ **အခြားအရာများ ထည့်သွင်းရန်လိုသလား?** -မလိုအပ်ပါ။ yt-dlp နှင့် ffmpeg တို့ကို ပထမဆုံး launch လုပ်သောအခါ official GitHub releases မှ အလိုအလျောက် download ဆင်းပြီး locally cache သိမ်းသည်။ +မလိုပါ။ yt-dlp သည် ပထမဆုံး ဖွင့်ချိန်တွင် အလိုအလျောက် ဒေါင်းလုဒ်လုပ်ပြီး သင့်စက်တွင် cache လုပ်သည်; ffmpeg နှင့် ffprobe သည် app နှင့်အတူ ပါလာသည်။ ထို့နောက် နောက်ထပ် setup မလိုအပ်ပါ။ **Playlist များ သို့မဟုတ် channel တစ်ခုလုံး ဒေါင်းလုဒ်ဆွဲနိုင်သလား?** ဟုတ်ပါတယ်၊ playlist အတွက်: playlist URL ကို paste လုပ်ပြီး စာရင်းတစ်ခုလုံးကို သို့မဟုတ် သင်ရွေးထားသော video များကိုသာ queue ထဲထည့်နိုင်သည်။ channel တစ်ခုလုံးကို batch အလိုက် download လုပ်ခြင်းကိုတော့ မထောက်ပံ့သေးပါ။ @@ -280,7 +280,7 @@ YouTube ပေးသောအရာများအားလုံး: 4K UHD (21 - **React 19** + **TypeScript** — UI - **Tailwind CSS v4** — styling - **Zustand** — state management -- **yt-dlp** + **ffmpeg** — ဒေါင်းလုဒ်နှင့် mux engine (ပထမဆုံး launch လုပ်သောအခါ GitHub မှ fetch လုပ်ပြီး အမြဲ up-to-date ဖြစ်နေသည်) +- **yt-dlp** + **ffmpeg** — download နှင့် mux engine (yt-dlp ကို runtime တွင် fetch လုပ်သည်; ffmpeg/ffprobe ကို build time တွင် bundle ထည့်သည်) - **Vite** + **electron-vite** — build tooling - **Vitest** + **Playwright** — unit နှင့် end-to-end tests @@ -340,7 +340,7 @@ bun run dist # လက်ရှိ OS အတွက် package ထုတ bun run dist:win # Windows portable exe cross-compile ``` -> yt-dlp နှင့် ffmpeg များကို bundle ထည့်မထားပါ — ၎င်းတို့ကို ပထမဆုံး launch လုပ်သောအခါ official GitHub releases မှ download ဆင်းပြီး app data folder တွင် cache သိမ်းထားသည်။ +> yt-dlp ကို ပထမဆုံး launch တွင် GitHub မှ fetch လုပ်ပြီး app data folder တွင် cache သိမ်းထားသည်။ ffmpeg နှင့် ffprobe သည် Arroxy release တိုင်းတွင် bundle ထည့်ထားသည်။ diff --git a/README.om.md b/README.om.md index f4b1e8b8..9ac9a402 100644 --- a/README.om.md +++ b/README.om.md @@ -87,7 +87,7 @@ YouTube ittisa bot isaa yoo haaromse, meeshaalee hedduun kuukkii biraawzaraa You - **Eegaa clipboard** — link YouTube koppiisi Arroxy URL of-hordofaa guutu yeroo app deebi'itu (Advanced settings keessatti jijjiiri) - **URL of-qulqulleessa** — params hordoffii (`si`, `pp`, `utm_*`, `fbclid`, `gclid`) haqa fi linkiiwwan `youtube.com/redirect` bana - **Haala tray** — window cufuu buufannoo duubatti itti fufsisee hojechisisa -- **Afaan 9** — afaan siistamaa of-danda'ee addaan baafata, yeroo kamiyyuu jijjiiruu danda'ama +- **Afaan 21** — afaan siistamaa of-danda'ee addaan baafata, yeroo kamiyyuu jijjiiruu danda'ama ### Subtitle & seensuu boodaa @@ -217,7 +217,7 @@ flatpak run io.github.antonio_orionus.Arroxy Buufannoonni kallattiin [yt-dlp](https://github.com/yt-dlp/yt-dlp) fayyadamuudhaan YouTube irraa foldera filatteetti darbamu — miila-seerri hunduu sarara servera sadarkaa-sadaffaa tokko keessa darbuu hin qabu. Seenaa ilaaluu, seenaa buufannoo, URLs, fi qabiyyee faayilaa meeshaa kee irratti hafu. -Arroxy telemetrii anonymous, walitti makamaa [TelemetryDeck](https://telemetrydeck.com) fayyadamuudhaan erga — pirojekti indie tokkoof namni dhugumaan itti fayyadamaa jira beekuuf gahaa qofa (eegaluu, OS, verzhiyoonii app, caccabu). URLs hin jiru, mata-duree viidiyoo hin jiru, kallattii faayilaa hin jiru, odeeffannoo akkaawuntii hin jiru. ID diriirsa tokkoon tokko erguun dura hash godhama fi TelemetryDeck IPs hin kuusu — EU-tti qabamee fi GDPR-hayyaamaadha. Settings keessatti dhorkuu dandeessa. +Arroxy telemetrii maqaa-dhabduu walitti makamaa [OpenPanel](https://openpanel.dev) fayyadamuudhaan erga — eegaluu, OS, version app fi kufaatii hubachuuf qofa. URL, mata-duree viidiyoo, karaa faayilaa, odeeffannoo account, fingerprinting yookaan data dhuunfaa hin jiru. ID install tokkoon tokkoo tasaa dha, eenyummaa keetti hin hidhamu. Settings keessatti dhaabuu dandeessa. --- @@ -239,10 +239,10 @@ Lakki. Arroxy tokkicha token ummataa YouTube biraawzara kamiiyyuuf tajaajiltu fa Ciminni lamaatu jira: yt-dlp saatii keessatti jijjirama YouTube haaromsa, Arroxys kuukkii daqiiqaa ~30 keessatti dhumuu irratti hin hirkattu. Kun meeshaalee naannoo biraawzaraa erge irratti hirkatan caala qajeelina beekamaa godha. **Arroxy afaan meeqa keessatti argamu?** -Sagal: Ingliziffaa, Español, Deutsch, Français, 日本語, 中文, Русский, Українська, हिन्दी. Afaan siistamaa of-danda'ee addaan baafata; yeroo kamiyyuu toolbar irraa jijjiiri. Faayiloonni locale TypeScript `src/shared/i18n/locales/` keessa jiru — [PRs simatamu](../../pulls). +Digdamatokkoo, yeroo jalqabaatii: English, Español (Spanish), Deutsch (German), Français (French), 日本語 (Japanese), 中文 (Chinese), Русский (Russian), Українська (Ukrainian), हिन्दी (Hindi), Afaan Oromoo, Kiswahili, O'zbekcha (Uzbek), Tiếng Việt (Vietnamese), አማርኛ (Amharic), العربية (Arabic), اردو (Urdu), پښتو (Pashto), বাংলা (Bengali), မြန်မာဘာသာ (Burmese), Ελληνικά (Greek), fi Српски (Serbian). Arroxy afaan mana-hojii kee sirna hojjetaa irratti yeroo jalqabaatti ofumaa argata, yeroo kamiiyyuu toolbar irraa filataa afaan jijjiiruu dandeessa. Hiikaaleen objiektii TypeScript duwwaa akka src/shared/i18n/locales/ keessa jiran — gargaaruf GitHub irratti PR bani. **Waan biraa fayyadu barbaachisaa?** -Lakki. yt-dlp fi ffmpeg of-hordofaan yeroo jalqabaaf baasii GitHub isaanitii irraa buufamanii naannoo kuufamu. +Lakki. yt-dlp jalqaba banuu irratti ofumaan buufamee meeshaa kee irratti kuufama; ffmpeg fi ffprobe app waliin dhufu. Sana booda qindaaʼinni dabalataa hin barbaachisu. **Playlist ykn chaanaalii guutuu buusuu danda'aa?** Eeyyee, playlist'f: URL playlist maxxansi, booda tarree guutuu yookaan viidiyoowwan ati filatte qofa queue keessa galchi. Channel guutuu batch'n buusuun ammaaf hin deggaramu. @@ -280,7 +280,7 @@ Amala yaaddetee jirtaa? [Gaaffii bani](../../issues) — galchiin hawaasaa dursa - **React 19** + **TypeScript** — UI - **Tailwind CSS v4** — kallattii - **Zustand** — bulchiinsa haala -- **yt-dlp** + **ffmpeg** — injinii buusuu fi walitti makuu (yeroo jalqabaaf GitHub irraa fudhatama, yeroo hunda haaraa) +- **yt-dlp** + **ffmpeg** — injinii buusuu fi walitti makuu (yt-dlp runtime irratti fudhatama; ffmpeg/ffprobe build time irratti waliin maramu) - **Vite** + **electron-vite** — meeshaalee ijaarsaa - **Vitest** + **Playwright** — qormaata unit fi end-to-end @@ -340,7 +340,7 @@ bun run dist # OS ammaa kanaaf qindeessi bun run dist:win # Windows portable exe cross-compile ``` -> yt-dlp fi ffmpeg waliin hin maramne — yeroo jalqabaaf GitHub irraa buufamanii foldaraa data appichaa keessatti kuufamu. +> yt-dlp yeroo jalqabaaf GitHub irraa fudhatamee foldara data app keessatti kuufama. ffmpeg fi ffprobe release Arroxy hunda waliin dhufu. diff --git a/README.ps.md b/README.ps.md index 5999caf3..9fa2744e 100644 --- a/README.ps.md +++ b/README.ps.md @@ -87,7 +87,7 @@ Arroxy د یوه کار لپاره جوړ شوی: URL پیسټ کړئ، پاک - **د کلپبورډ لیدل** — یو YouTube لینک کاپي کړئ او Arroxy د اپ بیا تمرکز کولو پر مهال URL پخپله ډکوي (د پرمختللو تنظیماتو کې بدل کړئ) - **د URL اتوماتیک پاکول** — د تعقیب پیرامیترونه (`si`، `pp`، `utm_*`، `fbclid`، `gclid`) لرې کوي او `youtube.com/redirect` لینکونه پرانیستي - **د ټرې حالت** — د کړکۍ بندول ډاونلوډونه شالید کې روان ساتي -- **۹ ژبې** — د سیستم ژبه اتوماتیک کشف کوي، هر وخت بدلولی شئ +- **۲۱ ژبې** — د سیستم ژبه اتوماتیک کشف کوي، هر وخت بدلولی شئ ### ساب ټایټلونه او د پروسس کولو وروسته @@ -217,7 +217,7 @@ flatpak run io.github.antonio_orionus.Arroxy ډاونلوډونه مستقیما د [yt-dlp](https://github.com/yt-dlp/yt-dlp) له لارې له YouTube څخه هغه فولډر ته راوړل کیږي چې تاسو انتخاب کوئ — هیڅ شی د دریمې ډلې سرور له لارې نه تیریږي. د لیدلو تاریخ، ډاونلوډ تاریخ، URL، او د فایل منځپانګه ستاسو وسیله کې پاتې کیږي. -Arroxy د [TelemetryDeck](https://telemetrydeck.com) له لارې ناپیژاندل شوې، ټولیزه ټیلیمیټري لیږي — یوازې د یوه مستقل پروژه لپاره د دې لیدلو لپاره کافي چې ایا چا واقعیا کاروي (پیلونه، OS، د اپ نسخه، کریشونه). هیڅ URLs، هیڅ د ویډیو سرلیکونه، هیڅ د فایل لارې، هیڅ د اکاونټ معلومات. د هر نصب ID لیږلو دمخه هیش کیږي او TelemetryDeck هیچکله IPs نه ذخیروي — د EU کوربه تابعیت او د ډیزاین له مخې GDPR-دوستانه. تاسو د تنظیماتو کې لاسپورته کیدای شئ. +Arroxy د [OpenPanel](https://openpanel.dev) له لارې ناپیژندلې، ټولیزه ټیلیمیټري لېږي — یوازې د پیلونو، OS، د اپ نسخو او کریشونو د پوهېدو لپاره. URLs، د ویډیو سرلیکونه، د فایل لارې، د اکاونټ معلومات، fingerprinting یا شخصي معلومات نشته. د هر نصب ID تصادفي دی او ستاسو هویت سره نه تړل کېږي. تاسو یې په Settings کې بندولی شئ. --- @@ -239,10 +239,10 @@ Arroxy د [TelemetryDeck](https://telemetrydeck.com) له لارې ناپیژا د استحکام دوه پوړونه: yt-dlp د YouTube بدلونونو وروسته د ساعتونو دننه تازه کیږي، او Arroxy هغو کوکیزونو پورې اړه نه لري چې هره ~30 دقیقه پای ته رسیږي. دا دا هغو وسیلو پرتله نمایان ثابت ورکوي چې د صادر شوو براوزر سیشنونو پورې اړه لري. **Arroxy د کومو ژبو لپاره شته دی؟** -نهه: English، Español، Deutsch، Français، 日本語، 中文، Русский، Українська، हिन्दी. ستاسو د سیستم ژبه اتوماتیک کشف کوي؛ د ټول بار له لارې هر وخت بدلول. د ژبې فایلونه د `src/shared/i18n/locales/` کې ساده TypeScript اعتراضونه دي — [PRs ښه راغلاست](../../pulls). +یویشت، له صندوقه: English، Español (سپانوي)، Deutsch (جرماني)، Français (فرانسوي)، 日本語 (جاپاني)، 中文 (چیني)، Русский (روسي)، Українська (اوکراني)، हिन्दी (هندي)، Afaan Oromoo، Kiswahili، O'zbekcha (ازبکي)، Tiếng Việt (ویتنامي)، አማርኛ (امهاري)، العربية (عربي)، اردو، پښتو، বাংলা (بنګالي)، မြန်မာဘာသာ (برمي)، Ελληνικά (یوناني)، او Српски (سربي). Arroxy ستاسو د عملیاتي سیسټم ژبه د لومړي پیلولو پر مهال اوتومات کشفوي او تاسو کولی شئ هر وخت د ټول بار کې د ژبې پیک نه بدل کړئ. ژباړې د ساده TypeScript اعتراضونو په توګه src/shared/i18n/locales/ کې اوسیږي — د مرستې لپاره GitHub کې PR پرانیزئ. **ایا ما ته بل شی نصب کولو ته اړتیا ده؟** -نه. yt-dlp او ffmpeg د لومړي پیل پر مهال اتوماتیک له دوی رسمي GitHub خپرونو ډاونلوډ او ځایي ذخیره کیږي. +نه. yt-dlp د لومړي پیل پر مهال اوتومات ډاونلوډ او ستاسو په ماشین کې کېچ کېږي؛ ffmpeg او ffprobe د اپ سره راځي. له دې وروسته، کوم اضافي ترتیب ته اړتیا نشته. **ایا کولی شم پلیلیسټونه یا ټول چینلونه ډاونلوډ کړم؟** هو، د playlists لپاره: د playlist URL پیسټ کړئ، بیا ټول لېست یا یوازې هغه ویډیوګانې چې تاسو ټاکئ queue کړئ. د بشپړ channel batch download لا تراوسه نه ملاتړ کېږي. @@ -280,7 +280,7 @@ Arroxy د [TelemetryDeck](https://telemetrydeck.com) له لارې ناپیژا - **React 19** + **TypeScript** — کارونکي انٹرفیس - **Tailwind CSS v4** — ستایل کول - **Zustand** — د حالت مدیریت -- **yt-dlp** + **ffmpeg** — د ډاونلوډ او mux انجن (د لومړي پیل پر مهال له GitHub څخه راوړل کیږي، تل تازه) +- **yt-dlp** + **ffmpeg** — د ډاونلوډ او mux انجن (yt-dlp د runtime پر مهال راوړل کېږي؛ ffmpeg/ffprobe د build پر مهال بنډل کېږي) - **Vite** + **electron-vite** — د جوړولو وسیلې - **Vitest** + **Playwright** — د واحد او له سره تر سره ازموینې @@ -340,7 +340,7 @@ bun run dist # د اوسني OS لپاره پیکیج کول bun run dist:win # د Windows پورټیبل exe کراس-کمپایل ``` -> yt-dlp او ffmpeg شامل نه دي — دوی د لومړي پیل پر مهال له دوی رسمي GitHub خپرونو څخه ډاونلوډ او د app ډیټا فولډر کې خوندي کیږي. +> yt-dlp د لومړي پیل پر مهال له GitHub څخه راوړل کېږي او د اپ ډیټا فولډر کې کېچ کېږي. ffmpeg او ffprobe د Arroxy هر release سره بنډل وي. diff --git a/README.ru.md b/README.ru.md index ba3bf5db..55344c25 100644 --- a/README.ru.md +++ b/README.ru.md @@ -89,7 +89,7 @@ Arroxy создан для одного: вставьте URL — получит - **Мониторинг буфера обмена** — скопируйте YouTube-ссылку, и Arroxy автоматически заполнит URL при следующем переключении на приложение (включается в расширенных настройках) - **Автоочистка URL** — удаляет трекинговые параметры (`si`, `pp`, `utm_*`, `fbclid`, `gclid`) и разворачивает ссылки `youtube.com/redirect` - **Режим трея** — закрытие окна сохраняет загрузки в фоновом режиме -- **9 языков** — автоматически определяет язык системы, переключается в любой момент +- **21 язык** — автоматически определяет язык системы, переключается в любой момент ### Субтитры и постобработка @@ -219,7 +219,7 @@ flatpak run io.github.antonio_orionus.Arroxy Загрузки выполняются напрямую через [yt-dlp](https://github.com/yt-dlp/yt-dlp) с YouTube в выбранную вами папку — никакого маршрутизирования через сторонние серверы. История просмотров, история загрузок, URL-адреса и содержимое файлов остаются на вашем устройстве. -Arroxy отправляет анонимную агрегированную телеметрию через [TelemetryDeck](https://telemetrydeck.com) — ровно столько, чтобы небольшой инди-проект мог видеть, что им пользуются (запуски, OS, версия приложения, сбои). Никаких URL, названий видео, путей к файлам, информации об аккаунте. Идентификатор установки хешируется перед отправкой, а TelemetryDeck никогда не хранит IPs — размещён в EU и GDPR-совместим по дизайну. Можно отключить в настройках. +Arroxy отправляет анонимную агрегированную телеметрию через [OpenPanel](https://openpanel.dev) — ровно столько, чтобы понимать запуски, ОС, версии приложения и сбои. Никаких URL, названий видео, путей к файлам, данных аккаунта, фингерпринтинга или персональных данных. ID установки случайный и не связан с вашей личностью. Можно отключить в настройках. --- @@ -241,10 +241,10 @@ Arroxy отправляет анонимную агрегированную те Два уровня устойчивости: yt-dlp обновляется в течение нескольких часов после изменений YouTube, и Arroxy не зависит от кук, которые истекают каждые ~30 минут. Это делает его значительно стабильнее инструментов, использующих экспорт сессий браузера. **На каких языках доступен Arroxy?** -На девяти: English, Español, Deutsch, Français, 日本語, 中文, Русский, Українська, हिन्दी. Автоматически определяет язык системы; переключается в любой момент через панель инструментов. Файлы локализации — это простые TypeScript-объекты в `src/shared/i18n/locales/` — [PR приветствуется](../../pulls). +На двадцати одном, прямо из коробки: English, Español (испанский), Deutsch (немецкий), Français (французский), 日本語 (японский), 中文 (китайский), Русский, Українська (украинский), हिन्दी (хинди), Afaan Oromoo (оромо), Kiswahili (суахили), O'zbekcha (узбекский), Tiếng Việt (вьетнамский), አማርኛ (амхарский), العربية (арабский), اردو (урду), پښتو (пушту), বাংলা (бенгальский), မြန်မာဘာသာ (бирманский), Ελληνικά (греческий) и Српски (сербский). Arroxy автоматически определяет язык системы при первом запуске, и вы можете переключиться в любой момент через выбор языка в панели инструментов. Файлы локализации — это простые TypeScript-объекты в src/shared/i18n/locales/ — откройте PR на GitHub, чтобы внести вклад. **Нужно что-то дополнительно устанавливать?** -Нет. yt-dlp и ffmpeg автоматически скачиваются при первом запуске с официальных GitHub releases и кешируются локально. +Нет. yt-dlp автоматически скачивается при первом запуске и кешируется на вашей машине; ffmpeg и ffprobe поставляются вместе с приложением. После этого никакой дополнительной настройки не требуется. **Можно ли скачивать плейлисты или целые каналы?** Да, для плейлистов: вставь ссылку на плейлист, затем поставь в очередь весь список или только выбранные видео. Пакетная загрузка целых каналов пока не поддерживается. @@ -282,7 +282,7 @@ Arroxy отправляет анонимную агрегированную те - **React 19** + **TypeScript** — UI - **Tailwind CSS v4** — стили - **Zustand** — управление состоянием -- **yt-dlp** + **ffmpeg** — движок загрузки и мультиплексирования (скачиваются с GitHub при первом запуске, всегда актуальны) +- **yt-dlp** + **ffmpeg** — движок загрузки и мультиплексирования (yt-dlp подтягивается во время работы; ffmpeg/ffprobe включаются при сборке) - **Vite** + **electron-vite** — инструменты сборки - **Vitest** + **Playwright** — юнит- и end-to-end тесты @@ -342,7 +342,7 @@ bun run dist # упаковка для текущей ОС bun run dist:win # кросс-компиляция портативного .exe для Windows ``` -> yt-dlp и ffmpeg не включены в сборку — они скачиваются с GitHub при первом запуске и кешируются в папке данных приложения. +> yt-dlp скачивается с GitHub при первом запуске и кешируется в папке данных приложения. ffmpeg и ffprobe входят в каждый релиз Arroxy. diff --git a/README.sr.md b/README.sr.md index dc7a5772..532456d8 100644 --- a/README.sr.md +++ b/README.sr.md @@ -87,7 +87,7 @@ Arroxy је направљен за једну ствар: налепите URL, - **Праћење клипборда** — копирајте YouTube линк и Arroxy аутоматски попуњава URL кад се вратите у апликацију (укључиво у напредним подешавањима) - **Аутоматско чишћење URL-ова** — уклања параметре праћења (`si`, `pp`, `utm_*`, `fbclid`, `gclid`) и распакује `youtube.com/redirect` линкове - **Режим трака** — затварање прозора одржава преузимања у позадини -- **9 језика** — аутоматски препознаје системски локал, може се мењати у свако доба +- **21 језик** — аутоматски препознаје системски локал, може се мењати у свако доба ### Титлови и постобрада @@ -217,7 +217,7 @@ flatpak run io.github.antonio_orionus.Arroxy Преузимања се преузимају директно преко [yt-dlp](https://github.com/yt-dlp/yt-dlp) са YouTube-а у фасциклу коју одаберете — ништа не пролази кроз сервер треће стране. Историја гледања, историја преузимања, URL-ови и садржај фајлова остају на вашем уређају. -Arroxy шаље анонимну, збирну телеметрију преко [TelemetryDeck](https://telemetrydeck.com) — само довољно да инди пројекат види да ли га ико заиста користи (покретања, OS, верзија апликације, рушења). Без URLs, без наслова видеа, без путања фајлова, без информација о налогу. ID по инсталацији се хешује пре слања и TelemetryDeck никада не чува IPs — хостован у EU и по дизајну пријатељски за GDPR. Можете се одјавити у Подешавањима. +Arroxy шаље анонимну, збирну телеметрију преко [OpenPanel](https://openpanel.dev) — само довољно да се разумеју покретања, OS, верзије апликације и рушења. Без URL-ова, наслова видеа, путања датотека, података о налогу, fingerprinting-а или личних података. ID по инсталацији је насумичан и није повезан са вашим идентитетом. Можете се одјавити у Подешавањима. --- @@ -239,10 +239,10 @@ Da. Izaberi *samo audio* u meniju formata, pa zatim MP3, M4A/AAC, Opus ili WAV. Два слоја отпорности: yt-dlp се ажурира у року од неколико сати по промени YouTube-а, а Arroxy не ослања се на колачиће који истичу сваких ~30 минута. То га чини знатно стабилнијим од алата који зависе од извезених сесија претраживача. **На којим је језицима Arroxy доступан?** -На девет: English, Español, Deutsch, Français, 日本語, 中文, Русский, Українська, हिन्दी. Аутоматски препознаје системски језик; промените га у свако доба са траке са алаткама. Фајлови локализације су обични TypeScript објекти у `src/shared/i18n/locales/` — [PR-ови су добродошли](../../pulls). +Двадесет и један, одмах из кутије: English, Español (шпански), Deutsch (немачки), Français (француски), 日本語 (јапански), 中文 (кинески), Русский (руски), Українська (украјински), हिन्दी (хинди), Afaan Oromoo (оромо), Kiswahili (свахили), O'zbekcha (узбечки), Tiếng Việt (вијетнамски), አማርኛ (амхарски), العربية (арапски), اردو (урду), پښتو (пашто), বাংলা (бенгалски), မြန်မာဘာသာ (бурмански), Ελληνικά (грчки) и Српски. Arroxy аутоматски препознаје језик вашег оперативног система при prvom покретању и можете да пређете на други у сваком тренутку преко бирача језика у траци са алаткама. Преводи су обични TypeScript објекти у src/shared/i18n/locales/ — отворите PR на GitHub-у да допринесете. **Да ли треба да инсталирам нешто друго?** -Не. yt-dlp и ffmpeg се аутоматски преузимају при првом покретању са њихових званичних GitHub издања и кешују локално. +Не. yt-dlp се аутоматски преузима при првом покретању и кешира на вашем рачунару; ffmpeg и ffprobe стижу уз апликацију. Након тога није потребно додатно подешавање. **Могу ли преузети плејлисте или целе канале?** Da, za plejliste: nalepi URL plejliste, pa zatim stavi u red celu listu ili samo video snimke koje izabereš. Grupno preuzimanje celih kanala još nije podržano. @@ -280,7 +280,7 @@ Da, za plejliste: nalepi URL plejliste, pa zatim stavi u red celu listu ili samo - **React 19** + **TypeScript** — кориснички интерфејс - **Tailwind CSS v4** — стилизовање - **Zustand** — управљање стањем -- **yt-dlp** + **ffmpeg** — машина за преузимање и мешање (преузима се са GitHub-а при првом покретању, увек ажурна) +- **yt-dlp** + **ffmpeg** — машина за преузимање и мешање (yt-dlp се преузима у runtime-у; ffmpeg/ffprobe се укључују при build-у) - **Vite** + **electron-vite** — алати за изградњу - **Vitest** + **Playwright** — јединични и end-to-end тестови @@ -340,7 +340,7 @@ bun run dist # package for current OS bun run dist:win # cross-compile Windows portable exe ``` -> yt-dlp и ffmpeg нису укључени у пакет — преузимају се са GitHub-а при првом покретању и кешују у фасцикли података апликације. +> yt-dlp се преузима са GitHub-а при првом покретању и кешира у фасцикли података апликације. ffmpeg и ffprobe су укључени у свако Arroxy издање. diff --git a/README.sw.md b/README.sw.md index 6afa4d0e..a9c5443f 100644 --- a/README.sw.md +++ b/README.sw.md @@ -87,7 +87,7 @@ YouTube inapoboresha ugunduzi wake wa boti, zana nyingi hukuambia kuhamisha vida - **Ufuatiliaji wa ubao wa kunakili** — nakili kiungo cha YouTube na Arroxy itajaza URL kiotomatiki ukirejesha umakini kwenye programu (washa/zima katika mipangilio ya Kina) - **Usafi wa URL kiotomatiki** — huondoa vigezo vya ufuatiliaji (`si`, `pp`, `utm_*`, `fbclid`, `gclid`) na kufungua viungo vya `youtube.com/redirect` - **Hali ya tray** — kufunga dirisha kunaacha maudhui kuendelea kupakuliwa nyuma ya skrini -- **Lugha 9** — hugundua kiotomatiki lugha ya mfumo, inaweza kubadilishwa wakati wowote +- **Lugha 21** — hugundua kiotomatiki lugha ya mfumo, inaweza kubadilishwa wakati wowote ### Manukuu na usindikaji wa baada ya kupakua @@ -217,7 +217,7 @@ flatpak run io.github.antonio_orionus.Arroxy Maudhui hupakuliwa moja kwa moja kupitia [yt-dlp](https://github.com/yt-dlp/yt-dlp) kutoka YouTube hadi kwenye folda unayochagua — hakuna kitu kinachopita kwenye seva ya mtu wa tatu. Historia ya kutazama, historia ya kupakua, URL, na maudhui ya faili yanabaki kwenye kifaa chako. -Arroxy hutuma telemetry isiyo na jina na ya jumla kupitia [TelemetryDeck](https://telemetrydeck.com) — tu ya kutosha kwa mradi wa kujitegemea kuona kama mtu anahusika nayo (uzinduzi, OS, toleo la programu, ajali). Hakuna URLs, hakuna vichwa vya video, hakuna njia za faili, hakuna taarifa za akaunti. Kitambulisho cha kila usanidi hufishwa kabla ya kutumwa na TelemetryDeck haitawahi kuhifadhi IPs — inashikiliwa EU na inayofaa GDPR kwa muundo. Unaweza kujiepusha katika Mipangilio. +Arroxy hutuma telemetry isiyo na jina na ya jumla kupitia [OpenPanel](https://openpanel.dev) — ya kutosha kuelewa uzinduzi, OS, matoleo ya programu na ajali. Hakuna URLs, vichwa vya video, njia za faili, taarifa za akaunti, fingerprinting au data binafsi. Kitambulisho cha kila usakinishaji ni cha nasibu na hakihusiani na utambulisho wako. Unaweza kujiondoa katika Mipangilio. --- @@ -239,10 +239,10 @@ Hapana. Arroxy inatumia tokeni za umma pekee ambazo YouTube inawapa vivinjari vy Tabaka mbili za ustahimilivu: yt-dlp husasishwa ndani ya masaa machache baada ya mabadiliko ya YouTube, na Arroxy haitegemei vidakuzi vinavyoisha kila dakika ~30. Hii inafanya iwe thabiti zaidi dhahiri kuliko zana zinazotegemea vikao vya kivinjari vilivyohamishwa. **Arroxy inapatikana katika lugha zipi?** -Tisa: English, Español, Deutsch, Français, 日本語, 中文, Русский, Українська, हिन्दी. Hugundua kiotomatiki lugha ya mfumo wako; badilisha wakati wowote kutoka kwenye upau wa zana. Faili za eneo zinapatikana kama vitu vya TypeScript wazi katika `src/shared/i18n/locales/` — [PRs zinakaribushwa](../../pulls). +Ishirini na moja, kutoka mwanzoni: English, Español (Kihispania), Deutsch (Kijerumani), Français (Kifaransa), 日本語 (Kijapani), 中文 (Kichina), Русский (Kirusi), Українська (Kiukraini), हिन्दी (Kihindi), Afaan Oromoo, Kiswahili, O'zbekcha (Kiuzbeki), Tiếng Việt (Kivietinamu), አማርኛ (Kiamhara), العربية (Kiarabu), اردو (Kiurdu), پښتو (Kipashto), বাংলা (Kibengali), မြန်မာဘာသာ (Kiburma), Ελληνικά (Kigiriki), na Српски (Kiserbia). Arroxy hugundua lugha ya mfumo wako wa uendeshaji wakati wa uzinduzi wa kwanza na unaweza kubadili wakati wowote kutoka kichaguo cha lugha kwenye upau wa zana. Tafsiri zinaishi kama vitu vya TypeScript vya kawaida katika src/shared/i18n/locales/ — fungua PR kwenye GitHub kuchangia. **Je, ninahitaji kusakinisha kitu kingine chochote?** -Hapana. yt-dlp na ffmpeg zinapakuliwa kiotomatiki wakati wa uzinduzi wa kwanza kutoka kwa matoleo rasmi ya GitHub na kuhifadhiwa mahali hapo. +Hapana. yt-dlp hupakuliwa kiotomatiki wakati wa uzinduzi wa kwanza na kuhifadhiwa kwenye kifaa chako; ffmpeg na ffprobe huja pamoja na programu. Baada ya hapo, hakuna usanidi wa ziada unaohitajika. **Je, ninaweza kupakua orodha za kucheza au vituo vyote?** Ndiyo kwa playlist: bandika URL ya playlist, kisha weka foleni ya orodha yote au video ulizochagua tu. Upakuaji wa kundi wa channel nzima bado haujaungwa mkono. @@ -280,7 +280,7 @@ Una kipengele unachofikiria? [Fungua ombi](../../issues) — maoni ya jamii huat - **React 19** + **TypeScript** — kiolesura cha mtumiaji - **Tailwind CSS v4** — muundo wa kuonekana - **Zustand** — usimamizi wa hali -- **yt-dlp** + **ffmpeg** — injini ya kupakua na kuchanganya (hupakuliwa kutoka GitHub wakati wa uzinduzi wa kwanza, daima ya kisasa) +- **yt-dlp** + **ffmpeg** — injini ya kupakua na kuchanganya (yt-dlp hupakuliwa wakati wa runtime; ffmpeg/ffprobe hujumuishwa wakati wa build) - **Vite** + **electron-vite** — zana za ujenzi - **Vitest** + **Playwright** — majaribio ya kitengo na ya mwisho-hadi-mwisho @@ -340,7 +340,7 @@ bun run dist # funga kwa OS ya sasa bun run dist:win # mkusanyiko wa msalaba kwa Windows portable exe ``` -> yt-dlp na ffmpeg hazijaunganishwa — zinapakuliwa kiotomatiki wakati wa uzinduzi wa kwanza kutoka kwa matoleo rasmi ya GitHub na kuhifadhiwa mahali pa kawaida. +> yt-dlp hupakuliwa kutoka GitHub wakati wa uzinduzi wa kwanza na kuhifadhiwa kwenye folda ya data ya programu. ffmpeg na ffprobe hujumuishwa katika kila toleo la Arroxy. diff --git a/README.uk.md b/README.uk.md index d7dc215c..3abdac99 100644 --- a/README.uk.md +++ b/README.uk.md @@ -89,7 +89,7 @@ Arroxy створений для однієї задачі: вставте URL - **Моніторинг буфера обміну** — скопіюйте посилання YouTube, і Arroxy автоматично заповнить поле URL при наступному переключенні на застосунок (вимикається в розширених налаштуваннях) - **Автоочищення URL** — видаляє трекінгові параметри (`si`, `pp`, `utm_*`, `fbclid`, `gclid`) і розгортає посилання `youtube.com/redirect` - **Режим трею** — закриття вікна залишає завантаження працювати у фоні -- **9 мов** — автоматично визначає мову системи, перемикається будь-коли +- **21 мова** — автоматично визначає мову системи, перемикається будь-коли ### Субтитри та постобробка @@ -219,7 +219,7 @@ flatpak run io.github.antonio_orionus.Arroxy Завантаження виконуються безпосередньо через [yt-dlp](https://github.com/yt-dlp/yt-dlp) з YouTube у вибрану вами теку — нічого не маршрутизується через сторонні сервери. Історія перегляду, історія завантажень, URL та вміст файлів залишаються на вашому пристрої. -Arroxy надсилає анонімну агрегатну телеметрію через [TelemetryDeck](https://telemetrydeck.com) — рівно стільки, щоб інді-проєкт міг побачити, чи ним взагалі користуються (запуски, OS, версія застосунку, збої). Без URL, без назв відео, без шляхів до файлів, без інформації про акаунт. Ідентифікатор установки хешується перед відправкою, а TelemetryDeck ніколи не зберігає IPs — розміщено в EU і за задумом дружній до GDPR. Ви можете відмовитися в Налаштуваннях. +Arroxy надсилає анонімну агрегатну телеметрію через [OpenPanel](https://openpanel.dev) — рівно стільки, щоб розуміти запуски, OS, версії застосунку та збої. Без URL, назв відео, шляхів до файлів, даних акаунта, fingerprinting чи персональних даних. ID установки випадковий і не пов’язаний із вашою особою. Можна вимкнути в Налаштуваннях. --- @@ -241,10 +241,10 @@ Arroxy надсилає анонімну агрегатну телеметрію Два рівні стійкості: yt-dlp оновлюється протягом годин після змін YouTube, а Arroxy не залежить від кук, що спливають кожні ~30 хвилин. Це робить його помітно стабільнішим за інструменти, що покладаються на експортовані браузерні сесії. **Якими мовами доступний Arroxy?** -Дев'ятьма: English, Español, Deutsch, Français, 日本語, 中文, Русский, Українська, हिन्दी. Автоматично визначає мову системи; перемикайтесь будь-коли через панель інструментів. Файли локалізації — прості TypeScript-об'єкти у `src/shared/i18n/locales/` — [PR вітаються](../../pulls). +Двадцятьма однією, з коробки: English, Español (іспанська), Deutsch (німецька), Français (французька), 日本語 (японська), 中文 (китайська), Русский (російська), Українська, हिन्दी (хінді), Afaan Oromoo (оромо), Kiswahili (суахілі), O'zbekcha (узбецька), Tiếng Việt (в'єтнамська), አማርኛ (амхарська), العربية (арабська), اردو (урду), پښتو (пашто), বাংলা (бенгальська), မြန်မာဘာသာ (бірманська), Ελληνικά (грецька) і Српски (сербська). Arroxy автоматично визначає мову операційної системи при першому запуску, і ви можете перемикнутися будь-коли через вибір мови в панелі інструментів. Файли локалізації — прості TypeScript-об'єкти у src/shared/i18n/locales/ — відкрийте PR на GitHub, щоб зробити внесок. **Чи потрібно щось встановлювати додатково?** -Ні. yt-dlp і ffmpeg завантажуються автоматично при першому запуску з їхніх офіційних GitHub releases і кешуються локально. +Ні. yt-dlp автоматично завантажується при першому запуску й кешується на вашій машині; ffmpeg і ffprobe постачаються разом із застосунком. Після цього жодних додаткових налаштувань не потрібно. **Чи можна завантажувати плейлисти або цілі канали?** Так, для плейлистів: встав URL плейлиста, а потім додай у чергу весь список або лише вибрані відео. Пакетне завантаження цілих каналів поки не підтримується. @@ -282,7 +282,7 @@ Arroxy надсилає анонімну агрегатну телеметрію - **React 19** + **TypeScript** — інтерфейс - **Tailwind CSS v4** — стилізація - **Zustand** — керування станом -- **yt-dlp** + **ffmpeg** — рушій завантаження та мультиплексування (завантажується з GitHub при першому запуску, завжди актуальний) +- **yt-dlp** + **ffmpeg** — рушій завантаження та мультиплексування (yt-dlp отримується під час роботи; ffmpeg/ffprobe вбудовуються під час збірки) - **Vite** + **electron-vite** — збірка - **Vitest** + **Playwright** — модульні та наскрізні тести @@ -342,7 +342,7 @@ bun run dist # пакування для поточної ОС bun run dist:win # крос-компіляція Windows portable exe ``` -> yt-dlp і ffmpeg не входять до комплекту — вони завантажуються з GitHub при першому запуску та кешуються у вашій папці даних застосунку. +> yt-dlp завантажується з GitHub при першому запуску й кешується в папці даних застосунку. ffmpeg і ffprobe входять до кожного релізу Arroxy. diff --git a/README.ur.md b/README.ur.md index 70eaa679..3546caa5 100644 --- a/README.ur.md +++ b/README.ur.md @@ -89,7 +89,7 @@ Arroxy ایک ہی کام کے لیے بنایا گیا ہے: URL پیسٹ کر - **کلپ بورڈ واچ** — YouTube لنک کاپی کریں اور جب آپ ایپ پر واپس آئیں تو Arroxy خود بخود URL بھر دیتا ہے (ایڈوانسڈ سیٹنگز میں ٹوگل کریں) - **خودکار صاف URLs** — ٹریکنگ پیرامیٹرز (`si`، `pp`، `utm_*`، `fbclid`، `gclid`) کو ہٹاتا ہے اور `youtube.com/redirect` لنکس کو کھولتا ہے - **ٹرے موڈ** — ونڈو بند کرنے سے ڈاؤن لوڈز پس منظر میں چلتے رہتے ہیں -- **9 زبانیں** — سسٹم لوکیل کو خود بخود پہچانتا ہے، کسی بھی وقت تبدیل کیا جا سکتا ہے +- **21 زبانیں** — سسٹم لوکیل کو خود بخود پہچانتا ہے، کسی بھی وقت تبدیل کیا جا سکتا ہے ### سب ٹائٹلز اور پوسٹ پراسیسنگ @@ -219,7 +219,7 @@ flatpak run io.github.antonio_orionus.Arroxy ڈاؤن لوڈز [yt-dlp](https://github.com/yt-dlp/yt-dlp) کے ذریعے براہ راست YouTube سے آپ کے منتخب کردہ فولڈر میں آتے ہیں — کسی تھرڈ پارٹی سرور سے نہیں گزرتے۔ دیکھنے کی تاریخ، ڈاؤن لوڈ تاریخ، URLs اور فائل کے مواد آپ کے ڈیوائس پر ہی رہتے ہیں۔ -Arroxy [TelemetryDeck](https://telemetrydeck.com) کے ذریعے گمنام، اجتماعی ٹیلی میٹری بھیجتا ہے — صرف اتنی کہ ایک انڈی پروجیکٹ یہ دیکھ سکے کہ کوئی واقعی اسے استعمال کر رہا ہے یا نہیں (لانچز، OS، ایپ ورژن، کریشز)۔ کوئی URLs نہیں، کوئی ویڈیو ٹائٹلز نہیں، کوئی فائل پاتھز نہیں، کوئی اکاؤنٹ کی معلومات نہیں۔ فی انسٹال ID کو بھیجنے سے پہلے ہیش کیا جاتا ہے اور TelemetryDeck کبھی IPs محفوظ نہیں کرتا — EU میں ہوسٹڈ اور بنیادی ڈیزائن کے لحاظ سے GDPR دوستانہ ہے۔ آپ Settings میں اسے بند کر سکتے ہیں۔ +Arroxy [OpenPanel](https://openpanel.dev) کے ذریعے گمنام، مجموعی ٹیلی میٹری بھیجتا ہے — صرف اتنی کہ لانچز، OS، ایپ ورژنز اور کریشز سمجھ آ سکیں۔ کوئی URLs، ویڈیو ٹائٹلز، فائل پاتھز، اکاؤنٹ معلومات، fingerprinting یا ذاتی ڈیٹا نہیں۔ ہر انسٹال کا ID رینڈم ہے اور آپ کی شناخت سے منسلک نہیں۔ آپ Settings میں اسے بند کر سکتے ہیں۔ --- @@ -241,10 +241,10 @@ Arroxy [TelemetryDeck](https://telemetrydeck.com) کے ذریعے گمنام، لچک کی دو پرتیں ہیں: yt-dlp YouTube کی تبدیلیوں کے گھنٹوں کے اندر اپ ڈیٹ ہو جاتا ہے، اور Arroxy ان کوکیز پر انحصار نہیں کرتا جو ہر ~30 منٹ میں ختم ہو جاتی ہیں۔ یہ اسے ایکسپورٹ شدہ براؤزر سیشنز پر منحصر ٹولز سے نمایاں طور پر زیادہ مستحکم بناتا ہے۔ **Arroxy کن زبانوں میں دستیاب ہے؟** -دس: English، Español، Deutsch، Français، 日本語، 中文، Русский، Українська، हिन्दी، اردو۔ آپ کی سسٹم زبان کو خود بخود پہچانتا ہے؛ ٹول بار سے کسی بھی وقت تبدیل کریں۔ لوکیل فائلیں `src/shared/i18n/locales/` میں سادہ TypeScript آبجیکٹس ہیں — [PRs کا خیر مقدم ہے](../../pulls)۔ +اکیس، باکس سے باہر: English، Español (ہسپانوی)، Deutsch (جرمن)، Français (فرانسیسی)، 日本語 (جاپانی)، 中文 (چینی)، Русский (روسی)، Українська (یوکرینی)، हिन्दी (ہندی)، Afaan Oromoo، Kiswahili، O'zbekcha (ازبک)، Tiếng Việt (ویتنامی)، አማርኛ (امہاری)، العربية (عربی)، اردو، پښتو (پشتو)، বাংলা (بنگالی)، မြန်မာဘာသာ (برمی)، Ελληνικά (یونانی)، اور Српски (صربی)۔ Arroxy پہلی بار لانچ پر آپ کے آپریٹنگ سسٹم کی زبان خود بخود پہچان لیتا ہے اور آپ ٹول بار میں زبان منتخب کرنے والے سے کسی بھی وقت تبدیل کر سکتے ہیں۔ ترجمے src/shared/i18n/locales/ میں سادہ TypeScript آبجیکٹس کے طور پر موجود ہیں — حصہ ڈالنے کے لیے GitHub پر PR کھولیں۔ **کیا مجھے کچھ اور انسٹال کرنا ہوگا؟** -نہیں۔ yt-dlp اور ffmpeg پہلی بار لانچ پر اپنی آفیشل GitHub releases سے خود بخود ڈاؤن لوڈ ہو کر مقامی طور پر کیش ہو جاتے ہیں۔ +نہیں۔ yt-dlp پہلی بار لانچ پر خود بخود ڈاؤن لوڈ ہو کر آپ کی مشین پر کیش ہو جاتا ہے؛ ffmpeg اور ffprobe ایپ کے ساتھ آتے ہیں۔ اس کے بعد کسی اضافی سیٹ اپ کی ضرورت نہیں۔ **کیا میں پلے لسٹس یا پورے چینلز ڈاؤن لوڈ کر سکتا ہوں؟** جی ہاں، playlists کے لیے: playlist URL پیسٹ کریں، پھر پوری فہرست یا صرف منتخب ویڈیوز کو قطار میں شامل کریں۔ پورے channel کی batch downloads ابھی سپورٹڈ نہیں ہیں۔ @@ -282,7 +282,7 @@ Arroxy [TelemetryDeck](https://telemetrydeck.com) کے ذریعے گمنام، - **React 19** + **TypeScript** — UI - **Tailwind CSS v4** — اسٹائلنگ - **Zustand** — اسٹیٹ مینجمنٹ -- **yt-dlp** + **ffmpeg** — ڈاؤن لوڈ اور مکس انجن (پہلی بار چلانے پر GitHub سے حاصل کیا جاتا ہے، ہمیشہ اپ ٹو ڈیٹ) +- **yt-dlp** + **ffmpeg** — ڈاؤن لوڈ اور مکس انجن (yt-dlp runtime پر حاصل ہوتا ہے؛ ffmpeg/ffprobe build time پر بنڈل ہوتے ہیں) - **Vite** + **electron-vite** — بلڈ ٹولنگ - **Vitest** + **Playwright** — یونٹ اور اینڈ ٹو اینڈ ٹیسٹ @@ -342,7 +342,7 @@ bun run dist # موجودہ OS کے لیے پیکج bun run dist:win # Windows پورٹیبل exe کراس کمپائل ``` -> yt-dlp اور ffmpeg بنڈل نہیں ہیں — یہ پہلی بار چلانے پر GitHub سے حاصل ہو کر آپ کے ایپ ڈیٹا فولڈر میں کیش ہو جاتے ہیں۔ +> yt-dlp پہلی بار لانچ پر GitHub سے حاصل ہو کر آپ کے ایپ ڈیٹا فولڈر میں کیش ہوتا ہے۔ ffmpeg اور ffprobe ہر Arroxy ریلیز کے ساتھ بنڈل ہوتے ہیں۔ diff --git a/README.uz.md b/README.uz.md index 07bc3197..807d3024 100644 --- a/README.uz.md +++ b/README.uz.md @@ -87,7 +87,7 @@ YouTube bot aniqlashini yangilaganda, ko'pchilik vositalar sizdan muammo yechimi - **Bufer kuzatish** — YouTube havolasini nusxalang va Arroxy ilovaga qaytganingizda URL'ni avtomatik to'ldiradi (Kengaytirilgan sozlamalarda o'chirish/yoqish mumkin) - **URL'larni avtomatik tozalash** — kuzatish parametrlarini olib tashlaydi (`si`, `pp`, `utm_*`, `fbclid`, `gclid`) va `youtube.com/redirect` havolalarini ochadi - **Tray rejimi** — oynani yopish yuklamalarni fon rejimida davom ettiradi -- **9 til** — tizim tilini avtomatik aniqlaydi, istalgan vaqt almashtirish mumkin +- **21 til** — tizim tilini avtomatik aniqlaydi, istalgan vaqt almashtirish mumkin ### Subtitrlar va keyingi qayta ishlash @@ -217,7 +217,7 @@ flatpak run io.github.antonio_orionus.Arroxy Yuklamalar YouTube'dan siz tanlagan papkaga to'g'ridan-to'g'ri [yt-dlp](https://github.com/yt-dlp/yt-dlp) orqali olinadi — hech narsa uchinchi tomon server orqali yo'naltirilmaydi. Ko'rish tarixi, yuklab olish tarixi, URL'lar va fayl mazmunlari qurilmangizda qoladi. -Arroxy [TelemetryDeck](https://telemetrydeck.com) orqali anonim, agregat telemetriya yuboradi — faqat mustaqil loyiha uchun kimdir uni haqiqatan ham ishlatayotganini ko'rish uchun yetarli (ishga tushirishlar, OS, ilova versiyasi, nosozliklar). URLs yo'q, video sarlavhalari yo'q, fayl yo'llari yo'q, hisob ma'lumotlari yo'q. Har bir o'rnatma IDsi yuborishdan oldin xeshlanadi va TelemetryDeck hech qachon IPs saqlamaydi — EU-da joylashgan va dizayni bo'yicha GDPR ga mos keladi. Sozlamalarda o'chirib qo'yishingiz mumkin. +Arroxy [OpenPanel](https://openpanel.dev) orqali anonim, agregat telemetriya yuboradi — ishga tushirishlar, OS, ilova versiyalari va nosozliklarni tushunish uchun yetarli. URL, video sarlavhasi, fayl yo‘li, hisob ma’lumoti, fingerprinting yoki shaxsiy ma’lumot yo‘q. Har bir o‘rnatish IDsi tasodifiy va shaxsingizga bog‘lanmagan. Sozlamalarda o‘chirib qo‘yishingiz mumkin. --- @@ -239,10 +239,10 @@ Yo'q. Arroxy faqat YouTube har qanday brauzerga uzatadigan ommaviy tokenlardan f Ikki qavatli chidamlilik: yt-dlp YouTube o'zgarishlaridan bir necha soat ichida yangilanadi, Arroxy esa har ~30 daqiqada muddati tugaydigan kukilarga tayanmaydi. Bu uni eksport qilingan brauzer seanslariga bog'liq vositalardan sezilarli darajada barqarorroq qiladi. **Arroxy qanday tillarda mavjud?** -To'qqizta: English, Español, Deutsch, Français, 日本語, 中文, Русский, Українська, हिन्दी. Tizim tilini avtomatik aniqlaydi; istalgan vaqt asboblar panelidan almashtiring. Lokalizatsiya fayllari `src/shared/i18n/locales/` dagi oddiy TypeScript ob'ektlari — [PR'lar mamnuniyat bilan qabul qilinadi](../../pulls). +Yigirma bir, darhol tayyor: English, Español (ispan), Deutsch (nemis), Français (frantsuz), 日本語 (yapon), 中文 (xitoy), Русский (rus), Українська (ukrain), हिन्दी (hind), Afaan Oromoo, Kiswahili, O'zbekcha (o'zbek), Tiếng Việt (vyetnam), አማርኛ (amxar), العربية (arab), اردو (urdu), پښتو (pushtu), বাংলা (bengal), မြန်မာဘာသာ (birma), Ελληνικά (grek) va Српски (serb). Arroxy birinchi ishga tushirishda operatsion tizimingiz tilini avtomatik aniqlaydi va siz istalgan vaqtda asboblar panelindagi til tanlagichidan o'zgartirishingiz mumkin. Tarjimalar src/shared/i18n/locales/ ichidagi oddiy TypeScript obyektlari sifatida saqlanadi — hissa qo'shish uchun GitHub'da PR oching. **Boshqa narsalarni o'rnatishim kerakmi?** -Yo'q. yt-dlp va ffmpeg birinchi ishga tushirishda rasmiy GitHub relizlaridan avtomatik yuklab olinadi va mahalliy keshlanadi. +Yo‘q. yt-dlp birinchi ishga tushirishda avtomatik yuklab olinadi va kompyuteringizda keshlanadi; ffmpeg va ffprobe ilova bilan birga keladi. Undan keyin qo‘shimcha sozlash shart emas. **Playlist yoki butun kanallarni yuklab olishim mumkinmi?** Ha, playlistlar uchun: playlist URL manzilini joylang, keyin butun ro‘yxatni yoki faqat tanlagan videolaringizni navbatga qo‘shing. Butun kanalni to‘plam holida yuklab olish hali qo‘llab-quvvatlanmaydi. @@ -280,7 +280,7 @@ Xayyolizda xususiyat bormi? [So'rov yuboring](../../issues) — jamiyat ishtirok - **React 19** + **TypeScript** — UI - **Tailwind CSS v4** — stilizatsiya - **Zustand** — holat boshqaruvi -- **yt-dlp** + **ffmpeg** — yuklab olish va mux mexanizmi (birinchi ishga tushirishda GitHubdan yuklab olinadi, har doim dolzarb) +- **yt-dlp** + **ffmpeg** — yuklab olish va mux mexanizmi (yt-dlp runtime’da olinadi; ffmpeg/ffprobe build vaqtida qo‘shiladi) - **Vite** + **electron-vite** — qurish vositalari - **Vitest** + **Playwright** — birlik va uchdan-uchgacha testlar @@ -340,7 +340,7 @@ bun run dist # joriy OT uchun paketlash bun run dist:win # Windows portable exe ni cross-kompilyatsiya qilish ``` -> yt-dlp va ffmpeg paketga kiritilmagan — ular birinchi ishga tushirishda rasmiy GitHub relizlaridan yuklab olinadi va mahalliy keshlanadi. +> yt-dlp birinchi ishga tushirishda GitHub’dan olinadi va ilova ma’lumotlari papkasida keshlanadi. ffmpeg va ffprobe har bir Arroxy relizi bilan birga keladi. diff --git a/README.vi.md b/README.vi.md index 7ff16dff..81986b93 100644 --- a/README.vi.md +++ b/README.vi.md @@ -87,7 +87,7 @@ Khi YouTube cập nhật hệ thống phát hiện bot, hầu hết các công c - **Theo dõi clipboard** — sao chép liên kết YouTube và Arroxy tự điền URL khi bạn chuyển lại ứng dụng (bật/tắt trong Cài đặt nâng cao) - **Tự làm sạch URL** — loại bỏ các tham số theo dõi (`si`, `pp`, `utm_*`, `fbclid`, `gclid`) và mở gói các liên kết `youtube.com/redirect` - **Chế độ khay hệ thống** — đóng cửa sổ vẫn tiếp tục tải xuống ở nền -- **9 ngôn ngữ** — tự động phát hiện ngôn ngữ hệ thống, có thể đổi bất cứ lúc nào +- **21 ngôn ngữ** — tự động phát hiện ngôn ngữ hệ thống, có thể đổi bất cứ lúc nào ### Phụ đề & hậu xử lý @@ -217,7 +217,7 @@ flatpak run io.github.antonio_orionus.Arroxy Tải xuống được lấy trực tiếp qua [yt-dlp](https://github.com/yt-dlp/yt-dlp) từ YouTube đến thư mục bạn chọn — không có gì đi qua máy chủ bên thứ ba. Lịch sử xem, lịch sử tải xuống, URL và nội dung file vẫn ở trên thiết bị của bạn. -Arroxy gửi telemetry ẩn danh, tổng hợp qua [TelemetryDeck](https://telemetrydeck.com) — vừa đủ để một dự án indie biết có ai đang thực sự dùng hay không (số lần khởi động, OS, phiên bản ứng dụng, sự cố). Không có URLs, không có tiêu đề video, không có đường dẫn file, không có thông tin tài khoản. ID cài đặt được băm trước khi gửi và TelemetryDeck không bao giờ lưu IPs — được lưu trữ tại EU và thân thiện GDPR theo thiết kế. Bạn có thể từ chối trong Cài đặt. +Arroxy gửi telemetry ẩn danh, tổng hợp qua [OpenPanel](https://openpanel.dev) — vừa đủ để hiểu lượt khởi động, OS, phiên bản ứng dụng và sự cố. Không có URL, tiêu đề video, đường dẫn tệp, thông tin tài khoản, fingerprinting hay dữ liệu cá nhân. ID cho mỗi lần cài đặt là ngẫu nhiên và không gắn với danh tính của bạn. Bạn có thể tắt trong Cài đặt. --- @@ -239,10 +239,10 @@ Không. Arroxy chỉ sử dụng các token công khai mà YouTube cung cấp ch Hai lớp bảo vệ: yt-dlp cập nhật trong vòng vài giờ sau khi YouTube thay đổi, và Arroxy không phụ thuộc vào cookie hết hạn sau ~30 phút. Điều này khiến nó ổn định hơn đáng kể so với các công cụ phụ thuộc vào phiên trình duyệt đã xuất. **Arroxy có sẵn bằng những ngôn ngữ nào?** -Chín ngôn ngữ: English, Español, Deutsch, Français, 日本語, 中文, Русский, Українська, हिन्दी. Tự động phát hiện ngôn ngữ hệ thống; có thể đổi bất cứ lúc nào từ thanh công cụ. Các file locale là các đối tượng TypeScript thuần túy trong `src/shared/i18n/locales/` — [PR luôn được chào đón](../../pulls). +Hai mươi mốt ngôn ngữ, có sẵn ngay khi cài đặt: English, Español (Tây Ban Nha), Deutsch (Đức), Français (Pháp), 日本語 (Nhật), 中文 (Trung Quốc), Русский (Nga), Українська (Ukraine), हिन्दी (Hindi), Afaan Oromoo, Kiswahili, O'zbekcha (Uzbek), Tiếng Việt (Việt Nam), አማርኛ (Amharic), العربية (Ả Rập), اردو (Urdu), پښتو (Pashto), বাংলা (Bengali), မြန်မာဘာသာ (Miến Điện), Ελληνικά (Hy Lạp) và Српски (Serbia). Arroxy tự động phát hiện ngôn ngữ hệ điều hành của bạn khi khởi động lần đầu và bạn có thể chuyển đổi bất cứ lúc nào từ bộ chọn ngôn ngữ trên thanh công cụ. Các bản dịch được lưu dưới dạng đối tượng TypeScript thuần trong src/shared/i18n/locales/ — mở PR trên GitHub để đóng góp. **Tôi có cần cài đặt thêm gì không?** -Không. yt-dlp và ffmpeg được tải xuống tự động khi khởi động lần đầu từ các bản phát hành GitHub chính thức của chúng và lưu vào bộ nhớ đệm cục bộ. +Không. yt-dlp được tải xuống tự động khi khởi động lần đầu và được lưu vào bộ nhớ đệm trên máy của bạn; ffmpeg và ffprobe đi kèm với ứng dụng. Sau đó, không cần thiết lập thêm gì. **Tôi có thể tải xuống danh sách phát hoặc toàn bộ kênh không?** Có, với playlist: dán URL playlist rồi xếp hàng toàn bộ danh sách hoặc chỉ những video bạn chọn. Tải hàng loạt cả kênh vẫn chưa được hỗ trợ. @@ -280,7 +280,7 @@ Bạn có ý tưởng tính năng? [Mở yêu cầu](../../issues) — ý kiến - **React 19** + **TypeScript** — UI - **Tailwind CSS v4** — tạo kiểu - **Zustand** — quản lý trạng thái -- **yt-dlp** + **ffmpeg** — công cụ tải xuống và ghép luồng (lấy từ GitHub khi khởi động lần đầu, luôn cập nhật) +- **yt-dlp** + **ffmpeg** — công cụ tải xuống và ghép luồng (yt-dlp được lấy lúc chạy; ffmpeg/ffprobe được đóng gói khi build) - **Vite** + **electron-vite** — công cụ build - **Vitest** + **Playwright** — kiểm thử đơn vị và end-to-end @@ -340,7 +340,7 @@ bun run dist # đóng gói cho OS hiện tại bun run dist:win # biên dịch chéo Windows portable exe ``` -> yt-dlp và ffmpeg không được đóng gói sẵn — chúng được tải từ GitHub khi khởi động lần đầu và lưu vào thư mục dữ liệu ứng dụng của bạn. +> yt-dlp được lấy từ GitHub khi khởi động lần đầu và lưu trong thư mục dữ liệu ứng dụng. ffmpeg và ffprobe được đóng gói trong mọi bản phát hành Arroxy. diff --git a/README.zh.md b/README.zh.md index d21ce1e3..cdffc51f 100644 --- a/README.zh.md +++ b/README.zh.md @@ -89,7 +89,7 @@ Arroxy 只做一件事:粘贴链接,获取干净的本地文件。无账号 - **剪贴板监控** — 复制 YouTube 链接后切回应用,Arroxy 自动填入 URL(可在高级设置中切换) - **自动清理 URL** — 剥除跟踪参数(`si`、`pp`、`utm_*`、`fbclid`、`gclid`)并解包 `youtube.com/redirect` 跳转链接 - **托盘模式** — 关闭窗口后下载在后台继续运行 -- **9 种语言** — 自动检测系统语言,随时切换 +- **21 种语言** — 自动检测系统语言,随时切换 ### 字幕与后处理 @@ -219,7 +219,7 @@ flatpak run io.github.antonio_orionus.Arroxy 下载通过 [yt-dlp](https://github.com/yt-dlp/yt-dlp) 直接从 YouTube 获取到你选择的文件夹 — 不经过任何第三方服务器。观看历史、下载历史、URL 和文件内容均保留在你的设备上。 -Arroxy 通过 [TelemetryDeck](https://telemetrydeck.com) 发送匿名聚合遥测数据 — 仅够独立项目了解是否有人在使用(启动次数、OS、应用版本、崩溃)。无 URLs、无视频标题、无文件路径、无账号信息。每次安装的 ID 在发送前经过哈希处理,TelemetryDeck 从不存储 IPs — 在 EU 托管,设计上符合 GDPR。你可以在设置中选择退出。 +Arroxy 通过 [OpenPanel](https://openpanel.dev) 发送匿名聚合遥测数据 — 仅用于了解启动次数、OS、应用版本和崩溃。无 URL、无视频标题、无文件路径、无账号信息、无指纹识别、无个人数据。每次安装的 ID 是随机的,不与你的身份绑定。你可以在设置中选择退出。 --- @@ -241,10 +241,10 @@ YouTube 提供的都行:4K UHD(2160p)、1440p、1080p、720p、480p、360p 两层保障:yt-dlp 在 YouTube 变化后数小时内更新,而 Arroxy 不依赖每 ~30 分钟就会过期的 Cookie。这使它比依赖导出浏览器会话的工具稳定得多。 **Arroxy 支持哪些语言?** -九种:English、Español、Deutsch、Français、日本語、中文、Русский、Українська、हिन्दी。自动检测系统语言;随时可从工具栏切换。语言文件是 `src/shared/i18n/locales/` 中的纯 TypeScript 对象 — [欢迎提交 PR](../../pulls)。 +开箱即用支持二十一种:English、Español(西班牙语)、Deutsch(德语)、Français(法语)、日本語(日语)、中文、Русский(俄语)、Українська(乌克兰语)、हिन्दी(印地语)、Afaan Oromoo、Kiswahili、O'zbekcha(乌兹别克语)、Tiếng Việt(越南语)、አማርኛ(阿姆哈拉语)、العربية(阿拉伯语)、اردو(乌尔都语)、پښتو(普什图语)、বাংলা(孟加拉语)、မြန်မာဘာသာ(缅甸语)、Ελληνικά(希腊语)和 Српски(塞尔维亚语)。Arroxy 在首次启动时自动检测系统语言,随时可在工具栏的语言选择器中切换。翻译以纯 TypeScript 对象的形式存放在 src/shared/i18n/locales/ — 在 GitHub 上发个 PR 即可贡献。 **需要额外安装其他软件吗?** -不需要。yt-dlp 和 ffmpeg 在首次启动时自动从其官方 GitHub releases 下载并缓存到本地。 +不需要。yt-dlp 会在首次启动时自动下载并缓存到你的机器上;ffmpeg 和 ffprobe 随应用一起提供。之后无需任何额外配置。 **能下载播放列表或整个频道吗?** 播放列表可以:粘贴播放列表链接后,可以把整个列表加入队列,也可以只加入你选中的视频。整频道批量下载暂未支持。 @@ -282,7 +282,7 @@ YouTube 提供的都行:4K UHD(2160p)、1440p、1080p、720p、480p、360p - **React 19** + **TypeScript** — UI - **Tailwind CSS v4** — 样式 - **Zustand** — 状态管理 -- **yt-dlp** + **ffmpeg** — 下载与混流引擎(首次启动时从 GitHub 自动获取,始终保持最新) +- **yt-dlp** + **ffmpeg** — 下载与混流引擎(yt-dlp 在运行时获取;ffmpeg/ffprobe 在构建时打包) - **Vite** + **electron-vite** — 构建工具 - **Vitest** + **Playwright** — 单元测试与端到端测试 @@ -342,7 +342,7 @@ bun run dist # 为当前系统打包 bun run dist:win # 交叉编译 Windows 便携版 exe ``` -> yt-dlp 和 ffmpeg 不随包附带 — 它们在首次启动时从 GitHub 获取并缓存到你的应用数据目录。 +> yt-dlp 会在首次启动时从 GitHub 获取并缓存到你的应用数据目录。ffmpeg 和 ffprobe 随每个 Arroxy 版本一起提供。 diff --git a/build/beforeBuild.cjs b/build/beforeBuild.cjs new file mode 100644 index 00000000..e8844f14 --- /dev/null +++ b/build/beforeBuild.cjs @@ -0,0 +1,23 @@ +// electron-builder lifecycle hook. Fires once per (platform, arch) the build +// targets. Invokes scripts/build/fetch-embedded.sh to populate +// build/embedded/-/{ffmpeg, ffprobe}[.exe] before the +// extraResources copy step packs them into the artifact. +const { execFileSync } = require('node:child_process'); +const path = require('node:path'); + +// electron-builder Arch enum: 0=ia32, 1=x64, 2=armv7l, 3=arm64 +const ARCH_NAMES = ['ia32', 'x64', 'armv7l', 'arm64']; + +exports.default = async function beforeBuild(context) { + const platform = context.platform.nodeName; // 'win32' | 'darwin' | 'linux' + const archName = ARCH_NAMES[context.arch] ?? 'x64'; + const cwd = context.appDir ?? process.cwd(); + const script = path.join(cwd, 'scripts', 'build', 'fetch-embedded.sh'); + console.log(`[beforeBuild] fetch ffmpeg/ffprobe for ${platform}-${archName}`); + execFileSync('bash', [script, platform, archName], { stdio: 'inherit', cwd }); + // Returning falsy here makes electron-builder treat node_modules as + // "handled externally" and skip the prod-deps install/copy entirely + // (app-builder-lib/out/packager.js — _nodeModulesHandledExternally), + // which produces an asar with zero node_modules. + return true; +}; diff --git a/bun.lock b/bun.lock index f4427701..94cdaa49 100644 --- a/bun.lock +++ b/bun.lock @@ -4,12 +4,12 @@ "": { "name": "arroxy", "dependencies": { - "@aptabase/electron": "^0.3.1", "@base-ui/react": "^1.4.1", "@fontsource-variable/geist": "^5.2.8", "@fontsource/jetbrains-mono": "^5.2.8", "@fontsource/outfit": "^5.2.8", "@fontsource/poppins": "^5.2.7", + "@openpanel/sdk": "^1.3.1", "@tanstack/react-virtual": "^3.13.24", "@testing-library/dom": "^10.4.1", "class-variance-authority": "^0.7.1", @@ -74,8 +74,6 @@ "@adobe/css-tools": ["@adobe/css-tools@4.4.4", "", {}, "sha512-Elp+iwUx5rN5+Y8xLt5/GRoG20WGoDCQ/1Fb+1LiGtvwbDavuSk0jhD/eZdckHAuzcDzccnkv+rEjyWfRx18gg=="], - "@aptabase/electron": ["@aptabase/electron@0.3.1", "", { "peerDependencies": { "electron": ">= 3.x" } }, "sha512-FECaGsjuoQu70F+M6V1evdgLP7yaq/sne9fC60AZZ6B9RsCDlxFBnJzdq3+xevHlUx6AB5o9ygUhQ+ONT9EqiA=="], - "@asamuzakjp/css-color": ["@asamuzakjp/css-color@5.1.11", "", { "dependencies": { "@asamuzakjp/generational-cache": "^1.0.1", "@csstools/css-calc": "^3.2.0", "@csstools/css-color-parser": "^4.1.0", "@csstools/css-parser-algorithms": "^4.0.0", "@csstools/css-tokenizer": "^4.0.0" } }, "sha512-KVw6qIiCTUQhByfTd78h2yD1/00waTmm9uy/R7Ck/ctUyAPj+AEDLkQIdJW0T8+qGgj3j5bpNKK7Q3G+LedJWg=="], "@asamuzakjp/dom-selector": ["@asamuzakjp/dom-selector@7.1.1", "", { "dependencies": { "@asamuzakjp/generational-cache": "^1.0.1", "@asamuzakjp/nwsapi": "^2.3.9", "bidi-js": "^1.0.3", "css-tree": "^3.2.1", "is-potential-custom-element-name": "^1.0.1" } }, "sha512-67RZDnYRc8H/8MLDgQCDE//zoqVFwajkepHZgmXrbwybzXOEwOWGPYGmALYl9J2DOLfFPPs6kKCqmbzV895hTQ=="], @@ -340,6 +338,8 @@ "@open-draft/until": ["@open-draft/until@2.1.0", "", {}, "sha512-U69T3ItWHvLwGg5eJ0n3I62nWuE6ilHlmz7zM0npLBRvPRd7e6NYmg54vvRtP5mZG7kZqZCFVdsTWo7BPtBujg=="], + "@openpanel/sdk": ["@openpanel/sdk@1.3.1", "", {}, "sha512-mQ5xaBUGXnyRg3qYxwnbVaUYyW7w8u+munrWk/ClnqxEeR2j+FYPiA6noHbHMCFC2aZutYD5OoRzEvw3FBNFxw=="], + "@oxc-parser/binding-android-arm-eabi": ["@oxc-parser/binding-android-arm-eabi@0.128.0", "", { "os": "android", "cpu": "arm" }, "sha512-aca6ZvzmCBUGOANQRiRQRZuRKYI3ENhcit6GisnknOOmcezfQc7xJ4dxlPU7MV7mOvrC7RNR1u3LAD7xyaiCxA=="], "@oxc-parser/binding-android-arm64": ["@oxc-parser/binding-android-arm64@0.128.0", "", { "os": "android", "cpu": "arm64" }, "sha512-BbeDmuohoJ7Rz/it5wnkj69i/OsCPS3Z51nLEzwO/Y6YshtC4JU+15oNwhY8v4LRKRYclRc7ggOikwrsJ/eOEQ=="], diff --git a/components.json b/components.json index 0ac0e088..42a5d5ea 100644 --- a/components.json +++ b/components.json @@ -11,7 +11,7 @@ "prefix": "" }, "iconLibrary": "lucide", - "rtl": false, + "rtl": true, "aliases": { "components": "@renderer/components", "utils": "@renderer/lib/utils", diff --git a/docs/am/index.html b/docs/am/index.html index 4e069499..f4ff930d 100644 --- a/docs/am/index.html +++ b/docs/am/index.html @@ -72,7 +72,18 @@ - + + + +