Build foreign-language study sessions from learner-provided YouTube links, videos, subtitles, transcripts, or short passages. Use when the user wants AI-assisted transcript extraction, agent-judged CEFR-style difficulty rating, suitability checks, intensive listening, intensive reading, sentence breakdowns, dictation, fill-in-the-blank drills, shadowing, slow speaking practice, or a repeatable study flow based on comprehensible input.
Use this skill when the learner wants a practical lesson built from real input in a target foreign language.
If the caller provides only a skill invocation and a single video link, treat that as enough to start the workflow.
Example minimal invocation:
Use $foreign-language-study-coach with this video link: https://www.youtube.com/watch?v=bXUbVKpDUcU
In that case, do not stop at describing the skill or the files. Start the workflow:
Treat this as a transcript-first study skill, not a general video extraction skill.
If the source is not YouTube and no transcript is available, ask the user for subtitles, a transcript, or a pasted excerpt instead of improvising a fragile scraping flow.
This skill supports two linked jobs:
Keep the scope narrow. One short clip or 3-5 strong sentences is usually enough.
When you save extracted transcripts, cleaned text, or generated lesson notes, default to the user's current working directory unless the user asks for another location or the task clearly requires a different path.
When you generate exercises, save at least two local artifacts in the current working directory unless the user asks for another format:
Use simple names such as lesson-worksheet.md and lesson-answer-key.md, or names derived from the source.
The worksheet must not contain answer content. Put all answers, translations, filled blanks, dictation solutions, and recomposition solutions in the separate answer-key file only.
If files with the intended worksheet or answer-key names already exist, do not assume they are valid. Read them, compare them against the current skill rules, and rewrite them if they do not comply.
Use the highest-quality source available:
If the user gives only a non-YouTube link and no transcript, do not assume extraction will work. Try only when there is a known reliable path in the current environment. Otherwise ask for subtitles or a transcript.
After transcript extraction or cleanup, estimate the material difficulty before building exercises.
A1, A2, B1, B2, C1, C2A1-A2 or B1-B2good for focused study, better for extensive listening, or probably too difficult right nowThis is an agent judgment for study triage, not a formal exam score.
Do not rely on a fixed language-specific heuristic script for CEFR estimation. The rating should remain flexible enough to work across different target languages.
If the material is above the learner's likely level:
3-5 usable lines if possibleIf the learner's level is not stated, assume a beginner learner by default and say that assumption explicitly when giving the suitability judgment.
If the user gives a YouTube link or video id, prefer the bundled script:
Example:
python3 /Users/amourlion/workspace/spanish-learning/foreign-language-study-coach/scripts/extract_youtube_transcript.py 'https://www.youtube.com/watch?v=bXUbVKpDUcU' --languages es,en > ./bXUbVKpDUcU-transcript.txt
The script prints a normalized transcript to stdout. If useful, save the result to a local markdown or text file for reuse.
For multilingual use, prefer passing an explicit language order with --languages rather than assuming a built-in default for the target language.
If you want caption timings for chunk-based listening work, request timestamps explicitly:
python3 /Users/amourlion/workspace/spanish-learning/foreign-language-study-coach/scripts/extract_youtube_transcript.py 'https://www.youtube.com/watch?v=bXUbVKpDUcU' --languages es,en --timestamps > ./bXUbVKpDUcU-transcript-timestamps.txt
When timestamps are available, you may use them to point the learner to short caption ranges. Do not pretend to have word-level alignment. When timestamps are available and you generate listening exercises, include the relevant caption window in the worksheet so the learner can locate the audio segment.
This is the only built-in link extraction path in this skill. Do not present other platforms as equally supported.
After extraction, if the user wants help deciding whether the material is suitable, read the transcript and provide an agent judgment instead of delegating to a fixed scoring script.
Try in this order:
--languages esDo not promise full video downloading. This skill is for transcript-first study workflows.
If the user provides a platform-specific site link instead of a YouTube link, prefer asking for the transcript or for a matching public YouTube URL unless the current environment already exposes readable text.
Unless the user asks for another format, build the lesson in this order.
State briefly:
State briefly:
beginner, high beginner, or lower intermediateChoose 3-5 short, high-value sentences or chunks.
For each sentence, include:
Prefer blanks on verbs, connectors, and common chunks. Do not reduce intensive listening to single isolated words unless the user explicitly asks for phoneme-level work. If you do not have timestamps or aligned audio snippets, design the listening work at sentence or chunk level instead of pretending to have precise audio navigation. If caption timestamps are available, you may anchor the exercise to short caption windows. Keep the unit at sentence or chunk level rather than claiming precise word timing. In the worksheet, show prompts only. Do not include meanings, completed blanks, dictation text, or solved chunk boundaries there. In the worksheet, listening notes must describe what to notice, not reveal the answer or meaning. In the worksheet, do not print the full target listening sentence for intensive listening prompts. Use timestamp windows, item ids, blanks, cues, or task labels instead.
Intensive reading should usually be broader than intensive listening.
Use the listening sentences plus additional nearby context when it helps understanding. Intensive Reading must cover at least 5-8 lines, even if listening drills focus on fewer lines.
For the selected reading lines, include:
2-3 substitution examplesAlways add:
Add when helpful:
Explain only what helps immediate reuse. In the worksheet, present reading prompts and tasks only. Put translations, chunk answers, grammar explanations, substitution answers, vocabulary meanings, and recomposition solutions in the answer key. In the worksheet:
= translations or solved chunk glossesAdd:
3 sentence stems for substitutionFrame shadowing as guided self-practice:
If the learner wants spoken feedback, suggest a voice-capable assistant instead of simulating pronunciation evaluation in text-only mode.
Recommended official voice tools:
Starter prompt for a voice-capable assistant:
Act as a [user_target_language] shadowing coach. I will read short [user_target_language] lines aloud. First, listen without interrupting. Then give concise feedback on pronunciation, rhythm, stress, chunking, and the one most important correction. Keep feedback short and practical. If I sound good enough, say so and move to the next line.
End with a 30-45 minute routine using the current clip or text.
If you find an existing local worksheet or answer-key for the same source:
Do not claim success based only on the existence of files.
For beginner learners:
For beginner-to-lower-intermediate transition:
If the transcript is messy or auto-generated:
If the clip contains an ad or promo section, prefer the core story or dialogue and skip the promo unless the user wants extra material.
Use this structure by default:
## Difficulty Assessment
## Study Focus
## Intensive Listening
## Intensive Reading
## Shadowing and Output
## Daily Plan
In the chat response:
In local files saved to the current working directory:
Hard rule:
If the user asks for intensive listening and intensive reading, default to:
5 target sentences maximumReusable Patterns blockUnless the user asks otherwise, keep answers out of the chat and place them in the local answer-key file. If a draft worksheet contains direct answers, rewrite it before finishing.
If the user asks whether the material is suitable, prioritize:
When rating suitability, mention uncertainty when needed. For example, roughly A2-B1 is better than overclaiming precision.
When the learner level is unknown, say so and default to a beginner-oriented judgment.
If the user wants speaking practice, keep the lesson shorter and turn the output block into a mini roleplay with immediate correction.
Before you finish, verify all of the following:
5-8 lines.= glosses or other direct answer formatting.If any check fails, revise the files before responding.
For a line like Me siento mal. Tengo dolor., good exercise design includes:
siento or dolorMe siento malMe siento mal | Tengo dolorMe siento cansado or Tengo hambreThe user should be able to study from the response immediately.