* feat(download): add log capture and file actions
* fix(ci): update ffmpeg download source
* fix(ci): consolidate ffmpeg download source to yt-dlp repository
Update FFmpeg download URLs to use yt-dlp/FFmpeg-Builds as the primary source across all platforms and remove BtbN fallback repository reference.
* chore(docs): update rsshub documentation URLs to https://docs.rsshub.app/routes/
Update rsshub-related documentation URLs to use the official documentation base URL.
Changes:
- Update bilibili feed URL generation in subscription-service.ts
- Update RSSHub documentation link in SubscriptionFormDialog.tsx to point to docs.rsshub.app/routes/
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
* chore(i18n): remove placeholder URL from i18n, use hardcoded URL instead
Remove the placeholders.url entry from all locale files and hardcode the
example URL directly in the SubscriptionFormDialog component. The placeholder
URL is a technical example and doesn't need internationalization.
Changes:
- Hardcode placeholder URL in SubscriptionFormDialog: "https://docs.rsshub.app/routes/youtube/user/@FKJ"
- Remove placeholders.url entry from all 14 locale files
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
* fix(subscription): update bilibili rsshub url
---------
Co-authored-by: Claude Haiku 4.5 <noreply@anthropic.com>
* docs: add VidBee Docs suffix to all documentation page titles
Update the page title metadata generation to append "| VidBee Docs" to all documentation page titles for consistent branding across the site.
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
* docs: add canonical URLs to documentation pages
Add canonical URL metadata to all documentation pages to prevent search engine duplication issues and improve SEO rankings.
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
* feat(docs): add automatic sitemap
* fix(docs): align canonical base URL
* fix(docs): configure sitemap for static export
Add 'export const dynamic = "force-static"' to sitemap.ts to enable
static generation when using Next.js output: export mode. This fixes
the build error: "export const dynamic = 'force-static'/export const
revalidate not configured on route '/sitemap.xml'".
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
* chore(docs): add favicon and icon assets
Add favicons and app icons in various sizes for better browser
and platform support.
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
---------
Co-authored-by: Claude Haiku 4.5 <noreply@anthropic.com>
* Remove download started toast notifications
Remove the "download started" toast notifications from single video and playlist downloads, keeping only the one-click download notification. Also remove the corresponding unused translation strings from all 13 locale files.
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
* Restore oneClickDownloadStarted translation key in all locales
The oneClickDownloadStarted key is still referenced in the code when one-click downloads start, so it must be kept in all locale files.
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
* Translate feedback.title in all non-English locales
The feedback.title field was showing English text in all locale files. Updated to proper translations for each language.
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
---------
Co-authored-by: Claude Haiku 4.5 <noreply@anthropic.com>
* fix(docs): resolve TypeScript build errors and search configuration
Fix invalid LayoutProps type in [lang]/(docs)/layout.tsx to use proper Next.js 16 async layout component signature. Add type assertion in i18n.ts isLocale function to satisfy strict type checking. Configure search to use English indexing since Orama doesn't support Chinese.
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
* feat(docs): configure static export following Fumadocs guidelines
- Enable Next.js static export with output: 'export'
- Configure static search using staticGET and revalidate: false
- Update search UI to use type: 'static' for client-side search
- Add localeMap to support both English and Chinese locales
- Remove rewrites (incompatible with static export)
- Remove route handlers that conflict with static export:
- /llms.mdx route (file extension conflicts)
- /llms-full.txt route
- /og/docs OG image generation
- Add trailingSlash: true for better route handling
Build successfully generates 9 static pages (2.7MB total).
Search indexes are exported as static files for client-side use.
Reference: https://www.fumadocs.dev/docs/deploying/static
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
* fix(docs): resolve 404 issues in static export
- Change hideLocale from 'default-locale' to 'never' for static export
compatibility (middleware doesn't work in static builds)
- Add public/index.html to redirect root path to /en/
- Update middleware matcher to remove deleted route exclusions
- All pages now accessible with language prefix (/en/, /zh/)
This fixes the 404 issue where middleware-based rewrites don't work
in static exports. Now all URLs explicitly include the language code.
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
* feat(docs): serve English content at root path without redirect
- Restore hideLocale to 'default-locale' for cleaner URLs
- Add post-export script to copy /en/ content to root directory
- English pages now accessible at both / and /en/
- Chinese pages remain at /zh/
- Remove redirect page in favor of direct content serving
- Add "type": "module" to package.json for ES modules
This provides a better user experience by serving English content
directly at the root path (/, /cookies/, /faq/) without requiring
a redirect, while maintaining /en/ for explicit access.
Output size: 3.2MB (includes both root and /en/ copies)
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
---------
Co-authored-by: Claude Haiku 4.5 <noreply@anthropic.com>
* feat(download): add select all and clear history
* fix(download): remove clear all history action
* feat(download): clear selection on escape
* feat(download): select full playlist groups
* style(download): adjust playlist group spacing
- Introduced new secrets for macOS signing in the build workflow.
- Added validation to check for the presence of required secrets before proceeding with code signing setup.
- Updated electron-builder configuration to enable hardened runtime and notarization for macOS builds.
- Added a new GitHub Actions step to set up macOS signing with necessary certificates and keys.