fix(deps): declare youtube-transcript-api in pyproject.toml [youtube] extra

skills/media/youtube-content/scripts/fetch_transcript.py and
optional-skills/productivity/memento-flashcards/scripts/youtube_quiz.py
both import youtube-transcript-api at runtime, but the package was not
listed in pyproject.toml.  A fresh `uv sync` therefore omits it, and
both skills fail on first invocation with:

    ModuleNotFoundError: No module named 'youtube_transcript_api'

Add a new [youtube] optional-dependency group with
youtube-transcript-api>=1.2.0 (the v1.x API surface the scripts already
use) and include it in [all] so standard installs pick it up.

Regression tests: TestPyprojectDeclaresYoutubeExtra verifies the extra
is present in pyproject.toml and included in [all].

Closes #22243

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Wesley Simplicio 2026-05-09 15:13:19 -03:00 committed by Teknium
parent a671d8a27a
commit 98e94beb1b
2 changed files with 95 additions and 0 deletions

View file

@ -126,6 +126,13 @@ google = [
"google-auth-oauthlib>=1.0,<2",
"google-auth-httplib2>=0.2,<1",
]
youtube = [
# Required by skills/media/youtube-content and
# optional-skills/productivity/memento-flashcards (youtube_quiz.py).
# Without this declaration uv sync omits the package and both skills fail
# at first invocation with ModuleNotFoundError (issue #22243).
"youtube-transcript-api>=1.2.0",
]
# `hermes dashboard` (localhost SPA + API). Not in core to keep the default install lean.
web = ["fastapi>=0.104.0,<1", "uvicorn[standard]>=0.24.0,<1"]
rl = [
@ -163,6 +170,7 @@ all = [
"hermes-agent[mistral]",
"hermes-agent[bedrock]",
"hermes-agent[web]",
"hermes-agent[youtube]",
]
[project.scripts]