-
Notifications
You must be signed in to change notification settings - Fork 5
PeerTube Integration: Decentralized Video Import & Hybrid P2P Playback #7
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
imattau
wants to merge
15
commits into
Spl0itable:main
Choose a base branch
from
imattau:main
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Conversation
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
Summary of changes: - Fixed PeerTube playback ReferenceError and strict URL validation. - Implemented robust emergency fallback mechanism for playback. - Added comprehensive logging with prefix [PlaybackDebug]. - Integrated hls.js for optimized buffering and HLS support. - Enhanced resolution switching with dynamic HLS levels and time preservation. - Setup ESLint and resolved critical syntax/runtime errors. - Cleaned up duplicate translation keys across multiple languages. - Removed obsolete Test Stream button and related logic.
Summary of changes: - Created a unified .peertube-toolbar at the top of the video player. - Consolidated WebTorrent consent and resolution controls into the toolbar. - Toolbar now hides automatically when focus is lost, matching standard video controls. - Redesigned resolution switching from a dropdown menu to a cycle-based button. - Updated HLS logic to cycle through quality levels directly. - Improved visual styling of buttons to match the app theme. - Removed redundant down arrow SVG from the resolution button.
Summary of changes: - Implemented seamless WebTorrent switching by pre-buffering in a hidden element. - Standard player now continues until torrent reaches a substantial buffer (25s). - Added real-time WebTorrent loading status (peers, speed) with cancellation support. - Implemented automatic fallback to standard player on WebTorrent failure. - Fixed stream switching ReferenceErrors and improved time preservation. - Enhanced PeerTube import modal with automatic NSFW and thumbnail metadata mapping. - Cleaned up redundant [PlaybackDebug] logs.
Summary of changes: - Fixed 'File too large for Blob URL' error by using an off-screen pre-buffer element instead of 'display: none', allowing MSE to initialize correctly. - Improved WebTorrent cancellation reliability with 'abortRequested' flag and immediate resource cleanup. - Eliminated 'Empty src attribute' unhandled errors by calling 'renderTo' directly on the main player and adding persistent error listeners. - Enhanced handoff logic to ensure standard player is fully cleaned up before WebTorrent takes over. - Added client-level error monitoring to WebTorrent initialization.
Summary of changes: - Prevented video from restarting after clicking 'Cancel' by ignoring user-initiated aborts in the fallback logic. - Updated 'restartStandardPlayback' to preserve the current playback position during error-triggered fallbacks. - Resolved browser accessibility warning by preventing 'aria-hidden' toggle while the WebTorrent button is focused or pending. - Added explicit error listeners to suppress 'Unhandled error' crashes during PeerTube connection resets.
Summary of changes: - Refactored the PeerTube modal structure to match the standard 'Upload Video' and 'Go Live' forms. - Added consistent label styling, required field indicators, and hint messages. - Enhanced the metadata preview with 'upload-preview' styling and thumbnail display. - Updated action buttons (Import, Fetch metadata, Cancel) to align with global UI patterns. - Ensured the preview element is correctly toggled during metadata fetching and form reset.
Implement Seamless WebTorrent Handoff and Enhanced PeerTube Import UX
|
Review the following changes in direct dependencies. Learn more about Socket for GitHub.
|
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.
This PR enables users to bring the vast library of PeerTube content into the Plebs ecosystem. Instead of re-uploading large video files, Plebs now
intelligently maps PeerTube metadata to Nostr events and provides a high-performance, resilient player experience.
metadata (instance info, magnet links).
background and only swaps the stream once it has acquired a 25-second buffer. This transition is invisible to the user and preserves the exact playback
position.
that would otherwise fail using standard Blob URL methods.
of the player.
Technical Highlights
How to Test