TAUTWEEKLY FOR PLEXWindows Portable v1.6.11 · Interactive walkthrough
Guide 0%
Windows · PowerShell 5.1+ · Tautulli

Mission Control for your Plex newsletter.

A guided operating manual for installing, verifying, previewing, testing, scheduling, and safely maintaining TautWeekly for Plex Portable v1.6.11 on Windows.

PowerShell / system check
PS C:\TautWeekly> .\01-VERIFY-SETUP.bat

[OK] Windows PowerShell 5.1+
[OK] config.json validated
[OK] Tautulli API connected
[OK] SMTP endpoint reachable
[OK] Animated assets ready
[OK] Schedule syntax valid

NEXT: .\05-PREVIEW-ALL-EMAIL-TYPES.bat
No Plex user email is sent by this step.

PS C:\TautWeekly> |
15guided BAT launchers
6deterministic email states
10sproduction recipient delay
0credentials shipped
No guide sections matched that search. Try “SMTP,” “preview,” “schedule,” “Tautulli,” “genres,” or “quiet.”
Preflight

What the Windows host needs

Plex and Tautulli may be local, remote, Linux, NAS-hosted, or containerized. TautWeekly for Plex itself runs on Windows.

  • Windows PowerShell 5.1 or later
  • Built-in ScheduledTasks cmdlets for automation
  • Network access to Tautulli’s API
  • Network access to an SMTP STARTTLS endpoint
  • Optional direct Plex access for richer clearLogo metadata
  • A permanent writable installation folder

Supported execution boundary

The included BAT files and scheduler installer are Windows-only. The Plex server and Tautulli do not have to run on the same computer.

Remote services are normal.

Use a LAN URL such as http://media.example.test:8181 when Tautulli runs elsewhere.

Launch sequence

Brand-new install, step by step

The safe sequence moves from local validation to TestEmail before any production recipient or scheduler is touched.

1

Extract to a permanent folder

Recommended examples: C:\TautWeekly or D:\Apps\TautWeekly. Do not run from inside the ZIP.

2

Run guided configuration

Create config.json
00-SETUP-FIRST.bat

After entering the Tautulli URL and API key, select any numbered users to exclude from weekly delivery.

3

Verify the environment

Read-only verification
01-VERIFY-SETUP.bat
4

Review or revise recipient exclusions

No email sent
02-LIST-USERS.bat
14-MANAGE-USER-EXCLUSIONS.bat

The second launcher updates only stable Tautulli IDs; it does not rerun SMTP or schedule setup.

5

Preview and TestEmail

Safe acceptance
03-PREVIEW-NEWSLETTER.bat
04-SEND-TEST.bat
05-PREVIEW-ALL-EMAIL-TYPES.bat
06-SEND-TEST-ALL-EMAIL-TYPES.bat
6

Install and verify automation

Only after test approval
08-INSTALL-SCHEDULE.bat
09-VERIFY-SCHEDULE.bat
Nothing schedules itself during setup.

Automation exists only after you explicitly run 08-INSTALL-SCHEDULE.bat.

Operational controls

BAT command center

Each launcher has one job and an explicit risk boundary.

LauncherPurposeDelivery risk
00-SETUP-FIRST.batGuided setup; creates or intentionally rebuilds config.json with backup protection.No email
01-VERIFY-SETUP.batChecks Windows, config, Tautulli, SMTP reachability, assets, and schedule syntax.No email
02-LIST-USERS.batShows user IDs, names, emails, active state, and notification eligibility.No email
03-PREVIEW-NEWSLETTER.batBuilds the selected user’s current real branch as local HTML.No email
04-SEND-TEST.batSends one simulated user newsletter through real SMTP to TestEmail only.TestEmail only
05-PREVIEW-ALL-EMAIL-TYPES.batCreates six deterministic local regression previews plus an index.No email
06-SEND-TEST-ALL-EMAIL-TYPES.batSends all six regression states through the real MIME/CID pipeline to TestEmail.TestEmail only
07-SEND-WELCOME-NOW.batSends a real one-off welcome to one selected Plex user and records welcome state.Real recipient
08-INSTALL-SCHEDULE.batCreates or replaces the configurable Windows Scheduled Task.Automation change
09-VERIFY-SCHEDULE.batReads the task definition, trigger, executable, arguments, and next run.No email
10-REMOVE-SCHEDULE.batDeletes the TautWeekly for Plex Scheduled Task only.Automation change
11-SEND-ALL-NOW.batRuns a confirmed real newsletter send to every eligible user.Bulk send
12-VIEW-ACCESS-ROSTER.batShows first-seen and welcome-state tracking.No email
13-REPAIR-MOVIE-TV-ASSETS.batRepairs required animated and email-safe local assets.No email
14-MANAGE-USER-EXCLUSIONS.batShows the live Tautulli roster and updates only ExcludedUserIds.Config only
TEST-FIRST.batConvenience entry point for safe verification/testing guidance.No production mail
Network topology

