Mass Editor
Mass Editor changes source URLs for multiple Streams, Movies, or Episodes with one regular-expression replacement. It always uses a two-step workflow: dry run first, then an explicit confirmation for the exact preview.
Warning
Bulk Changes Are Immediate: Create a current database backup and test the expression on one Category before applying it globally.
Run the Mass Editor
1. Preview With Dry Run
- Open Tools → Mass Editor.
- Select Stream, Movie, Episode, or All types. Selecting one type reduces the database scan and confirmation lock scope.
- Enter the regular expression and replacement value.
- Optionally select a Category. When selected, only records in that Category are evaluated.
- Run Dry run.
Review every proposed old and new source. A dry run does not modify the database.
The result page displays at most the first 1,000 changed source values for review. Confirmation still applies the complete server-side preview, so narrow a large change by media type and Category when practical.
2. Apply the Preview
Select Confirm and Apply only when the preview is correct. If the pattern, replacement, type, Category, or matching records change, run another dry run; do not rely on an older preview.
Tip
Confirmation applies only to the exact preview returned by the latest Dry Run. Any changed input requires a new preview.
The confirmation token is single-use and expires after 15 minutes. Before writing, Engine scans the selected scope again, locks only matching records, and rejects the confirmation if the source or Category changed after the dry run. Changing any form field also invalidates the preview. Run another dry run instead of applying a stale result.
Regular-Expression Syntax
Patterns use Go’s RE2 regular-expression syntax. RE2 provides predictable execution time but does not support lookbehind or backreferences inside the pattern.
Replacement strings support:
$1or${1}for a numbered capture group;${name}for a named capture group;$$for a literal dollar sign.
Use braces when text follows a capture group: ${1}suffix means group 1 followed by suffix, while $1suffix may be interpreted as a different capture name.
Pattern and replacement fields are limited to 4,096 characters. Each Stream source URL is evaluated independently. A Movie or Episode source cannot exceed its 1,024-character storage limit, and any individual source is rejected if replacement processing would exceed the 1 MiB server safety limit.
Safety Recommendations
- anchor patterns when only a URL prefix or suffix should change;
- escape literal dots and query-string characters;
- test on one Category before applying globally;
- keep a current database backup;
- verify a sample of changed media immediately after applying;
- avoid broad patterns such as
.*unless replacing the entire source is intentional.
Example: replace only the host while preserving the path.
Pattern: ^https://old\.example\.com/
Replacement: https://new.example.com/Example: preserve the path with a capture group.
Pattern: ^https://old\.example\.com/(.*)$
Replacement: https://new.example.com/${1}