Save YouTube videos and MP3s to disk. Play them when the internet is down.

Paste a URL. A video, or a whole YouTube playlist: you pick what to keep before anything downloads. It queues, downloads into your library folder, and survives a restart.

Add a folder of MP3s. Music you already own goes in the same library.

Press play. Three small windows that snap together. If you remember Winamp, you already know how this works.
A blue panel titled Windows protected your PC appears. That is SmartScreen, and it says the same thing about every program it has not seen before.
Click More info, then Run anyway. It asks once.
Why: hurricane-party is a one-person project and the exe is not code-signed. A signing certificate costs a few hundred dollars a year and would only make this panel go away. The source is public if you want to check what you are running.
The zip is 127 MB for a 10 MB app because yt-dlp, ffmpeg and a JavaScript runtime ride along inside it. They do the downloading and the MP3 conversion; hurricane-party is what you look at.
A window of its own, opened from the library. Paste everything you want before the weather turns — videos, whole playlists, one link per line. It reads each line, says what your library already has, and adds up what the rest comes to in video and in audio side by side, against the room left on your drive.
One press queues all of it. A download that fails because the connection went waits a minute and tries again instead of giving up, so a batch started while the power is flickering finishes on its own. Closing the window stops nothing.
A line that isn't a link, a video that has gone private, a list that won't read: each says so on its own line and holds nothing else up.

Files dropped into a library folder by hand show up about two seconds later, with no rescan. Downloads go wherever you point them, and a download whose folder is missing waits for it rather than landing somewhere else.

Transport, time, seek, volume. The analyser runs on a weather radar ramp: green through yellow to red, peaking magenta. Click it for an oscilloscope.
Ten bands, a preamp, and a trim that keeps a boosted mix from clipping. A lamp lights when it does. Save the curve as your own preset, or import presets from Winamp .eqf files. Keep one for a single song with FOR THIS TRACK, press AUTO, and that song plays with it every time.
Resizes by the corner grip. Shuffle and repeat live in its bar. The lit seam between windows is a bond: drag it to resize both neighbours, double-click to break it.

Double-click Main's title bar and it collapses to a fourteen-pixel bar that stays on top. Title, transport, time. This is the one you live in while working in another app.
.wsz skins load and dress all three windows. Most work. If a skin uses something this player doesn't have, it says so instead of drawing it wrong.
Pick Purricane under Look in Settings and every window turns over at once. It comes with a skin of its own: soft rounded chrome in floss pink, milk white, mint, periwinkle and butter, with words in Comic Sans.
A mandala sits in the round badge on Main. Bass pushes it out, the highs scatter dots at the rim, a beat makes it bloom, and its colour drifts once around the palette every minute and a half. 6 SEG and 8 SEG cut it into six or eight.
It turns slowly and never flashes more than a few times a second, whatever the tempo. CALM holds it still and lets it answer the music in size only. Windows' reduced-motion setting does the same.
Tick On the desktop under Companion in Settings and he turns up on the top edge of a window, seagull and all. He wanders along it now and then. Drag his window and he hops; pull it out from under him and he drops to the next one down.
While music plays he break-dances the whole song through: a move on every beat, and the groove kept between them. When nothing has played for half a minute he curls up for a nap, and the next song wakes him.
Click him and he leans into the pet; drag him and he hangs by his scruff until you let go. Clicks around him go straight through, and he never takes the keyboard, so he can stay out while you record your screen. He is his own little program: if he ever trips, the music plays on.
Pick him in Settings, under Companion: a tuxedo kitten who sits and blinks, licks a paw, waves his paws to the beat, and curls up when it goes quiet. Jolt his window and he lands all puffed up.
Paint a companion… hands you a blank sheet to draw on, 64 pixels a frame. Or bring a folder of frames, or an Aseprite export with a tag for each thing he does, and Import companion… packs it, crisp on any screen. Only standing still has to be drawn; the rest can come later.
Companions stay on top, but when another window covers the one they stand on, they hop down to the bottom of the screen. Minimise their window and they go with it, and come back where they stood.
Pick him in Settings, under Companion. He taps his foot and hums while he waits, and when the music stops he naps under his sombrero with the guitar across his lap.
He strums and kicks on every beat the player hears, and keeps the groove going between them, so a quiet song gets a dance too. Every companion does now.
Jolt his window and he sees stars. Click him and he beams, hearts and all. Pick him up and he sits in the air, still holding his guitar.
Main's VIS button opens a window of its own for the music, any size you like. Double-click it or press F11 and it fills the screen; Esc brings it back. A laptop on the table in the dark, lighting the room.
Flow draws the song's waveform as a ring and lets it stream outward in trails, the way Geiss and MilkDrop did in Winamp. Fractal is a Julia set that turns and changes shape, breathing with the bass. Pick one; it stays picked.
Both wear your skin's colours and kick on the beat, never more than three times a second. Calm them for a slow drift. Drawn on your own machine, from the music you are playing.
The player listens on a named pipe, and since v1.0 the protocol holds still: it only grows, so a program written against it keeps working. Anything on the machine can ask what is playing, skip or seek, search the library and play from it, see where the windows are, follow the analyser's colours, or read the analyser as a stream of frames, which is enough to drive an LED rig from the bass. docs/control-api.md is the reference, and examples/viz_bars.py is a small Python client to start from.