ATmosphereConf 2026 was recorded live on Streamplace. All talks are now available as VODs stored on our new beta Video on Demand service. But there's no frontend yet. That's where you come in.
In a world where Streamplace and the AT Protocol are successful, there won't be just one app or website for everyone's content. Solving video for everybody forever means: many apps, many websites, thousands of unique experiences for every situation. We want your take!
TLDR:
DURATION: Submissions will close in two weeks: Sun Apr 12, at 11:59 PDT.
REQUIREMENTS: Your app or website has to show the AtmosphereConf VODs, one way or another. Websites must be accessible on the public internet. Native apps must have clear instructions for building and installation. Within those parameters, get creative!
SUBMISSION:
Reply to the @stream.place VOD JAM announcement post with links to the public endpoint of your app and a Tangled repository.
Submissions must be open-source and permissively licensed (MIT or Apache 2.0).
If you're working as part of a team, make sure to tag all your team members in the submission!
If you use AI to help create the app, please let us know what you used, either in the README or in the commit descriptions.
PRIZE: All valid submissions will receive a VOD badge that may be equipped to show up next to your name in Streamplace chat from now until the end of time. Show off that you were here when it all started!
Streamplace VOD Beta Documentation
We wanted to get the VODs out as quickly as possible, but they're rough at the moment; the timestamps need to get sliced nicely. We'll be cleaning them up over the course of the jam — by the end we'll have working apps with clean video! Other things that will be added as we go:
AAC audio rendition (you might have some problems with iOS playback until we do this)
Transcoded video renditions (720p, 240p)
Thumbnails
Lexicon schema
We'll update this post as we get things polished.
The data
Every talk is a place.stream.video record in the did:plc:rbvrr34edl5ddpuwcubjiost repository (@stream.place). You can list them all on pds.ls.
Each record looks like this:
{
"$type": "place.stream.video",
"title": "How Streamplace Works: VODs",
"source": {
"ref": "bafkr4igmxmm3dei6tsgmwmfyuyyas74dlmminco5zfhad3lcinm3q3aa4e",
"size": 1448011796,
"$type": "place.stream.muxl.defs#archiveBlob",
"mimeType": "video/mp4"
},
"creator": "did:plc:jcahd7fl7h23c24ftxuhkhiw",
"duration": 2019548316666,
"createdAt": "2026-03-28T23:44:48Z",
"livestream": {
"cid": "bafyreifdrkhtt2gpeqxq26aqb64rfsxhc6eysfjksldkaw6os4ihck4za4",
"uri": "at://did:plc:jcahd7fl7h23c24ftxuhkhiw/place.stream.livestream/3mi5stzyxji2e"
}
}Key fields:
title — talk title
creator — DID of the original streamer
duration — nanoseconds
livestream — back-reference to the original livestream record
source.data.ref — BLAKE3 content hash of the video archive
The livestream field links back to the original place.stream.livestream record if you want additional context about the stream.
Playing a video
We have a beta service set up for this at vod-beta.stream.place, and the data structures and XRPC endpoints may change as we move toward generally-available VOD. The primary XRPC that you'll need is place.stream.playback.getVideoPlaylist, which returns a standard HLS CMAF playlist.
Given a record URI like at://did:plc:rbvrr34edl5ddpuwcubjiost/place.stream.video/3mi2ikg6gij26, you'll want to hit:
https://vod-beta.stream.place/xrpc/place.stream.playback.getVideoPlaylist?uri=at://did:plc:rbvrr34edl5ddpuwcubjiost/place.stream.video/3mi2ikg6gij26
What we're looking for
Video player apps and web UIs for browsing talks
Integrations with existing AT Protocol clients
Creative uses of the data — playlists, clips, highlights, search
Accessibility features — captions, transcripts, chapters
Hilarious and amazing nonsense that we couldn't possibly have predicted
Good luck and happy vodding!