Skip to content

Commit 0a04a26

Browse files
committed
feat: add configurable stream monitoring to plex guide template
Add conditional stream kill explanations in "Having Issues?" section with per-rule toggles: has_stream_monitoring (master), has_geo_restriction, has_transcode_protection, has_stream_limits, has_impossible_travel. Updated setup.sh with interactive prompts for new variables.
1 parent 9c40ff6 commit 0a04a26

3 files changed

Lines changed: 76 additions & 1 deletion

File tree

plex-guide/docs/index.md

Lines changed: 49 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,55 @@ tags:
3434

3535
## Having Issues?
3636

37-
??? warning "Click here if something isn't working"
37+
{% if has_stream_monitoring %}
38+
If your stream was stopped or you're having trouble, find your situation below.
39+
40+
!!! failure "Your Stream Was Stopped"
41+
42+
If you received a message that your stream was terminated, here's why and what to do:
43+
{% if has_geo_restriction %}
44+
45+
**"Streaming is restricted to the United States..."**
46+
47+
Your connection appears to be outside the permitted region. This is usually caused by a VPN.
48+
49+
1. **Disable your VPN** and try again — this is the most common fix
50+
2. If you're not using a VPN, your ISP may be routing through another country — try a different network (e.g., switch from WiFi to cellular)
51+
3. Still blocked? {{ admin_contact }} — they can whitelist your location
52+
{% endif %}
53+
{% if has_transcode_protection %}
54+
55+
**"4K content requires direct play..."**
56+
57+
Your device can't play this file directly, so the server is converting it — which lowers quality and uses server resources.
58+
59+
1. In the Plex app, set quality to **Original** or **Maximum** (see [quality settings](#the-picture-looks-bad-or-blurry))
60+
2. If that doesn't help, your device may not support 4K — try a different device (see [recommended devices](#recommended-streaming-devices))
61+
3. {{ admin_contact }} if you need help
62+
{% endif %}
63+
{% if has_stream_limits %}
64+
65+
**"This account is limited to X streams..."**
66+
67+
Too many people are watching on this account at the same time.
68+
69+
1. Ask others sharing the account to stop one of their streams
70+
2. If you're not the account holder, [create your own free Plex account](#not-the-account-holder) — it takes 2 minutes
71+
3. {{ admin_contact }} if this doesn't seem right
72+
{% endif %}
73+
{% if has_impossible_travel %}
74+
75+
**"Suspicious activity detected..."**
76+
77+
Your account was used from locations too far apart to be the same person.
78+
79+
1. If you recently traveled, wait a few minutes and try again
80+
2. If someone else has your login, [secure your account](#account-security) immediately
81+
3. {{ admin_contact }} if you believe this is an error
82+
{% endif %}
83+
84+
{% endif %}
85+
!!! warning "General Troubleshooting"
3886

3987
**Can't find {{ server_name }}?**
4088

plex-guide/mkdocs.sample.yml

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,13 @@ extra:
7878
server_cost: "" # Monthly server cost (e.g., "~$50/month")
7979
speedtest_url: "" # Speed test URL (e.g., "speedtest.example.com"). Falls back to fast.com if empty
8080

81+
# --- Stream monitoring (set to true if you use Tracearr/Tautulli kill rules) ---
82+
has_stream_monitoring: false # Master toggle — shows "Your Stream Was Stopped" section in Having Issues
83+
has_geo_restriction: false # Geo-based stream kills (VPN / out-of-country)
84+
has_transcode_protection: false # 4K transcode protection kills
85+
has_stream_limits: false # Per-user simultaneous stream limit kills
86+
has_impossible_travel: false # Impossible-travel detection kills
87+
8188
# --- Contact card (bot-protected, decoded via JavaScript) ---
8289
# Each method: type, label, value, preferred (optional)
8390
# Types: email, phone, signal_url, signal_username, telegram, discord, whatsapp, imessage

plex-guide/setup.sh

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -138,6 +138,21 @@ fi
138138

139139
prompt speedtest_url "Speed test URL (leave blank for fast.com)" ""
140140

141+
# Stream monitoring
142+
printf "\n%b=== Stream Monitoring ===%b\n\n" "$YELLOW" "$NC"
143+
144+
prompt_bool has_stream_monitoring "Do you use stream monitoring (Tracearr/Tautulli kill rules)?" "false"
145+
has_geo_restriction="false"
146+
has_transcode_protection="false"
147+
has_stream_limits="false"
148+
has_impossible_travel="false"
149+
if [[ "$has_stream_monitoring" == "true" ]]; then
150+
prompt_bool has_geo_restriction "Geo-based stream kills (VPN / out-of-country)?" "false"
151+
prompt_bool has_transcode_protection "4K transcode protection kills?" "false"
152+
prompt_bool has_stream_limits "Per-user stream limit kills?" "false"
153+
prompt_bool has_impossible_travel "Impossible-travel detection kills?" "false"
154+
fi
155+
141156
# Update config
142157
printf "\n%bUpdating %s...%b\n" "$YELLOW" "$CONFIG_FILE" "$NC"
143158

@@ -170,6 +185,11 @@ update_config "has_migration" "$has_migration" true
170185
update_config "show_costs" "$show_costs" true
171186
update_config "server_cost" "$server_cost"
172187
update_config "speedtest_url" "$speedtest_url"
188+
update_config "has_stream_monitoring" "$has_stream_monitoring" true
189+
update_config "has_geo_restriction" "$has_geo_restriction" true
190+
update_config "has_transcode_protection" "$has_transcode_protection" true
191+
update_config "has_stream_limits" "$has_stream_limits" true
192+
update_config "has_impossible_travel" "$has_impossible_travel" true
173193

174194
printf "%bConfiguration updated.%b\n\n" "$GREEN" "$NC"
175195

0 commit comments

Comments
 (0)