Skip to content

Releases: binlecode/ting

v0.25.0

Choose a tag to compare

@binlecode binlecode released this 29 Sep 04:40

What's New in v0.25.0

  • Multi-Workspace Non-Destructive Stage (w1–w5, Ctrl+n/Ctrl+p): Seamlessly switch between 5 independent top-level workspaces (Search, Feeds, Queue, Playlists, History) with full memory preservation of queries, cursors, and filters.
  • Responsive Multi-Pane Workbench (internal/tui/layout): Three geometric breakpoints (Compact <85, Standard 85–124, Wide ≥125). In wide terminals, dynamically renders a 3-column fluid workbench (Navigation sidebar + Stage list + Inspector & synced lyrics) isolated by whitespace gutters (layout.JoinColumns).
  • Persistent Player Dock & Clock SSOT (dockModel): Unified 250ms monotonic clock extrapolation with 1/8 sub-cell smooth progress bar (▏▎▍▌▋▊▉█) and chapter span markers.
  • Stage Karaoke Mode (F key): One-key full-screen immersive centered karaoke stage with flowing synced lyrics, exiting back to the exact workbench context via Esc / F / q.

v0.24.3

Choose a tag to compare

@binlecode binlecode released this 29 Sep 00:10

What's New in v0.24.3

  • Direct Arrow Key & j/k Playlist Selection: Pressing B (or b) now immediately highlights the first playlist with a distinct ❯ cursor. Navigate directly using ↑ / ↓ or k / j and press Enter to expand—zero manual digit typing required!
  • 8-Row Bounded Scrollable Window: Long playlist libraries (like 22+ playlists) are now windowed to at most 8 rows with smooth scrolling and (current/total) progress indicators, preventing terminal height overflow on compact 24-row windows.

v0.24.2

Choose a tag to compare

@binlecode binlecode released this 28 Sep 23:44

What's New in v0.24.2

  • Full 22-Playlist YouTube Extraction: Fixed an issue where yt-dlp dropped custom playlists from YouTube's feed/playlists grid. Now extracts all 22 custom playlists (music, classic_music, violin, coding_music, etc.) directly from page data with zero loss.
  • Direct binlecode Account Binding: TING_COOKIE_ACCOUNT=binlecode directly resolves to the YouTube multi-account session index where all 22 playlists live.

v0.24.1

Choose a tag to compare

@binlecode binlecode released this 28 Sep 23:22

What's New in v0.24.1

  • Multi-Account Cookie Preference (TING_COOKIE_ACCOUNT & --account): Support specifying the preferred Google/YouTube account when multiple accounts are signed into the browser. Accepts account email address (e.g. bin.le.code@gmail.com) or authuser integer index (0, 1, ...). Automatically resolves and scopes home feed, online playlists (B key), Liked videos, Watch later, history, and subscriptions to the chosen account.
  • Enriched Auth Introspection: ting-play --auth -j now reports cookie_account and resolved authuser index.
  • Hardened Visual Hierarchy & Row Sources: Aligned row source documentation to eight reversible sources and tightened test assertions.

v0.24.0

Choose a tag to compare

@binlecode binlecode released this 28 Sep 22:05

What's New in v0.24.0

  • Online Playlists Traversal (B Key): Dedicated uppercase B key to browse remote online playlists directly under your source account (e.g. YouTube Liked Videos, Watch Later, and custom playlists) via numbered picker; select to expand container tracks; press B again to cleanly restore the home/search list.
  • Agent CLI Contract for Online Playlists: Added ting-play --playlists [--engine E] [-n N] [-j] public verb with deterministic JSON envelope and strict 4-tier exit code semantics.
  • Visual Hierarchy Refactoring: Tiered contrast system separating Foreground (accent), Secondary (metadata/duration/progress in soft gray), and Muted (structural lines, scrollbar tracks, low-noise micro-keycaps), eliminating bottom-bar zebra contrast noise.
  • Contract & Test Suite Hardening: Enhanced boundary test coverage, elimination of private boundary calls, and 100% clean-tests compliance across all contracts.

v0.23.0

Choose a tag to compare

@binlecode binlecode released this 28 Sep 13:42

New Features

  • Personalized Recommendation Feeds: Launch ting without query arguments to directly enter your YouTube account's Home Feed recommendations. Supported via CLI with ting-play --feed home -j -n 20.
  • Single-Hop Related Tracks Traversal: Press g on any track to instantly expand related video recommendations (Up Next) via official lightweight Innertube endpoint; press g again to cleanly restore the original search results without extra network trips. Supported via CLI with ting-play --related -j -n 10 -- <ID|URL>.
  • Account Containers Support: First-class support for Watch Later (WL), Liked Videos (LL), Subscriptions (feed:subs), and Watch History (feed:history) via ting-play --items -j -- <container>.
  • Comprehensive Documentation: Complete overhaul of USER_MANUAL.md, ARCH-cli-contract.md, ARCH-tui.md, and ARCH-engine.md reflecting the discovery paradigm.

v0.11.3

Choose a tag to compare

@binlecode binlecode released this 14 Sep 20:40

Release v0.11.3

  • Ensure exiting via q cleanly stops playback (closing resolved ROADMAP item)
  • Support Q (Shift+Q) for detached exit (quitting ting while keeping background playback running)

v0.11.2

Choose a tag to compare

@binlecode binlecode released this 14 Sep 20:30

Release v0.11.2

  • Fix cover image preview for pasted URLs: query raw metadata with --info -J to extract thumbnail, pic, and picUrl for YouTube, Bilibili, and NetEase
  • Synthesize YouTube thumbnail fallback in JQ_TEXT_DEFS and build_playlist_rows

v0.11.1

Choose a tag to compare

@binlecode binlecode released this 14 Sep 20:14

Release v0.11.1

  • Fix Kitty graphics protocol chunking in image_emit so final data chunks carry m=0 without corrupting Base64 padding stream
  • Add fast terminal detection in init_image for Ghostty, WezTerm, and Kitty to avoid probe timeouts
  • Lower height threshold from 10 to 4 rows so cover art previews render in standard 24-row terminals
  • Synthesize thumbnail metadata for pasted YouTube tracks

v0.11.0

Choose a tag to compare

@binlecode binlecode released this 14 Sep 19:36

Release v0.11.0

  • Robust clipboard pasting across all terminal emulators (macOS Terminal.app, iTerm2, Alacritty, Kitty, WezTerm, etc.)
  • Unbracketed paste tail detection with non-blocking POSIX termios burst protection
  • Native system clipboard access via p (Vim paste) and Ctrl+V
  • In-place URL resolution and direct passthrough in / live filter mode and n search prompt
  • Automatic cleanup of mobile share text wrappers (Bilibili/NetEase)
  • Added URL auto-sniffing for player and --viz-color support