feat: first-run demo mode (no OAuth required)#26
Closed
jdwit wants to merge 1 commit into
Closed
Conversation
Adds `ytstudio demo tour` and `YTSTUDIO_DEMO=1` env override so users can try the CLI against a baked fake channel in seconds, without an account or API credentials. Unblocks the "try in 10 seconds" README block and the terminaltrove demo recording.
Owner
Author
|
Closing per current direction; only the playlists PR (#25) is being shipped from this trio. Branch left in place in case we revisit. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
ytstudio demosub-app:videos,analytics,comments,tour,inforun the real command code paths against a built-in fake channel with no network calls.YTSTUDIO_DEMO=1 ytstudio <any-command>routesget_data_serviceandget_analytics_serviceto the fake services, so any existing command works in demo mode out of the box.pipx install ytstudio-clithenytstudio demo tour) that drops the OAuth gate from the first-run experience.scripts/terminaltrove-demo.taperewritten to record the demo tour, so the terminaltrove GIF no longer needs a sandbox channel.Highlights
ytstudio demo tour [--no-pauses]: end-to-end run of videos -> analytics -> comments with deterministic pacing for VHS.YTSTUDIO_DEMO=1 ytstudio videos list(and any other read command) works against bundled JSON fixtures shipped inytstudio/fixtures/.ytstudio statusshowsmode: demoand short-circuits the credentials check when the env var is set.demo mode: using built-in fake channel (no network)), suppressed for-o jsonso piped JSON stays clean.Test plan
uv sync --group devuv run ruff check .uv run ruff format --check .uv run pytest -q(234 passed, including 19 new tests; demo + demo_service coverage >= 90%)uv buildconfirmsytstudio/fixtures/*.jsonships in the wheelpipx install . && ytstudio demo tour --no-pausesvhs scripts/terminaltrove-demo.tapeOut of scope