Local or remote Plex and Tautulli

Only the Windows runner is local. The media stack may live anywhere reachable on your LAN.

PC

Same Windows machine

http://127.0.0.1:8181 is correct only when Tautulli runs on the same Windows host.

LAN

Another server or NAS

Use the remote host’s LAN address and published Tautulli port.

PMS

Optional direct Plex URL

Direct Plex metadata can improve clearLogo support but is not required for newsletter operation.

Remote Tautulli example
"TautulliUrl": "http://media.example.test:8181"
Control surface

Configuration that matters

The setup wizard writes these values to config.json and offers an interactive exclusion roster after the Tautulli connection; the distributed ZIP includes placeholders only.

Animated action icon

Delivery identity

From name/address, Reply-To, SMTP host, STARTTLS port, authentication, password, and TestEmail.

Animated watched icon

Server data

Tautulli URL/API key, history days, watched threshold, minimum episode duration, and optional Plex URL/token.

Animated lock icon

Safety and targeting

Excluded users/emails, schedule day/time, task name, production delay, and recent-access window.

SettingMeaningTypical default
MaxMoviesMaximum normal New Releases movie cards.8
MaxTvMaximum normal New Releases TV cards.8
DaysBackRolling calendar-day activity/release window.7
RecentAccessDaysWindow used to classify a newly detected user.7
SendDelaySecondsPause between production recipients.10
TestSendDelaySecondsPause between the six TestEmail regression messages.2
ScheduleDay / ScheduleTimeWeekly local task trigger and email wording.Friday / 09:30
Normal card limits are configuration-driven.

Edit the live config.json, not config.example.json, after installation.

Revise recipient policy independently.

Run 14-MANAGE-USER-EXCLUSIONS.bat, choose comma-separated rows or ranges, press Enter to keep the current list, or type none to clear it. Treat displayed names and emails as private.

Acceptance testing

Six-state regression suite

Every variant uses the same production renderer. There is no separate stale design-preview engine.

01

Manual welcome

One-off onboarding without weekly stats, quiet copy, or warm-up copy.

WELCOMEONLY = TRUE
02

New user — no history

First scheduled newsletter with onboarding replacing empty stats.

RECENTACCESS + ZERO
03

New user — with history

First scheduled newsletter with populated personalized statistics.

RECENTACCESS + ACTIVITY
04

Established normal

Populated established-user branch; sample stats are used only when necessary for visual testing.

NORMAL ACTIVITY
05

Established quiet

Zero activity after warm-up, showing “QUIET IN THIS SECTOR.”

WARMINGUP = FALSE
06

Established warm-up

Zero activity during the initial system window, showing “STATS ARE WARMING UP.”

WARMINGUP = TRUE
Generated local files
output\preview-all-00-INDEX.html
output\preview-all-01-manual-welcome.html
output\preview-all-02-new-user-no-history.html
output\preview-all-03-new-user-with-history.html
output\preview-all-04-normal-newsletter.html
output\preview-all-05-established-quiet.html
output\preview-all-06-established-warmup.html
SendTestAll remains isolated.

All six real MIME/CID messages go exclusively to TestEmail; no selected Plex user receives them.

v1.6.11 presentation

Movie genres and TV overflow counts NEW

The final card additions apply to browser previews, TestEmail, welcome emails, normal newsletters, and quiet-week Latest Releases.

MOV

Backrooms

Horror, Mystery, and more
2026 · 🍅 87% · 🍿 74%

A short description begins after a consistently spaced genre and metadata block.

TV

Adventure Time

S01 EP01: Slumber Party Panic
S01 EP02: Trouble in Lumpy Space
S01 EP03: Prisoners of Love
Animated movies icon

Movie genre rules

Genre appears directly under the title at 13px, font-weight 500, in the same muted color as description text. It shows the first two genres and adds , and more when more exist. No metadata means no empty row or spacing gap.

