Repository navigation
Releases: Ochichan/Yututui
Releases · Ochichan/Yututui
Release list
v1.7.9
- Fixed YouTube playback that stayed at
0:00 / --:--. It failed every time with a cookies
file and sometimes without one. yt-dlp is no longer pinned to theweb_safariplayer client,
which now returns only storyboard images. It uses yt-dlp's default clients without the TV
clients, whose stream URLs return 403 in mpv. - When a YouTube track fails to load before playback starts, the player resolves it once to a
direct stream URL and loads it again. The TUI and the headless daemon both retry. If the
retry also fails, the skip message no longer blames yt-dlp, and the consecutive-error breaker
still stops an offline session from skipping through the whole queue. - When yt-dlp reports that the account cookies are no longer valid, the TUI shows an error
asking for a fresh cookies file, and the daemon records it as its last error. The first
YouTube track of a session runs this check, so a single-track queue shows it too. - yt-dlp's "Sign in to confirm your age" error is now reported as sign-in required instead of
a bot check. - On macOS, the delete key (which sends Backspace) now deletes on the Library screen, in the
queue popup, and in the listening overlay. Text fields, the playlist picker, the Mini tier,
and custom Backspace bindings keep normal Backspace behavior. - Updated tokio to 1.54.1 for RUSTSEC-2026-0386. Five new advisories without an upstream fix
(zbus 5 crates, basic-toml, and crypto-bigint 0.5 through age) are recorded indeny.toml
with the reason each path is accepted.
v1.7.8
v1.7.7
v1.7.6
v1.7.6 — 2026-09-20
- Local crossfade: Local Deck and downloaded files can blend into the next track on a
second mpv process. Set the length in Settings under Local crossfade (off to 3.0 s). Skip,
previous, jump, and an open video overlay still cut. The footer showsxfade N.Nswhile the
setting is on and this machine can run a second deck. - Radio steering: while Ctrl+R radio is streaming,
Bbans the current track,Shift+A
bans its artist, andeopens a station card for soft "more like" and exclude seeds. The
control box showsbanned N · seeds M. Bans and seeds last for the session and apply to the
headless daemon's ranking as well. - Atlas hover: station pins highlight under real mouse motion, and right-clicking a pin
offers Play now, Favorite, Copy stream URL, and Open country list. Terminals that never report
motion show no hover. - Play start: the start timeout now covers the full mpv spawn and IPC-connect budgets (it was
5 s), so a slow first start no longer reports failure. Starting a new track while paused now
plays it, because mpv kept its pause state across loads. Cookie-backed resolves no longer
fail with "Requested format is not available" when theweb_safariclient has no audio-only
stream. - Crossfade fixes (PRs #184, #186–#191): the time display no longer sticks at
0:00 / --:--
after an overlap; turning crossfade off after a finished overlap no longer silences the
current track; chapters, duration, and codec info now follow the incoming track; a crashed
standby mpv no longer stops later overlaps; a seek during source recovery is no longer
swallowed, and back-to-back loads each get their own generation.
v1.7.5
v1.7.5 — 2026-09-06
- Atlas mode: press
ain dedicated Radio mode (or click Atlas globe) to turn the Player
into a rotatable, zoomable globe of Radio Browser stations drawn in Braille dots (ASCII in
retro mode). No image protocol and no new crates. Geometry comes from omarchy-radio-atlas
(MIT) and Natural Earth (public domain); the station list is cached on disk for 24 h. - Momoring: the DJ Gem start screen mascot is now Momoring, an animated braille character
drawn at the largest of five sizes that fits beside the onboarding text. At 80x24 it hides
instead of covering the Ask box. - Fixed: the first dynamic mpv command reused the
chapter-listobserver's request id. - Japanese Settings status for Streaming source now uses the shared field label (おすすめソース).
- Parallel remote tests no longer race on a shared socket name; every test socket path is now
unique by construction. - Internal cleanup with no intended behavior change: two readability passes, a simpler daemon
owner loop, one candidate pool for the streaming loops, and deduplicated OpenSubsonic
playlist observation commits. - Every release archive is now built and checked in a PR preflight before tagging.
v1.7.4
v1.7.4 — 2026-08-25
- Sleep timer:
Shift+S(orytt -r sleep <minutes|off>) arms a fade-out timer that pauses
playback at the deadline and restores the pre-fade volume. Works in the TUI, the remote CLI,
and the headless daemon; the countdown shows in the docked status line and in
ytt -r status --json. One shared state machine inyututui-corekeeps App and daemon in
parity. - Chapter navigation: long-form tracks (DJ sets, podcasts) show chapter tick marks on the
seekbar and their active chapter name;!/@jump between chapters (mpv-style). - Real terminal screenshots for the README/tour — 19 live slots including search, sources,
library, queue, downloads, settings, EQ, themes, local deck, live radio, retro, onboarding,
help, and the right-click context menu — plus a scripted hero GIF, the spinning-donut and
fireworks canvas animations as GIFs. The slots that need a Gemini key, live playback capture,
or another OS's UI keep honest placeholders. - PO-token / bot-era readiness:
ytt doctornow reports PO-token provider, oauth plugin,
and cookies readiness; 403/429 playback failures point at them directly; README/MANUAL cover
the setup in English, Korean, and Japanese. - "Six catalogs" corrected to seven (OpenSubsonic joined the search box); terminal-compatibility
matrix gained dated foot smoke-run evidence. - Folded in the Windows atomic-replace retry fix (PR #162) for the transient
MoveFileExW
access-denied flake family. - Release notes for v1.7.0–v1.7.3 backfilled on GitHub.
v1.7.3
v1.7.3 — 2026-08-21
- Removed the experimental full GUI app — the TUI and the tray mini player remain (PR #158).
- h2 0.4.16 (RUSTSEC-2026-0258); actions/attest-build-provenance 4.2.2.
- Windows quit-test persistence flake fixed; rustc 1.98 unused-import cleanup.
- README: dropped the "Public beta" label and synced ko/ja with en.
v1.7.2
v1.7.2 — 2026-08-05
- Dependency refresh: reqwest reunified on 0.13, vendored ratatui-image moved to windows 0.62,
cargo-deny skip list converged with the new graph. - Defects: publish uses conventional 0o644 for world-visible library roots; Settings no longer
traps exits when the playback tool is missing; local-index tests isolated per test. - Documentation: custom-CA trust coverage and the one unreproduced macOS case noted; core
coverage stays advisory at 79.61%.
v1.7.1
v1.7.1 — 2026-07-30
- Real WebDAV servers and used profiles now work; a synced device can import portable data
without bricking sync; the terminal outcome of a no-op owner sync is recorded. - yt-dlp invocations no longer pass
--js-runtimesto builds that lack it. - Windows daemon smoke CI: trusted session snapshots, wider quit-flush deadline, and visible
daemon evidence on timeout.
v1.7.0
v1.7.0 — 2026-07-29
- RFC #114 shipped: encrypted WebDAV sync with device pairing, recovery kits, revocation,
and automatic sync; OpenSubsonic (Navidrome) as a first-class source — secure playback, the
server library screen, ratings/history bridges, and linked playlist sync. ytt server publishcopies downloaded tracks into the configured music folder and asks
the server to rescan; the TUI exposes the same action from the Library.- Personal-state v2 export/import with preview-first merges.
- Fixed a debug-build stack overflow in the anonymous yt-dlp search chain; library/queue renders
cache favorites, row text, and playlist filters; radio separator motifs build once. - The 1211-line runtime dispatch match split into per-domain handlers.
- Windows ACL fixes for data export; Windows/macOS suites now run on every PR.