The meeting sees one camera
Pick zlist as the camera and microphone in Zoom once. From then on, what you play in zlist is what the meeting gets.
- Your camera and microphone
- Video and picture cues from a playlist
- A cue on air replaces the camera, and its sound replaces the microphone.
- Between cues, the camera and microphone go straight through.
- Everything is fitted into 1920×1080 at 30 frames a second.
- zlist Camera
- zlist Audio on Mac, a loopback cable such as VB-CABLE on Windows
The monitors, clocks and cue list are for you alone. The meeting never sees them.
Made for the person running the talk
The operator also watches the clock, the speaker and the chat. zlist keeps everything else in one window, and out of the meeting.
Bring the playlist you have
VLC playlists (.xspf, .m3u, .m3u8) keep each title, and VLC's start and stop times become the part that plays. Mitti projects keep cue names, in and out points, and whether a cue holds its last frame or runs on Mac. A folder of videos and pictures plays in name order.
Have slides? Export a Keynote or PowerPoint deck as images and open the folder: each slide becomes a cue, in slide order. A picture stays up for five seconds, then zlist cuts back to the camera. Export the deck as a movie instead to keep its timings and animations.
Every talk of the day, ready
Add all of the day's playlists to the sidebar. zlist prepares each one ahead, shows a check mark when it is ready, and opens them all again at the next launch. Click to switch between talks. Mac
Know what goes out next
PROGRAM shows what the meeting sees. PREVIEW shows what comes next: the cued cue, or the camera while a cue plays. The cue clock turns amber at 10 seconds and red at 5, and the playlist clock shows what is left of the talk.
Cut cleanly
Play, Stop, Next and Previous, or double-click any cue. FTB fades picture and sound to black over half a second, and back again. Drag the CUED bar to start a clip later than the playlist says, and PREVIEW shows that frame Mac.
Sound that follows the picture
Your microphone is live while the camera is on. A cue with sound takes its place and gives it back when it ends; a still or a silent clip leaves the microphone open. Mute never silences a cue. Send the cue sound to headphones or room speakers too.
Drive it from anywhere
Global hotkeys that work while Zoom is in front, the keyboard's media keys, and OSC on UDP port 9000 for Bitfocus Companion and Stream Deck. Each button shows its keys. A second zlist can follow the first over OSC, a set delay later Windows.
Stay out of the meeting's way
Overlay mode floats a short strip across the top of the screen and the cue list down one side, so Zoom's gallery stays in view. Keep the window on top and dim it.
Feed the room as well
External output sends the meeting's picture to a second display, or to a window of a fixed size for OBS or screen sharing. Choose whether it shows the camera or black between cues.
Fails safe
If the chosen camera is gone, zlist tries real cameras before capture cards and virtual cameras, and says which one it took. When zlist is closed, the meeting sees a quiet placeholder, never a frozen frame. A cue that cannot play says why in red, and Play refuses it.
Try it before the talk
Open the sample playlist from the empty cue list: title cards, colour clips, a cue that runs on, and a Sync test that flashes and beeps once a second.
Sound and picture land together
A meeting app gets a video frame later than the sound that goes with it. zlist measured the gap with a flash-and-beep clip, recorded the way a meeting app records, and now draws each frame early so the two arrive together.
Play the sample's Sync test in a test meeting to check it on your own setup.
Two native apps, one way of working
The Mac app is written in Swift with a CoreMediaIO camera extension and a Core Audio driver. The Windows app is written in C# and WinUI with a Media Foundation virtual camera. The playlist readers and the transport are the same logic on both, with the same tests.
| What | macOS | Windows |
|---|---|---|
| Virtual camera | zlist Camera | zlist Camera |
| Sound to the meeting | zlist Audio, a virtual microphone | A loopback cable such as VB-CABLE |
| VLC playlists and folders | Yes | Yes |
| Mitti projects | Yes | Open them on a Mac |
| Monitors, clocks, FTB, overlay, external output, presentation timer | Yes | Yes |
| Hotkeys, media keys and OSC | Yes | Yes |
| Playlist sidebar and cued start | Yes | Coming |
| Lead a second zlist | Coming | Yes |
| Updates | Built in | Install each new release for now |
| Signature | Developer ID, notarized by Apple | Not signed yet; needs Developer Mode |
Curious how the frames and the sound travel? The technical notes draw the whole path on each platform.
For the control room
These are written and being tested. They are not in a release yet.
Blackmagic DeckLink
Send the program picture out of an SDI card, 720p to 2160p, with the meeting's sound on channels 1 and 2. Take an SDI camera in as zlist's camera. Windows first.
HyperDeck control
zlist answers as a HyperDeck, so an ATEM switcher's Auto Roll plays the cued cue on the cut. Windows first.
Windows catches up
The playlist sidebar, the cued start, and a signed installer that updates itself.
Mac catches up
Lead a second zlist over OSC, for a room and a meeting that should see the same cues.
Ready in a few minutes
Download the latest release, then pick zlist in your meeting app.
On a Mac
- Download
zlist-<version>.zipand move zlist.app to Applications. - Open zlist and allow the camera and the microphone.
- Click Camera in the toolbar and turn on zlist Camera in System Settings.
- In Settings ▸ Audio, click Install for zlist Audio.
- In Zoom, pick zlist Camera and zlist Audio.
On Windows 11
- Install VB-CABLE, and turn on Developer Mode.
- Download the x64 or Arm zip, extract it, and run
install.ps1. - Click Camera in the toolbar and install zlist Camera.
- In Settings ▸ Audio ▸ Send to, pick CABLE Input.
- In Zoom, pick zlist Camera and CABLE Output.
Every step, and how to check a download against its SHA256SUMS, is in the install guide. Something not working, or a player you want zlist to read? Tell us in an issue.