Changelog¶
The format of this changelog is based on Keep a Changelog. Versions follow Calendar Versioning.
2026.8.28¶
Added¶
- Add
ypb playcommand to play past moments in a web player with dash.js - Add
--uiflag toserveto also serve the web player - Add mock playback (
ypb mockplaycommand andypb-mockcontainer image) for testing without YouTube - Add
idandstartattributes to thePeriodelement in generated MPDs - Add
suggestedPresentationDelay,minimumUpdatePeriod,publishTime, andLocationto dynamic MPDs - Add
bandwidthtoRepresentationfrom the stream total bitrate - Add
MoreInformationURLtoProgramInformationin generated MPDs
Changed¶
- Build Go binaries into the
buildfolder - Increase HTTP client timeout to 90 seconds and retry count to 5
Fixed¶
- Parse times with two hyphens (
--) as an interval separator - Avoid
http: superfluous response.WriteHeader callerror - Reject unconsumed trailing input in interval expressions
2026.8.5¶
Added¶
- Add
--latencyoption andlatencyquery parameter on the/mpdendpoint for live-streaming latency correcting - Add
outputNameto/mpdJSON response
Changed¶
- Migrate documentation from mdBook to Zensical
- Rework input interval and moment validation
2026.7.27¶
Fixed¶
- Fix
nowat start rejection when--nowis set
Changed¶
- Resolve
nowto pinned time at parse time when--nowis set - Reject future start and end times at parse time
2026.7.26¶
Added¶
- Add
--nowflag andYPB_NOWto pin the current time (#9) - Add
compose.yamlto theypb-composeOCI artifact
Changed¶
- Binary is now built with
CGO_ENABLED=0
2026.7.23¶
Added¶
- CORS support for browser requests
- Ypb binary container image
Changed¶
- Change default port from 8080 to 9000
- Move playback, fetchers, info, and segment packages to root level
2026.7.13¶
Changed¶
- Group adaptations sets by codec family in MPEG-DASH MPD files
2026.7.12¶
Fixed¶
- Update dump format parsing and base URL handling (#7)
Added¶
- Accept passing yt-dlp options in most commands
2026.6.15¶
Changed¶
- Supress console windows on Windows
2026.6.11¶
Added¶
- Add playback and stream public packages
- Add parser for fractional seconds
- Add
/infoendpoint returning basic info about YouTube live stream
Fixed¶
- Set MPD@availabilityStartTime to now for dynamic DASH manifests
Changed¶
- Use yt-dlp’s
--write-info-jsonto dump info JSON - Change license from MIT to GPLv3
2026.2.24¶
Added¶
- Accept open-ended interval in
/mpd/endpoint to compose dynamic MPD
Fixed¶
- Pin start-up time as
nowin strict mode (downloadandcapturecommands) (#5)
Changed¶
- Rename
/rewind/endpoint to/mpd/ - Rename
/videoplayback/endpoint to/segments/ - Normalize MPDs to be playbable in Shaka player
- Avoid downloading same segment in capture timelapse with small intervals
- Switch to custom text progress bar in capture timelapse
2026.2.18¶
Changed¶
- Retry on connection errors (“connection reset by peer”, “connection timed out”, etc)
- Print standard output and error from external commands directly (#2)
2026.2.16¶
Added¶
- New
capture framecommand to capture a single frame - New
capture timelapsecommand to capture multiple frames
Fixed¶
- Incorrect 12-hour format (changed to 24-hour) in output filenames
Changed¶
- Rework CommandRunner to accept functional options
2026.2.12¶
Fixed¶
- Incorrect parsing of ‘now’ in interval expressions (#1)
2026.2.10¶
First release.