Add CONTEXT.md for docker and VM management script directories. Add media-tools documentation with Playwright scraping patterns. Add Tdarr GPU monitor n8n workflow definition. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
3.8 KiB
3.8 KiB
Media Tools Troubleshooting
Common Issues
Playwright Issues
"playwright not installed" Error
ERROR: playwright not installed. Run: pip install playwright && playwright install chromium
Solution:
pip install playwright
playwright install chromium
Browser Launch Fails
Error: Executable doesn't exist at /home/user/.cache/ms-playwright/chromium-xxx/chrome-linux/chrome
Solution:
playwright install chromium
Timeout Errors
TimeoutError: Timeout 30000ms exceeded
Causes:
- Slow network connection
- Site is blocking automated access
- Page structure has changed
Solutions:
- Increase timeout in script
- Try without
--headlessflag - Check if site is up manually
yt-dlp Issues
"yt-dlp not found" Error
yt-dlp not found. Install with: pip install yt-dlp
Solution:
pip install yt-dlp
Download Fails for Specific Host
ERROR: Unsupported URL: https://somehost.com/...
Solution:
# Update yt-dlp to latest version
pip install -U yt-dlp
If still failing, the host may be unsupported. Check yt-dlp supported sites.
Slow Downloads
Causes:
- Video host throttling
- Network issues
Solutions:
- Downloads are typically limited by the source server
- Try at different times of day
Scraping Issues
No Episodes Found
No episodes found!
Causes:
- Site structure has changed
- Page requires authentication
- Cloudflare protection triggered
Solutions:
- Run without
--headlessto see what's happening - Check if the URL is correct and accessible manually
- Site may have updated their HTML structure - check selectors in script
Video URL Not Found
No video URL found for episode X
Causes:
- Video is on an unsupported host
- Page uses non-standard embedding method
- Anti-bot protection on video player
Solutions:
- Run with
--verboseto see what URLs are being tried - Open episode manually and check Network tab for video requests
- May need to add new iframe selectors for the specific host
403 Forbidden on Site
Cause: Site is blocking automated requests
Solutions:
- Ensure you're NOT using
--headless - Increase random delays
- Clear browser cache/cookies (restart script)
- Try from a different IP
Resume Issues
Resume Not Working
# Should skip downloaded episodes but re-downloads them
Check:
- Ensure
download_state.jsonexists in output directory - Verify the
--resumeflag is being used - Check that episode numbers match between runs
Corrupt State File
JSONDecodeError: ...
Solution:
# Delete the state file to start fresh
rm /path/to/season/download_state.json
Debug Mode
Run with verbose output:
python pokeflix_scraper.py --url "..." --output ~/Pokemon/ --verbose
Run dry-run to test URL extraction:
python pokeflix_scraper.py --url "..." --dry-run --verbose
Watch the browser (non-headless):
python pokeflix_scraper.py --url "..." --output ~/Pokemon/
# (headless is off by default)
Manual Workarounds
If Automated Extraction Fails
-
Browser DevTools method:
- Open episode in browser
- F12 → Network tab → filter "m3u8" or "mp4"
- Play video, copy the stream URL
- Download manually:
yt-dlp "URL"
-
Check iframe manually:
- Right-click video player → Inspect
- Find
<iframe>element - Copy
srcattribute - Use that URL with yt-dlp
Known Video Hosts
These hosts are typically supported by yt-dlp:
- Streamtape
- Vidoza
- Mp4upload
- Doodstream
- Filemoon
- Voe.sx
If the video is on an unsupported host, check if there's an alternative server/quality option on the episode page.