Animated TV icon

TV overflow rules

Only the three newest episode rows appear. Totals 1–3 show no footer; four shows 1 additional episode recently added; five or more shows X additional episodes recently added.

Count calculation.

The additional count equals the total qualifying recently added episodes for that series minus the three displayed rows.

Automation

Windows Task Scheduler

The installer builds a folder-relative task using the configured day, time, and task name.

Configurable

ScheduleDay, ScheduleTime, and ScheduledTaskName drive installation.

Folder-relative

The task points at the actual extracted folder rather than a fixed path.

Verification

09-VERIFY-SCHEDULE.bat checks executable, arguments, trigger, and next run.

Independent state

Replacing application files does not require reinstalling the task unless path or task configuration changes.

Schedule lifecycle
08-INSTALL-SCHEDULE.bat
09-VERIFY-SCHEDULE.bat
10-REMOVE-SCHEDULE.bat
Installing the task authorizes future real sends.

Complete the six-state browser and TestEmail checks before installing automation.

Persistence

Configuration, state, and backups

Application files can be replaced; your live credentials and history must be preserved.

TautWeekly for Plex\ ├── config.json ← credentials + settings ├── state.json ← first-run / warm-up state ├── access-state.json ← new-user + welcome tracking ├── assets\ ← email-safe media ├── output\ ← generated previews/media ├── logs\ ← operational history └── TautWeekly.ps1 ← current engine

Before an update

  • Back up config.json
  • Preserve state.json
  • Preserve access-state.json
  • Keep the existing Scheduled Task unless its path changes
  • Test the updated engine before SendAll
Never distribute the live installation as a portable ZIP.

config.json may contain the Tautulli API key, SMTP password, and optional Plex token.

Credential boundaries

SMTP and local security

The package supports password/relay SMTP through .NET SmtpClient’s STARTTLS model.

Supported SMTP model

  • STARTTLS, commonly port 587
  • Username/password or provider app password
  • Configurable authentication and SSL flags
  • Best-effort NTFS ACL hardening for config.json

Not supported by this build

  • Implicit SMTPS session on port 465
  • OAuth2-only SMTP authentication
  • Sharing or publishing the live config
  • Using a sender address your provider does not authorize
Verification is not authentication.

01-VERIFY-SETUP.bat tests SMTP host/port reachability. 04-SEND-TEST.bat validates credentials, sender policy, and real delivery.

Diagnostics

Common problems

Start with verification, then isolate data, SMTP, or scheduler behavior.

Windows blocks the BAT or PS1 files
Extract the complete ZIP to a normal folder. Right-click the ZIP or extracted files and use Unblock when Windows marks downloaded content. The launchers already use an execution-policy bypass for the local script.
Tautulli verification fails
Confirm the URL, API key, LAN routing, and Tautulli port. Use 127.0.0.1 only when Tautulli runs on the same Windows host.
SMTP is reachable but Send Test fails
Check username, app password/provider password, STARTTLS port, From-address authorization, and whether your provider requires a different authenticated identity.
Preview All appears to show duplicate states
The normal and new-user-with-history variants use real stats when available and preview-only sample stats otherwise. Quiet and warm-up intentionally force zero activity with different production flags.
The scheduled task exists but does not run correctly
Run 09-VERIFY-SCHEDULE.bat. Check the executable, arguments, working directory, configured task name, trigger time, and whether the install folder was moved after task creation.
Movie genres or TV overflow text is missing
Genre rows depend on available metadata. TV overflow requires more than three qualifying recently added episodes for that series. Run Preview All and inspect the current data path before changing the renderer.
Complete reference

Recommended operating sequence

The shortest safe path from extraction to scheduled delivery.

Full acceptance workflow
00-SETUP-FIRST.bat
01-VERIFY-SETUP.bat
02-LIST-USERS.bat
03-PREVIEW-NEWSLETTER.bat
04-SEND-TEST.bat
05-PREVIEW-ALL-EMAIL-TYPES.bat
06-SEND-TEST-ALL-EMAIL-TYPES.bat
09-VERIFY-SCHEDULE.bat

# Only after all tests are approved:
08-INSTALL-SCHEDULE.bat
Animated pending icon

Preview first

Local HTML shows structure and conditional content without sending mail.

@

TestEmail second

Real SMTP and MIME/CID delivery validates actual mail-client rendering.

