Explosive Drop Zone Ops emblem and broadcast skyline

Operations manual / field guide

Broadcast Operations Manual.

Everything needed to assemble, organize, inject breaks into, and export M3U playlists for VLC or OBS—presented with the same high-impact visual system as the main site.

Start here

Quick Start

Drop Zone Ops runs as a static browser application. There is no account, command line, package installation, or server process required.

Set a root folder path when using local files.
Drop media, browse for files, or paste a URL.
Drag entries into playback order and assign tags.
Name the playlist and review the M3U preview.
Click Export .M3U Playlist.
Fastest test Add one local media file, enter its folder in Root Folder Path, name the playlist, export it, and open the resulting file in VLC.

Inputs

Adding Media

Content can be added several ways. All input methods feed the same ordered playlist, so local files and remote URLs can be mixed in one block.

Drop files or folders

Drag media from the operating system into the main drop zone. Individual files use the current root folder path as a prefix. Folder drops preserve nested paths when the browser exposes that information.

Drop files or folders area in Drop Zone Ops
The main drop zone accepts media files and supported folder drops.

Browse local files

Click Browse Local Files in the Operations panel to open the browser file picker. Multiple files may be selected at once.

Paste a remote URL

Paste a direct HTTP or HTTPS media URL into the URL field, optionally provide a display name, and click + ADD. Remote URLs pass through unchanged and are never prefixed with the local root path.

Direct media URLs A webpage URL is not necessarily a playable media URL. VLC and OBS need a direct or otherwise accessible path to the media resource.

Local media

Local Base Paths

Browsers do not expose a full local filesystem path when an ordinary file is selected. Drop Zone Ops solves this by combining the filename with a root path that you provide.

Root Folder Path field in Drop Zone Ops
Set the folder that contains your local media before adding individual files.

Examples

macOS / Linux
/Users/yourname/Videos/content/

Windows
C:\Users\yourname\Videos\content\

How the path is applied

  • Individual local files are prefixed with the root folder path.
  • Folder drops attempt to preserve their nested relative path.
  • Remote HTTP and HTTPS URLs are never changed.
  • Apply All reapplies the current root path to existing local items.
The playback machine matters The exported path must be valid on the computer that will run VLC or OBS. A playlist built on one machine may need different root paths when moved to another.

Playlist structure

Organizing a Playlist

Each row represents one M3U entry. Drag the handle on the left side of a row to change playback order.

Ordered playlist rows in Drop Zone Ops
Rows can be reordered and reviewed alongside live playlist statistics.

Tags

Click a row's colored tag badge to cycle through content types.

TagTypical use
contentMain programming, episodes, films, or features
commercialAdvertisements and sponsor spots
bumperStation IDs, intros, outros, and break transitions
interstitialFiller, transitions, or short between-program pieces
otherAnything that does not fit the primary categories

Groups and blocks

A group is an optional label written to the group-title attribute in the exported M3U. Examples include block-1, late-night, or ad-break-2.

Sort by Tag

The Operations panel can group rows by tag. Use this only when that grouped order is the desired playback order; sorting changes the actual playlist sequence.

Runtime statistics

The right panel shows total item counts, per-tag counts, and calculated runtime. Total time only includes entries that have a valid duration.

Metadata

Editing Entries

Click an item's title to open its editor.

Edit Item dialog in Drop Zone Ops
Change the display name, path, duration, tag, and group for an individual entry.
FieldPurpose
Display NameThe title written after the comma in the #EXTINF line
File Path / URLThe local path or remote media address used for playback
DurationAccepts MM:SS or H:MM:SS, such as 22:30 or 1:04:15
Tag / TypeWritten to the custom tvg-type attribute
Group / BlockWritten to the group-title attribute

Bulk input

Importing CSV and JSON

Use Import CSV / JSON when a programming plan already exists in a spreadsheet, script output, or data file.

Import CSV and JSON operation in Drop Zone Ops
Import structured playlist data from a local file.

CSV format

The accepted header names are path, name, duration, tag, and group.

path,name,duration,tag,group
/Users/yourname/Videos/episode-01.mp4,Episode 01,22:30,content,block-1
https://media.example.com/ad.mp4,Soda Ad,0:30,commercial,ad-break-1

Download the CSV template.

JSON format

[
  {
    "path": "/Users/yourname/Videos/episode-01.mp4",
    "name": "Episode 01",
    "duration": "22:30",
    "tag": "content",
    "group": "block-1"
  },
  {
    "path": "https://media.example.com/ad.mp4",
    "name": "Soda Ad",
    "duration": "0:30",
    "tag": "commercial",
    "group": "ad-break-1"
  }
]

Download the JSON template.

Duration values Imported durations may be supplied in readable time format. Empty or unknown durations are allowed, but they will not contribute to the total runtime calculation.

Automated breaks

Commercial Injection

The Commercial Injection panel merges a content playlist with commercials and bumpers according to reusable rules. It can read the current playlist or import a separate M3U or JSON content source.

Complete Commercial Injection panel
The panel contains a commercial library, rule editor, JSON template, and merged preview.

1. Build the commercial library

Set an optional library base path, then add commercial files by filename, full local path, or remote URL. Each clip can have a display name and duration.

Commercial library controls
Files in the library can also be selected as pre- or post-break bumpers.

2. Choose the content source

By default, the injector reads the current Drop Zone Ops playlist. Use Import .M3U to operate on an external content playlist instead.

3. Configure the default rule

