255 lines
7.6 KiB
Markdown
255 lines
7.6 KiB
Markdown
# Debugging Guide for SRF Play Plugin
|
|
|
|
This guide helps you debug issues with the SRF Play plugin, including proxy configuration and content fetching problems.
|
|
|
|
## Enhanced Logging
|
|
|
|
The plugin now includes detailed logging to help diagnose issues. After installing the updated version, check your Jellyfin logs for these key messages.
|
|
|
|
## Key Log Messages to Look For
|
|
|
|
### 1. Proxy Configuration Status
|
|
|
|
When the plugin initializes, you'll see:
|
|
|
|
**Without proxy:**
|
|
```
|
|
[INF] SRFApiClient initializing without proxy
|
|
```
|
|
|
|
**With proxy:**
|
|
```
|
|
[INF] SRFApiClient initializing with proxy enabled: http://your-proxy:port
|
|
[INF] Proxy configured: http://your-proxy:port (Authentication: True/False)
|
|
```
|
|
|
|
**Proxy configuration errors:**
|
|
```
|
|
[ERR] Failed to configure proxy: http://your-proxy:port
|
|
```
|
|
|
|
### 2. Media Composition Fetching
|
|
|
|
For each video URN, you'll see detailed logs:
|
|
|
|
```
|
|
[INF] Fetching media composition for URN: urn:srf:video:12345 from https://il.srgssr.ch/integrationlayer/2.0/mediaComposition/byUrn/urn:srf:video:12345.json
|
|
[INF] Media composition response for URN urn:srf:video:12345: StatusCode=OK
|
|
[INF] Successfully fetched media composition for URN: urn:srf:video:12345 - Chapters: 1
|
|
```
|
|
|
|
**If there are no chapters:**
|
|
```
|
|
[WRN] Media composition for URN urn:srf:video:12345 has no chapters
|
|
```
|
|
|
|
**HTTP errors:**
|
|
```
|
|
[ERR] HTTP error fetching media composition for URN: urn:srf:video:12345 - StatusCode: 404
|
|
```
|
|
|
|
### 3. Stream URL Resolution
|
|
|
|
For each chapter, you'll see detailed resource processing:
|
|
|
|
```
|
|
[INF] Processing chapter abc123 with 5 resources
|
|
[INF] Chapter abc123: Total resources=5, Non-DRM resources=2
|
|
[INF] Chapter abc123: HLS resources found=1
|
|
```
|
|
|
|
**DRM-protected content:**
|
|
```
|
|
[WRN] All resources for chapter abc123 require DRM
|
|
[DBG] DRM resource: Protocol=HLS, Streaming=HLS, DRM=WIDEVINE
|
|
```
|
|
|
|
**No HLS streams:**
|
|
```
|
|
[WRN] No HLS resources found for chapter: abc123
|
|
[DBG] Non-HLS resource: Protocol=HTTP, Streaming=PROGRESSIVE, URL=https://...
|
|
[INF] Using fallback resource for chapter abc123: https://...
|
|
```
|
|
|
|
## Common Issues and Solutions
|
|
|
|
### Issue 1: Videos Not Loading (Conversion Failures)
|
|
|
|
**Symptoms:**
|
|
```
|
|
Conversion complete: 0 successful, 18 failed, 0 expired, 0 no stream
|
|
```
|
|
|
|
**Debugging steps:**
|
|
|
|
1. **Check for DRM content:**
|
|
- Look for: `All resources for chapter XXX require DRM`
|
|
- Solution: This content cannot be played (Widevine DRM protection)
|
|
|
|
2. **Check for HTTP errors:**
|
|
- Look for: `HTTP error fetching media composition` with status codes
|
|
- Common codes:
|
|
- `403 Forbidden`: Geo-restriction or blocked
|
|
- `404 Not Found`: Content removed or URN invalid
|
|
- `429 Too Many Requests`: Rate limiting
|
|
- Solution: Check if proxy is needed for geo-restrictions
|
|
|
|
3. **Check for missing chapters:**
|
|
- Look for: `Media composition for URN XXX has no chapters`
|
|
- Solution: This video metadata is incomplete or invalid
|
|
|
|
### Issue 2: Proxy Not Being Used
|
|
|
|
**Symptoms:**
|
|
- Plugin says "initializing without proxy" even though configured
|
|
- Getting geo-restriction errors (403)
|
|
|
|
**Debugging steps:**
|
|
|
|
1. Check the initialization log:
|
|
```
|
|
[INF] SRFApiClient initializing with proxy enabled: http://...
|
|
```
|
|
|
|
2. If it says "without proxy", check:
|
|
- Is "Use Proxy" checkbox enabled in plugin settings?
|
|
- Is the Proxy Address field filled in?
|
|
- Did you restart Jellyfin after saving?
|
|
|
|
3. Check for proxy errors:
|
|
```
|
|
[ERR] Failed to configure proxy: http://...
|
|
```
|
|
- Verify the proxy URL format (must include `http://` or `socks5://`)
|
|
- Test proxy connectivity: `curl --proxy http://proxy:port https://il.srgssr.ch`
|
|
|
|
### Issue 3: Proxy Connection Failures
|
|
|
|
**Symptoms:**
|
|
```
|
|
[ERR] HTTP error fetching media composition for URN: ... - StatusCode: null
|
|
```
|
|
or timeout errors
|
|
|
|
**Debugging steps:**
|
|
|
|
1. **Verify proxy is reachable from Jellyfin server:**
|
|
```bash
|
|
curl --proxy http://your-proxy:port https://il.srgssr.ch
|
|
```
|
|
|
|
2. **Check proxy authentication:**
|
|
- If proxy requires auth, ensure username/password are configured
|
|
- Look for: `Proxy configured: ... (Authentication: True)`
|
|
|
|
3. **Check proxy supports HTTPS:**
|
|
- The SRF API uses HTTPS, ensure your proxy can handle it
|
|
|
|
4. **Test with a simple HTTP proxy:**
|
|
```bash
|
|
# Test with SSH tunnel as SOCKS5 proxy
|
|
ssh -D 1080 -N user@gateway-server
|
|
# Then configure: socks5://127.0.0.1:1080
|
|
```
|
|
|
|
### Issue 4: Content Expiration
|
|
|
|
**Symptoms:**
|
|
```
|
|
Conversion complete: 0 successful, 0 failed, 10 expired, 0 no stream
|
|
```
|
|
|
|
**Solution:**
|
|
- Content has expired and is no longer available
|
|
- Check the expiration task runs regularly
|
|
- Some content is time-limited by SRF
|
|
|
|
## Enabling Debug Logs
|
|
|
|
To see even more detailed logs (like `[DBG]` messages), modify your Jellyfin logging configuration:
|
|
|
|
1. Go to **Dashboard → Logs**
|
|
2. Click **Settings**
|
|
3. Set log level to **Debug** for troubleshooting
|
|
4. Restart Jellyfin
|
|
|
|
**Warning:** Debug logging can be very verbose and consume disk space quickly. Only enable temporarily.
|
|
|
|
## Testing Proxy Configuration
|
|
|
|
To verify your proxy is working:
|
|
|
|
### 1. Enable Proxy in Plugin Settings
|
|
- Dashboard → Plugins → SRF Play
|
|
- Check "Use Proxy"
|
|
- Enter your proxy address
|
|
- Save and restart Jellyfin
|
|
|
|
### 2. Check Initialization Logs
|
|
Look for:
|
|
```
|
|
[INF] SRFApiClient initializing with proxy enabled: http://your-proxy:port
|
|
[INF] Proxy configured: http://your-proxy:port (Authentication: False)
|
|
```
|
|
|
|
### 3. Trigger Content Refresh
|
|
- Dashboard → Scheduled Tasks → "Refresh SRF Play Content"
|
|
- Run task manually
|
|
- Watch logs for media composition requests
|
|
|
|
### 4. Verify Requests Go Through Proxy
|
|
You can monitor proxy logs (if available) or use network monitoring tools to confirm traffic routes through the proxy.
|
|
|
|
## Getting Help
|
|
|
|
When reporting issues, include:
|
|
|
|
1. **Plugin version:**
|
|
- Dashboard → Plugins → SRF Play → Version
|
|
|
|
2. **Relevant log entries:**
|
|
- The initialization message (with/without proxy)
|
|
- Any error messages
|
|
- The "Conversion complete" summary
|
|
- Resource processing details for failed items
|
|
|
|
3. **Configuration:**
|
|
- Business unit selected
|
|
- Proxy enabled? (yes/no, don't share credentials)
|
|
- Where Jellyfin is running (local network, VPS, etc.)
|
|
|
|
4. **Network environment:**
|
|
- Are you behind a geo-restriction?
|
|
- Is the proxy on the same network or remote?
|
|
- Any firewalls or network policies?
|
|
|
|
## Example of Good Debug Output
|
|
|
|
When everything works correctly with proxy:
|
|
|
|
```
|
|
[INF] SRFApiClient initializing with proxy enabled: http://192.168.1.1:3128
|
|
[INF] Proxy configured: http://192.168.1.1:3128 (Authentication: False)
|
|
[INF] Fetching media composition for URN: urn:srf:video:12345 from https://il.srgssr.ch/...
|
|
[INF] Media composition response for URN urn:srf:video:12345: StatusCode=OK
|
|
[INF] Successfully fetched media composition for URN: urn:srf:video:12345 - Chapters: 1
|
|
[INF] Processing chapter abc123 with 3 resources
|
|
[INF] Chapter abc123: Total resources=3, Non-DRM resources=2
|
|
[INF] Chapter abc123: HLS resources found=1
|
|
[DBG] Selected stream for chapter abc123: Quality=HD, Protocol=HLS, URL=https://...m3u8
|
|
```
|
|
|
|
## Example of Failed Conversion (DRM Issue)
|
|
|
|
```
|
|
[INF] Fetching media composition for URN: urn:srf:video:67890 from https://il.srgssr.ch/...
|
|
[INF] Media composition response for URN urn:srf:video:67890: StatusCode=OK
|
|
[INF] Successfully fetched media composition for URN: urn:srf:video:67890 - Chapters: 1
|
|
[INF] Processing chapter def456 with 2 resources
|
|
[INF] Chapter def456: Total resources=2, Non-DRM resources=0
|
|
[WRN] All resources for chapter def456 require DRM
|
|
[DBG] DRM resource: Protocol=HLS, Streaming=HLS, DRM=WIDEVINE
|
|
```
|
|
|
|
This means the content requires Widevine DRM and cannot be played by Jellyfin.
|