Laev.Skip (laev v0.1.40)

Copy Markdown View Source

Intro/credits skipping with a Netflix-style on-screen prompt.

Detection is two-layered, through one injected mpv Lua script:

  1. AniSkip windows (anime) — community-submitted OP/ED timestamps by MyAnimeList id + episode, resolved via the Kitsu mapping we already use. Fetched async alongside subtitles; cached 30 days.
  2. Chapter names — releases authored with "Opening"/"Intro"/"Recap"/ "Credits"/… chapters (only chapters ≤ 4 minutes, so a mislabeled real chapter never gets eaten).

What happens on detection is the LAEV_SKIP mode:

  • "ask" (default) — a "Skip opening · hold TAB" button appears briefly while the intro plays; Tab jumps past it, ignoring it watches it. Openings are part of the show — skipping is the user's call.
  • "auto" — jump immediately, with a brief OSD note.
  • "off" — no script at all.

Outside a detected intro, Tab is a +85s seek — the universal "no data, just jump the intro" key. No fingerprint detection on purpose: it needs several episodes' audio downloaded and analyzed before playback, which fights laev's instant-start, low-resource design.

Summary

Functions

mpv --script + mode arguments (instant, no network). [] when disabled.

Post-credit stinger handling for movies: prints a terminal alert and, when the skip script runs, passes the flags so the credits-skip button warns and an end-of-runtime OSD reminder fires. Networked (one TMDB call) — call from the async pre-launch task. [] for TV / no stingers / failure.

"during-credits and after-credits scenes" — human label for stinger parts.

Which stingers a movie has: [] | ["during"] | ["after"] | ["during","after"]. Disk-cached, so the pre-launch task warms it and the Now Playing screen reads it instantly.

AniSkip OP/ED windows for an anime episode as a --script-opts-append argument. Networked (Kitsu → MAL id → AniSkip) — call it from the async pre-launch task, not the launch path. Best-effort: [] on any failure.

Functions

script_args()

mpv --script + mode arguments (instant, no network). [] when disabled.

stinger_args(ctx)

Post-credit stinger handling for movies: prints a terminal alert and, when the skip script runs, passes the flags so the credits-skip button warns and an end-of-runtime OSD reminder fires. Networked (one TMDB call) — call from the async pre-launch task. [] for TV / no stingers / failure.

stinger_label(parts)

"during-credits and after-credits scenes" — human label for stinger parts.

stinger_parts(arg1)

Which stingers a movie has: [] | ["during"] | ["after"] | ["during","after"]. Disk-cached, so the pre-launch task warms it and the Now Playing screen reads it instantly.

window_args(ctx)

AniSkip OP/ED windows for an anime episode as a --script-opts-append argument. Networked (Kitsu → MAL id → AniSkip) — call it from the async pre-launch task, not the launch path. Best-effort: [] on any failure.