Feature/streamlink integration - #35
Merged
Merged
Conversation
- Implement complete Streamlink integration for external media player support - Add External Players settings section with quality selection and custom arguments - Include context menu options in both StreamerInfo and ChatroomTab components - Cross-platform Streamlink detection (Windows, macOS, Linux) - Optimized low-latency streaming defaults - Proper text input styling consistency with existing settings UI - Support for all quality options including audio_only - VLC as default player with mpv and custom player support - Settings validation and error handling throughout - IPC handlers for secure main-renderer communication Fixes #25
…ility - Add automatic fallback from specific quality to "best" when quality unavailable - Fix race condition between spawn/exit events causing false timeouts - Improve success detection for long-running Streamlink processes - Increase timeout for fallback attempts (25s) vs initial (20s) - Remove quality display from context menus to avoid stale information - Update settings tooltip to mention automatic fallback behavior Resolves issue where selecting unavailable stream quality (e.g. 1080p60) would fail instead of falling back to available quality.
…n\n- Validate username slug in main before launching Streamlink\n- Default player to empty string for auto-detect\n- Subscribe to store updates in StreamerInfo and ChatroomTab\n- Disable quality dropdown when Streamlink is disabled\n- Gate enabling Streamlink with availability check + alert\n- Add Streamlink Path field with Refresh in Settings\n- Update tooltip/placeholder to reflect auto-detect default
…tall guidance This captures the addition of Streamlink availability detection, automatic disabling, user alerts, and the new install button in settings, improving the user experience for external player integration.
There was a problem hiding this comment.
Codex Review: Here are some suggestions.
Reply with @codex fix comments to fix any unresolved comments.
About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you open a pull request for review, mark a draft as ready, or comment "@codex review". If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex fix this CI failure" or "@codex address that feedback".
- Use spawnSync with --version to verify streamlink is actually available - Fixes false positive detection when streamlink not in PATH - Addresses Codex review feedback about availability gating
- Add windowsHide: true to spawn options to prevent scary black console window - Improves UX by eliminating virus-like appearance on Windows systems - Cross-platform safe (ignored on macOS/Linux) - Consistent with existing findStreamlink() implementation
- Resolved conflicts by keeping feature improvements - Preserves notification system, availability checks, and Windows terminal hiding - Incorporates latest changes from main branch
thedrkness
pushed a commit
that referenced
this pull request
Oct 6, 2025
* Fix cross-platform icon compatibility - Add cross-platform icon handling for Linux/macOS support - Convert Windows .ico to .png for non-Windows platforms - Update tray and thumbar icons to use platform-appropriate format Fixes application crashes on Linux due to unsupported .ico format 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * fix: add missing dependencies @lexical/text and lodash Resolves #35 - Add @lexical/text dependency required by Chat Input component - Add lodash dependency required by hooks utility - These dependencies were missing from package.json preventing compilation 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> --------- Co-authored-by: Claude <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Enhances the existing Streamlink integration with improved UX and better error handling:
• Native notifications: Replaces window.alert with Electron's native dialog system for better user experience
• Availability checks: Validates Streamlink installation before attempting to launch, with automatic fallback
• Install guidance: Adds direct Install Streamlink button in settings when not available
• Improved UI: Better placeholder text and error states
Changes Made
Notification System
utils:showNotificationIPC handler using Electron's nativedialog.showMessageBoxwindow.alertcalls with customizable native dialogs (warning type, custom titles)Streamlink Integration Improvements
Files Modified
src/main/index.js: Added notification IPC handler and Streamlink detection logicsrc/preload/index.js: AddedshowNotificationto utils APIsrc/renderer/src/components/Chat/StreamerInfo.jsx: Added availability checks and notificationssrc/renderer/src/components/Navbar/ChatroomTab.jsx: Added availability checks and notificationssrc/renderer/src/components/Dialogs/Settings/Sections/General.jsx: Added install button and improved messagingTest Plan