// ko2u.com · San Jose, CA
A personal playground
for K-Pop,
science, and writing.
K-Pop curated by weather and time of day. Science experiments that run in a browser. Essays about things worth thinking about.
// K-Pop
Korea's best PDs.
Your playlist.
Not an algorithm guessing your taste. Every track was hand-picked on air by Korea's top radio PDs — MyDJ simply matches their judgment to your weather, your hour, your mood.
MyDJ — Curated by Korea's Best PDs
KBS Cool FM and MBC FM4U play around 50–80 tracks a day — every one chosen by a professional PD. MyDJ records those choices, tags each track with the weather and time it was aired, and answers one question: if it's raining at midnight in Seoul, what did Korea's best PDs reach for?
Read the weather
Your location, temperature, weather code, and time of day — fetched live.
Match PD history
Find tracks that Korea's best PDs actually chose in similar conditions.
Play on YouTube
Each track links directly to its YouTube audio — no downloads, no ads.
Refresh anytime
Conditions change. Hit Tune In again and get a fresh read.
Each weather condition maps to a distinct playlist — 9 weather kinds × 8 time slots × 5 temperature bands = up to 360 distinct moods. No two moments sound the same.
Your playlist is not generated — it's inherited. Every track on it was first selected by a Korean radio PD whose job is knowing what sounds right, right now. MyDJ just delivers their judgment to your moment.
// K-Pop · How it works
The PDs behind the curation
MyDJ is a data pipeline built on professional judgment, not a playlist generator. It records what Korea's best radio PDs actually chose to play — then uses those choices as the curation signal.
Collect the PD logs
KBS Cool FM and MBC FM4U publish their playlists. A crawler collects every track the PDs chose — title, artist, album, program, and timestamp — into a local SQLite database.
Tag with weather
For every track, the weather at the time of broadcast is fetched from Open-Meteo using the station's coordinates. Temperature, weather code, rain, snow, and time-of-day bucket are stored alongside the track.
Match current conditions
When you request a playlist, the system detects your location, fetches current weather, and queries: "find tracks that aired when conditions were like this." Exact match first; fallback ladder if the exact combination is rare.
Attach YouTube links
Each matched track gets a YouTube video ID attached — found by searching the YouTube Data API. The player streams audio only, without video.
The intelligence here is the curation logic — not a generative model, but a retrieval system that uses real human curation (Korea's best radio PDs) as its signal. The PDs decided what sounds right in the rain. The system delivers their judgment to you.
// K-Pop · Stations
Where the data comes from
MyDJ currently pulls from three stations across two cities.
KBS Cool FM and MBC FM4U are two of the most-listened FM stations in South Korea. Their playlists are publicly available and well-structured, making them ideal for data collection. KEXP is included as a contrast — a US independent station known for eclectic, mood-driven programming.
More stations can be added to config.json without changing any code.
// K-Pop · Weather × Mood
360 ways the weather sounds
Every playlist is shaped by three dimensions of your current moment.
9 × 8 × 5 = 360 distinct moods. The fallback ladder ensures you always get a playlist — exact match first, then same weather + time, then time-only, then random from the station's full history.
// Science
The science playground
Small experiments, simulations, and visualizations — things that are more fun to run than to read about.
Weather × Mood — The Data
A visualization of the MyDJ dataset: which tracks correlate with which weather conditions, and how the distribution shifts across seasons and cities.
Control Loops — Interactive
A PID controller you can tune in real time. Drag the gains, watch the system respond. Intuition before equations.
Signal in the Noise
How much signal can you pull out of a noisy measurement? An interactive demo of averaging, Fourier transforms, and filter design — in the browser.
More experiments being built. Check back.
// Writing
Things worth writing down
Essays on music, technology, and what happens when they intersect.
// Writing · 01
Korea's Best PDs, On Your Side
When people talk about AI and music, they usually mean one of two things: a song composed by a model, or a recommendation engine that guesses your taste from your clicks. Both exist. Neither is what MyDJ is about.
MyDJ starts from a different premise: the best curation already happened, on air, this morning. A professional PD at KBS Cool FM or MBC FM4U sat in a studio, looked at the clock, thought about the weather, thought about who was listening, and chose the next track. That decision is the product of years of craft. It is the most expensive curation signal in the music business — and it evaporates the moment the song ends.
MyDJ's job is to stop that evaporation. It records what the PDs chose, tags every track with the weather and the hour it aired, and builds an archive of professional judgment: this kind of song, in this kind of sky, at this kind of hour.
Then, when you press Tune In, it asks one question: what would Korea's best PDs reach for right now — where you are, in your weather, at your hour? And it answers with their own choices, not a statistical guess about people like you.
So no, the algorithm doesn't replace the PD. It works for them. It takes the judgment of the best curators in the business and puts it in your pocket, matched to your moment. You get a playlist made by professionals — for you, personally, right now.
That's the idea. The PDs make the choices. MyDJ makes them yours.
// Writing · 02
Why Weather Changes What We Hear
Rain doesn't just change the sound outside. It changes what music feels right to listen to. This is obvious if you think about it — most people have made a rainy-day playlist at some point — but it's worth asking why.
Part of the answer is tempo. Research on music and mood consistently shows that people reach for slower tempos when it's raining, faster tempos on clear, bright days. The body responds to barometric pressure, to light levels, to the sound of rain itself, and those responses pull toward certain kinds of music.
But the more interesting part is what the radio PDs figured out without any research. Korean radio PDs have been programming music for decades. They know intuitively what works at midnight in a storm — not because they studied psychoacoustics, but because they watched listeners respond. They developed a feel for it.
That feel is in the data. When you look at what KBS Cool FM played on rainy nights versus clear afternoons, the patterns are there: more ballads in the rain, more up-tempo tracks at midday, more introspective material at dawn. The PDs encoded their judgment into their playlists, and the playlists are logged.
MyDJ's weather matching is an attempt to extract that encoded judgment. The assumption is that the correlation between weather conditions and playlist choices is not random — that the PDs were responding to something real. The data supports that assumption. The clusters are there if you look for them.
// Writing · 03
Radio Is Not Dead — It Became Data
FM radio is supposed to be dying. Streaming killed it, the story goes. Why listen to a PD's choices when you can have infinite personalized selection?
Here's what that story misses: radio's playlists are logged. Every track, every timestamp, every station, every day — publicly available, structured, covering decades. That's not a relic of a dying medium. That's a dataset.
Streaming services have listening data. Radio has curation data. These are different things. Listening data tells you what people chose. Curation data tells you what experts, in context, with accountability, decided was worth playing.
The KBS Cool FM PD who chose a track at 11 PM on a rainy night in Seoul made a professional judgment. It was filtered by format requirements, yes, and by commercial pressures, yes — but it was still a human decision, made in a specific context, logged in a public record.
Multiply that by fifty tracks a day, two stations, a few years of logs. You have something that streaming services don't have: a record of human curation that's contextualized by conditions the curator was aware of when they made the choice.
Radio didn't die. It became the best curation dataset in the music business. That's not a small thing.
// Contact
Say hello.
Questions, ideas, or just want to talk about K-Pop and data? I'm here.