The default rule fires every specified number of content items. It controls the minimum and maximum number of commercials in each break and the selection method.

Default and override rule controls in Commercial Injection
Default rules can be supplemented by position-specific overrides.
SelectionBehavior
randomSelects clips randomly from the available commercial library
sequentialCycles through the commercial library in order across breaks
poolUses the configured pool behavior exposed by the current builder interface
specificMay be represented in imported templates that name exact clips

4. Add position overrides

An override applies a different rule after a specific content item. This can create a longer first break, a sponsor-specific block, or a different bumper sequence at a known point in the program.

5. Assign bumpers

Enable a pre-break bumper, post-break bumper, or both. A pre-break clip might announce an upcoming break; a post-break clip might identify the station or return to programming.

6. Review or edit the JSON template

The live JSON representation can be unlocked with Edit, validated and locked again, saved for reuse, or replaced with an imported template.

JSON template panel for commercial injection
Save a known rule set and load it again in a later session.

7. Inject and update

Review the merged preview, then click Inject & Update Playlist. The merged result replaces the active playlist in the main builder. Export it normally after verifying the order.

Commercial Injection JSON template example
{
  "name": "saturday-night-block",
  "commercial_library": {
    "source": "/Users/yourname/Videos/commercials/",
    "files": [
      { "name": "Soda Ad", "path": "soda-ad.mp4", "duration": "0:30" },
      { "name": "Car Ad", "path": "car-ad.mp4", "duration": "0:30" },
      { "name": "And We're Back", "path": "back-bumper.mp4", "duration": "0:08" }
    ]
  },
  "breaks": {
    "default_interval": 2,
    "min_ads": 1,
    "max_ads": 2,
    "selection": "random",
    "default_bumpers": {
      "post": "/Users/yourname/Videos/commercials/back-bumper.mp4"
    },
    "overrides": [
      {
        "after_item": 1,
        "min_ads": 2,
        "max_ads": 2,
        "selection": "sequential",
        "bumpers": {
          "pre": "/Users/yourname/Videos/commercials/into-break.mp4",
          "post": "/Users/yourname/Videos/commercials/back-bumper.mp4"
        }
      }
    ]
  }
}

Output

Exporting M3U

Enter a value in Playlist Name and click Export .M3U Playlist. The browser downloads a file using that name.

Playlist name field and Export M3U Playlist button
For example, saturday-night-block exports as saturday-night-block.m3u.

Before exporting

  • Verify that every local path is valid on the playback machine.
  • Confirm the final row order because that is the playback order.
  • Check that remote URLs are directly accessible.
  • Review the M3U preview for unexpected metadata or paths.

Playback

Using the Playlist in OBS

  1. Install VLC on the OBS machine if it is not already available.
  2. In OBS, add a new VLC Video Source.
  3. Use the plus button beneath its playlist and choose Add Path/URL.
  4. Select the exported .m3u file.
  5. Confirm that OBS can resolve every local path and remote URL in the playlist.
OBS VLC Video Source configuration with a playlist path
Load the exported M3U into the VLC Video Source playlist.
OBS formatting The builder exports the playlist without an unwanted trailing newline because the OBS VLC source can be strict about file formatting.

Reference

M3U Format

The export uses Extended M3U. The file begins with #EXTM3U. Each media item is represented by a metadata line followed by its path or URL.

#EXTM3U
#EXTINF:1350 group-title="block-1" tvg-type="content",Episode 01
/Users/yourname/Videos/episode-01.mp4
#EXTINF:30 group-title="ad-break-1" tvg-type="commercial",Soda Ad
https://media.example.com/ad.mp4
#EXTINF:8 group-title="ad-break-1" tvg-type="bumper",And We're Back
/Users/yourname/Videos/back-bumper.mp4
Drop Zone Ops fieldM3U output
DurationThe number after #EXTINF:, in seconds
Display NameThe title after the comma
TagThe custom tvg-type attribute
GroupThe group-title attribute
File Path / URLThe line immediately following the metadata

Problems

Troubleshooting

The playlist loads, but local media cannot be found

Open the exported M3U in a text editor and inspect the media paths. Confirm that the root folder matches the playback computer, the filenames are correct, and Windows/macOS path conventions are not mixed.

A remote URL does not play

Test the URL directly in VLC. It may point to a webpage, require authentication, expire, redirect in an unsupported way, or block access from the playback software.

Total Time is incomplete

The runtime is calculated only from entries with valid duration values. Edit missing entries and use MM:SS or H:MM:SS.

CSV fields are not recognized

Use the exact header names path,name,duration,tag,group. Save the file as a standard comma-separated UTF-8 CSV and quote values that contain commas.

The Commercial Injection template fails to lock or import

Validate that the file contains valid JSON: double-quoted keys and strings, no comments, no trailing commas, and properly balanced braces and brackets.

OBS does not reflect a replaced playlist immediately

Refresh or recreate the VLC source, or remove and re-add the M3U path. Some OBS/VLC source states may cache the previous playlist contents.

Folder dropping behaves differently in another browser

Folder traversal depends on browser file APIs. Use a Chromium-based browser for the strongest folder-drop support, or add individual files and apply the root path manually.

Environment

Compatibility

The project has been tested on macOS Apple Silicon, Windows 10/11, and Ubuntu 24.04. It is designed for modern Chrome, Firefox, Safari, and Edge.

Local file security Browser behavior can differ when opening app.html directly from disk versus serving the folder from a static web host. Core playlist building is designed to work as a local file, but browser privacy controls may affect some folder APIs.