Schedule last

Install automation only after browser and TestEmail approval.

v1.6.11 release focus.

TV cards retain three visible episode rows and now calculate overflow from all child episodes added inside the newsletter window—even when Tautulli reports one show or season row. Movie genre formatting remains exactly as approved below the title. Six-state regression, ratings, scheduling, SMTP, state, and recipient throttling remain intact.

v1.6.11 correction

Accurate overflow counts from aggregated TV imports

Tautulli may return one show or season row even when many episodes were added. TautWeekly for Plex now validates the child episode timestamps instead of mistaking the three displayed rows for the full count.

3

Three rows displayed

The card continues to show only the three newest recently-added episodes.

+

True remaining count

Four total becomes 1 additional episode recently added. Five or more uses the exact remaining number.

Footer stays visible

More vertical space is reserved so a wrapped episode or IMDb line cannot clip the gold footer.

Movie genre formatting is unchanged.

The approved muted 13px, weight-500 genre row remains directly beneath the movie title, with the first two genres and “, and more” when needed.

v1.6.11 layout correction

Movie genres now sit directly beneath every title identity

The same approved genre line is used on regular movie cards and on movie-based hero layouts, whether the desktop hero uses a clearLogo or a text-title fallback.

Regular movie cards

Normal-flow blocks replace the fixed-height inner table. The title and genre remain adjacent, followed by a controlled gap before ratings.

Desktop hero

The genre appears immediately below the clearLogo—or immediately below the fallback text title when a logo is unavailable.

Mobile hero

The mobile banner remains logo-free. The genre appears directly beneath the normal text title.

Approved styling is unchanged.

13px, weight 500, muted description color, first two genres plus “, and more,” and no empty gap when metadata is unavailable.

Visual order
Movie title or clearLogo
Horror, Mystery, and more
2026  [critic rating]  [audience rating]
Description…
v1.6.11 cleanup

Optional setup fields are now safe to skip

Pressing Enter at the optional Plex-token prompt now returns a blank value rather than terminating the setup wizard.

Blank means blank

The optional token can be skipped while retaining Tautulli and text-title fallbacks.

6

Six states documented

The guide now correctly lists normal, quiet, and warm-up alongside the three onboarding states.

No renderer change

This cleanup does not alter newsletter content, recipients, state, SMTP, or scheduling.

Current email behavior

Adaptive stats and the Binge Champion award

Light viewing weeks reveal more detail without making heavy viewing weeks excessively tall.

1–3

Itemized movies

Mini poster, movie title, Rotten Tomatoes critic score, and audience score.

1–3

Itemized episodes

Mini show poster, show title, Sxx EPxx episode title, and IMDb score.

4+

Compact counts

At four or more, the card returns to the large-number format to protect email length.

Binge Champion is a privacy-preserving server-wide award.

The user with the most qualifying watch time wins; total plays break an exact-time tie. Every scheduled weekly email shows the same anonymous movie-play, TV-play, and total-time aggregate. Only the winner’s card receives the gold border, larger trophy, and “YOU WON” treatment.

Trending is not duplicated.

Trending ranks a media title and displays its server-wide play count once. Binge Champion ranks a person by qualifying watch time, but never reveals that person’s name, user ID, or watched titles.

Global movie formatting

Genre now appears in watched-movie statistics

The compact 1–3 movie recap now matches the rest of the newsletter’s movie hierarchy.

1–3

Adaptive movie rows

Each row includes a mini poster, title, genre, and Rotten Tomatoes critic and audience scores.

ALL

One genre rule

Show the first two genres and append “, and more” when additional genres exist.

No empty genre row

When metadata has no genre, the rating line moves up automatically with no blank space.

Applied everywhere the adaptive movie-stat card can render.

This includes production and portable previews, individual tests, six-state test suites, scheduled weekly newsletters, and all applicable recipient states.

PowerShell 5.1 hotfix

Single-item adaptive cards now retain array semantics

Exactly one watched movie or one streamed episode no longer becomes a scalar under strict mode.

Resolved: “The property ‘Count’ cannot be found on this object.”

MovieItems and EpisodeItems are initialized and assigned explicitly as arrays before the adaptive renderer checks their counts.

0

Empty collection

Retains a valid zero-length array.

1

Single item

Remains an array instead of being unwrapped into a scalar.

2–3

Multiple items

Continues to render the adaptive poster rows normally.