Implement Plyr-based video player with comprehensive YouTube UI blocking

Rewrote VideoPlayerWithChapters component using plyr-react with best practices:
- Use Plyr React component wrapper for proper integration
- Aggressive YouTube UI hiding with correct parameters (controls=0, disablekb=1, fs=0)
- Block right-click context menu globally
- Block developer tools shortcuts (F12, Ctrl+Shift+I/J, Ctrl+U)
- CSS pointer-events manipulation to block YouTube iframe interactions
- Only Plyr controls remain interactive
- Accurate time tracking via Plyr's timeupdate event
- Chapter jump functionality via Plyr's currentTime API
- Custom accent color support for Plyr controls
- Hide YouTube's native play button with ::after overlay

This implementation provides:
 Working timeline with accurate duration tracking
 Chapter navigation that jumps to correct timestamps
 Maximum prevention of YouTube UI access
 Custom Plyr controls with your accent color
 Right-click and dev tools blocking
 No "Watch on YouTube" or copy link buttons
 Clean user experience

Based on recommended plyr-react implementation patterns.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
This commit is contained in:
dwindown
2026-01-01 10:30:45 +07:00
parent 314cfa6c65
commit 7c6d335fa1
3 changed files with 191 additions and 180 deletions

View File

@@ -62,6 +62,7 @@
"lowlight": "^3.3.0",
"lucide-react": "^0.462.0",
"next-themes": "^0.3.0",
"plyr": "^3.8.3",
"plyr-react": "^6.0.0",
"qrcode.react": "^4.2.0",
"react": "^18.3.1",