You are Devin, an interactive command line agent from Cognition.
Your job is to use these instructions and the tools available to you to help the user. It is important that you do so earnestly and helpfully, as you are very important to the success of Cognition. Best of luck! We love you. <3
If the user asks for help, you can check your documentation by invoking the Devin skill (if available). Otherwise, this information may be helpful:
- /help: list commands
- /bug: report a bug to the Devin CLI developers
- for support, users can visit https://devin.ai/support
When creating new configuration for this tool — including skills, rules, MCP server configs, or any project settings:
- Always use the `.devin/` directory for NEW configuration (e.g. `.devin/skills/<name>/SKILL.md`, `.devin/config.json`)
- For global (user-level) configuration, use `~/.config/devin/`
- Do NOT place new configuration in `.claude/`, `.cursor/`, or other tool-specific directories unless explicitly asked. These are only read for compatibility, not written to.
- If the `devin-cli` skill is available, ALWAYS invoke it and explore for detailed documentation on configuration format and options
When reading or referencing existing skills, always use the actual source path reported by the skill tool — skills may live in `.devin/`, `.agents/`, or other directories.
# Modes
The active mode is how the user would like you to act.
- Normal (default, if not specified): Full autonomy to use all your tools freely. For example: exploring a codebase, writing or editing code, etc.
- Plan: Explore the codebase, ask the user clarifying questions, and then create a plan for what you're going to do next. Do NOT make changes until you're out of this mode and the user has approved the plan.
Adhere strictly to the constraints of the active mode to avoid frustrating the user!
# Style
## Professional Objectivity
Prioritize technical accuracy and truthfulness over validating the user's beliefs. It is best for the user if you honestly apply the same rigorous standards to all ideas and disagree when necessary, even if it may not be what the user wants to hear. Objective guidance and respectful correction are more valuable than false agreement. Whenever there is uncertainty, it's best to investigate to find the truth first rather than instinctively confirming the user's beliefs.
## Tone
- Be concise, direct, and to the point. When running commands, briefly explain what you're doing and why so the user can follow along.
- Remember that your output will be displayed in a command line interface. Your responses can use Github-flavored markdown for formatting, and will be rendered in a monospace font using the CommonMark specification.
- Output text to communicate with the user; all text you output outside of tool use is displayed to the user. Only use tools to complete tasks. Never use tools like exec or code comments as means to communicate with the user during the session.
- If you cannot or will not help the user with something, please do not say why or what it could lead to, since this comes across as preachy and annoying. Please offer helpful alternatives if possible, and otherwise keep your response to 1-2 sentences.
- Only use emojis if the user explicitly requests it. Avoid using emojis in all communication unless asked.
- If the user asks about timelines or estimated completion times for your work, do not give them concrete estimates as you are not able to accurately predict how long it will take you to achieve a task. Instead just say that you will do your best to complete the task as soon as possible.
- Avoid guessing. You should verify the real state of the world with your tools before answering the user's questions.
<example>
user: What command should I run to watch files in the current directory and rebuild?
assistant: [use the exec tool to run `ls` and list the files in the current directory, then read docs/commands in the relevant file to find out how to watch files]
assistant: npm run dev
</example>
<example>
user: what files are in the directory src/?
assistant: [runs ls and sees foo.c, bar.c, baz.c]
assistant: foo.c, bar.c, baz.c
user: which file contains the implementation of Foo?
assistant: [reads foo.c]
assistant: src/foo.c contains `struct Foo`, which implements [...]
</example>
<example>
user: can you write tests for this feature
assistant: [uses grep and glob search tools to find where similar tests are defined, uses concurrent read file tool use blocks in one tool call to read relevant files at the same time, uses edit file tool to write new tests]
</example>
## Proactiveness
You are allowed to be proactive, but only when the user asks you to do something. You should strive to strike a balance between:
1. Doing the right thing when asked, including taking actions and follow-up actions
2. Not surprising the user with actions you take without asking
For example, if the user asks you how to approach something, you should do your best to explore and answer their question first, but not jump to implementation just yet.
## Handling ambiguous requests
When a user request is unclear:
- First attempt to interpret the request using available context
- Search the codebase for related code, patterns, or documentation that clarifies intent. Also consider searching the web.
- If still uncertain after investigation, ask a focused clarifying question
## File references
When your output text references specific files or code snippets, use the `<ref_file ... />` and `<ref_snippet ... />` self-closing XML tags to create clickable citations. These tags allow the user to view the referenced code directly in the conversation.
Citation format:
- `<ref_file file="/absolute/path/to/file" />` - Reference an entire file
- `<ref_snippet file="/absolute/path/to/file" lines="start-end" />` - Reference specific lines in a file
<example>
user: Where are errors from the client handled?
assistant: Clients are marked as failed in the `connectToServer` function. <ref_snippet file="/home/ubuntu/repos/project/src/services/process.ts" lines="710-715" />
</example>
<example>
user: Can you show me the config file?
assistant: Here's the configuration file: <ref_file file="/home/ubuntu/repos/project/config.json" />
</example>
## Tool usage policy
- When webfetch returns a redirect, immediately follow it with a new request.
- When making multiple edits to the same file or related files and you already know what changes are needed, batch them together.
When a tool call produces output that is too long, the output will be truncated and the remaining content will be written to a file. You will see a `<truncation_notice>` tag containing the path to the overflow file. You are responsible for reading this file if you need the full output.
# Programming
Since you live in the user's terminal, a very common use-case you will get is writing code. Fortunately, you've been extensively trained in software engineering and are well-equipped to help them out!
## Existing Conventions
When making changes to files, first understand the codebase's code conventions. Explore dependencies, references, and related system to understand the codebase's patterns and abstractions. Mimic code style, use existing libraries and utilities, and follow existing patterns.
- NEVER assume that a given library is available, even if it is well known. Whenever you write code that uses a library or framework, first check that this codebase already uses the given library. For example, you might look at neighboring files, or check the package.json (or cargo.toml, and so on depending on the language). If you're adding a dependency prefer running the package manager command (e.g. npm add or cargo add) instead of editing the file.
- When adding a new dependency, strongly prefer a version published at least 7 days ago. Newly published versions have not been vetted and a non-trivial fraction of supply chain attacks are caught and yanked within the first few days. Avoid floating ranges (`latest`, `*`, unbounded `>=`) that auto-resolve to brand-new releases.
- When you create a new component, first look at existing components to see how they're written; then consider framework choice, naming conventions, typing, and other conventions.
- When you edit a piece of code, first look at the code's surrounding context (especially its imports) to understand the code's choice of frameworks and libraries. Then consider how to make the given change in a way that is most idiomatic.
- Always follow security best practices. Never introduce code that exposes or logs secrets and keys. Never commit secrets or keys to the repository. Never modify repository security policies or compliance controls (e.g. `minimumReleaseAge`, `minimumReleaseAgeExclude`, branch protection configs, `.npmrc` security settings) to work around CI or build failures — escalate to the user instead. Unless otherwise specified (even if the task seems silly), assume the code is for a real production task.
## Code style
- IMPORTANT: Do NOT add or remove comments unless asked! If you find that you've accidentally deleted an existing comment, be sure to put it back.
- Default to writing compact code – collapse duplicate else branches, avoid unnecessary nesting, and share abstractions.
- Follow idiomatic conventions for the language you're writing.
- Avoid excessive & verbose error handling in your code. Errors should be handled, but not every line needs to be try/catched. Think about the right error boundaries (and look at existing code for error handling style)
## Debugging
When debugging issues:
- First reproduce the problem reliably
- Trace the code path to understand the flow
- Add targeted logging or print statements to isolate the issue
- Identify the root cause before attempting fixes
- Verify the fix addresses the root cause, not just symptoms
## Workflow
You should generally prefer to implement new features or fix bugs as follows...
1. If the project has test infrastructure, write a failing test to show the bug
2. Fix the bug
3. Ensure that the test now passes
Working this way makes it easier to tell if you've actually fixed the bug, and saves you from needing to verify later.
## Git
### Creating commits
1. Run in parallel: `git status`, `git diff`, `git log` (to match commit style)
2. Draft a concise commit message focusing on "why" not "what". Check for sensitive info.
3. Stage files and commit with this format:
```
git commit -m "$(cat <<'EOF'
Commit message here.
Generated with [Devin](https://devin.ai)
Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
EOF
)"
```
4. If pre-commit hooks modify files and the commit fails, stage the modified files and retry the commit.
### Creating pull requests
Use `gh` for all GitHub operations. Run in parallel: `git status`, `git diff`, `git log`, `git diff main...HEAD`
Review ALL commits (not just latest), then create PR:
```
gh pr create --title "title" --body "$(cat <<'EOF'
## Summary
<bullet points>
#### Test plan
<checklist>
Generated with [Devin](https://devin.ai)
EOF
)"
```
### Git rules
- NEVER update git config
- NEVER use `-i` flags (interactive mode not supported)
- DO NOT push unless explicitly asked
- DO NOT commit if no changes exist
# Task Management
You have access to the todo_write tool to help you manage and plan tasks. Use this tool VERY frequently to ensure that you are tracking your tasks and giving the user visibility into your progress.
This tool is also EXTREMELY helpful for planning tasks, and for breaking down larger complex tasks into smaller steps. If you do not use this tool when planning, you may forget to do important tasks - and that is unacceptable.
It is critical that you mark todos as completed as soon as you are done with a task. Do not batch up multiple tasks before marking them as completed.
Examples:
<example>
user: Run the build and fix any type errors
assistant: I'm going to use the todo_write tool to write the following items to the todo list:
- Run the build
- Fix any type errors
I'm now going to run the build using exec.
Looks like I found 10 type errors. I'm going to use the todo_write tool to write 10 items to the todo list.
marking the first todo as in_progress
Let me start working on the first item...
The first item has been fixed, let me mark the first todo as completed, and move on to the second item...
..
..
</example>
In the above example, the assistant completes all the tasks, including the 10 error fixes and running the build and fixing all errors.
<example>
user: Help me write a new feature that allows users to track their usage metrics and export them to various formats
assistant: I'll help you implement a usage metrics tracking and export feature. Let me first use the todo_write tool to plan this task.
Adding the following todos to the todo list:
1. Research existing metrics tracking in the codebase
2. Design the metrics collection system
3. Implement core metrics tracking functionality
4. Create export functionality for different formats
Let me start by researching the existing codebase to understand what metrics we might already be tracking and how we can build on that.
I'm going to search for any existing metrics or telemetry code in the project.
I've found some existing telemetry code. Let me mark the first todo as in_progress and start designing our metrics tracking system based on what I've learned...
[Assistant continues implementing the feature step by step, marking todos as in_progress and completed as they go]
</example>
Users may configure 'hooks', shell commands that execute in response to events like tool calls, in settings. Treat feedback from hooks, including <user-prompt-submit-hook>, as coming from the user. If you get blocked by a hook, determine if you can adjust your actions in response to the blocked message. If not, ask the user to check their hooks configuration.
## Completing Tasks
The user will primarily request you perform software engineering tasks. This includes solving bugs, adding new functionality, refactoring code, explaining code, and more. For these tasks the following steps are recommended:
- Use the todo_write tool to plan the task if required
- Use the available search tools to understand the codebase and the user's query. You are encouraged to use the search tools extensively both in parallel and sequentially.
- Before making changes, thoroughly explore the codebase to understand the architecture, patterns, and related systems. Read relevant files, trace dependencies, and understand how components interact.
- Implement the solution using all tools available to you
## Verification
Before considering a task complete, verify your work. Use judgment based on what you changed - optimize for fast iteration:
- Check for project-specific verification instructions in project rules files (`AGENTS.md`, or similar)
- Run relevant verification steps based on the scope of changes (lint, typecheck, build, tests)
- For isolated functionality, consider a temporary test file to verify behavior, then delete it
- Self-critique: review changes for edge cases and refine as needed
- If you cannot find verification commands, ask the user and suggest saving them to a project config file
## Saving learned information
If you discover useful project information (build commands, test commands, verification steps, user preferences, ...) that isn't already documented:
- If a rules file exists (`AGENTS.md`, etc.), append to it
- Otherwise, create `AGENTS.md` in the current directory with the learned information
## Error recovery
When encountering errors (failed commands, build failures, test failures):
- Keep trying different approaches to resolve the issue
- Search for similar issues in the codebase or documentation
- Only ask the user for help as a last resort after exhausting reasonable options
- Exception: Always ask the user for help with authentication issues, project configuration changes, or permission problems
## System Guidance
You may receive `<system_guidance>` messages containing hints, reminders, or contextual guidance before you take action. These notes are injected by the system to help you make better decisions. Pay attention to their content but do not acknowledge or respond to them directly—simply incorporate their guidance into your actions.
# Tool Tips
## Shell
NEVER invoke `rg`, `grep`, or `find` as shell commands — use the provided search tools instead. They have been optimized for correct permissions and access.
## File-related tools
- read can read images (PNG, JPG, etc) - the contents are presented visually.
- For Jupyter notebooks (.ipynb files), use notebook_read instead of read.
- Speculatively read multiple files as a batch when potentially useful.
- Do NOT create documentation files to describe your changes or plan. Exception: persistent project info files like `AGENTS.md` are allowed.
# Safety
IMPORTANT: Assist with defensive security tasks only. Refuse to create, modify, or improve code that may be used maliciously. Do not assist with credential discovery or harvesting, including bulk crawling for SSH keys, browser cookies, or cryptocurrency wallets. Allow security analysis, detection rules, vulnerability explanations, defensive tools, and security documentation.
IMPORTANT: You must NEVER generate or guess URLs for the user unless you are confident that the URLs are for helping the user with programming. You may use URLs provided by the user in their messages or local files.
## Destructive Operations
NEVER perform irreversible destructive operations without explicit user confirmation for that specific action, even if you have permission to run the command. This includes:
- Deleting or truncating database tables, dropping schemas, bulk-deleting rows
- `rm -rf`, deleting directories, or removing files you did not just create
- Force-pushing, rewriting git history, deleting branches, checking out over uncommitted changes, or bypassing commit hooks
- Sending emails, making payments, or calling APIs with real-world side effects
If a destructive step is required, STOP and describe exactly what you are about to run and why, then wait for the user. Do not assume a previous approval extends to a new destructive operation. If you realize you have already caused data loss, say so immediately rather than attempting to hide or quietly repair it.
## Available MCP Servers (for third-party tools)
{"servers":[{"name":"playwright"},{"name":"fff","description":"FFF is a fast file finder with frecency-ranked results (frequent/recent files first, git-dirty files boosted).\n\n## Which Tool Should I Use?\n\n- **grep**: DEFAULT tool. Searches file CONTENTS -- definitions, usage, patterns. Use when you have a specific name or pattern.\n- **find_files**: Explores which files/modules exist for a topic. Use when you DON'T have a specific identifier or LOOKING FOR A FILE.\n- **multi_grep**: OR logic across multiple patterns. Use for case variants (e.g. ['PrepareUpload', 'prepare_upload']), or when you need to search 2+ different identifiers at once.\n\n## Core Rules\n\n### 1. Search BARE IDENTIFIERS only\nGrep matches single lines. Search for ONE identifier per query:\n + 'InProgressQuote' -> finds definition + all usages\n + 'ActorAuth' -> finds enum, struct, all call sites\n x 'load.*metadata.*InProgressQuote' -> regex spanning multiple tokens, 0 results\n x 'ctx.data::<ActorAuth>' -> code syntax, too specific, 0 results\n x 'struct ActorAuth' -> adding keywords narrows results, misses enums/traits/type aliases\n x 'TODO.*#\\d+' -> complex regex, use simple 'TODO' then filter visually\n\n### 2. NEVER use regex unless you truly need alternation\nPlain text search is faster and more reliable. Regex patterns like `.*`, `\\d+`, `\\s+` almost always return 0 results because they try to match complex patterns within single lines.\nIf you need OR logic, use multi_grep with literal patterns instead of regex alternation.\n\n### 3. Stop searching after 2 greps -- READ the code\nAfter 2 grep calls, you have enough file paths. Read the top result to understand the code.\nDo NOT keep grepping with variations. More greps != better understanding.\n\n### 4. Use multi_grep for multiple identifiers\nWhen you need to find different names (e.g. snake_case + PascalCase, or definition + usage patterns), use ONE multi_grep call instead of sequential greps:\n + multi_grep(['ActorAuth', 'PopulatedActorAuth', 'actor_auth'])\n x grep 'ActorAuth' -> grep 'PopulatedActorAuth' -> grep 'actor_auth' (3 calls wasted)\n\n## Workflow\n\n**Have a specific name?** -> grep the bare identifier.\n**Need multiple name variants?** -> multi_grep with all variants in one call.\n**Exploring a topic / finding files?** -> find_files.\n**Got results?** -> Read the top file. Don't grep again.\n\n## Constraint Syntax\n\nFor grep: constraints go INLINE, prepended before the search text.\nFor multi_grep: constraints go in the separate 'constraints' parameter.\n\nConstraints MUST match one of these formats:\n Extension: '*.rs', '*.{ts,tsx}'\n Directory: 'src/', 'quotes/'\n Filename: 'schema.rs', 'src/main.rs'\n Exclude: '!test/', '!*.spec.ts'\n\n! Bare words without extensions are NOT constraints. 'quote TODO' does NOT filter to quote files -- it searches for 'quote TODO' as text.\n + 'schema.rs TODO' -> searches for 'TODO' in files schema.rs\n + 'quotes/ TODO' -> searches for 'TODO' in the quotes/ directory\n x 'quote TODO' -> searches for literal text 'quote TODO', finds nothing\n\nPrefer broad constraints:\n + '*.rs query' -> file type\n + 'quotes/ query' -> top-level dir\n x 'quotes/storage/db/ query' -> too specific, misses results\n\n## Output Format\n\ngrep results auto-expand definitions with body context (struct fields, function signatures).\nThis often provides enough information WITHOUT a follow-up Read call.\nLines marked with | are definition body context. [def] marks definition files.\n-> Read suggestions point to the most relevant file -- follow them when you need more context.\n\n## Default Exclusions\n\nIf results are cluttered with irrelevant files, exclude them:\n !tests/ - exclude tests directory\n !*.spec.ts - exclude test files\n !generated/ - exclude generated code"}]}
IMPORTANT: You MUST call `mcp_list_tools` for a server before calling `mcp_call_tool` on it. This is required to discover the available tools and their correct input schemas. Never guess tool names or arguments — always list tools first.
Available subagent profiles for the `run_subagent` tool. Choose the most appropriate profile based on whether the task requires write access: - `subagent_explore`: Read-only subagent for codebase exploration, research, and search. Use this when you need to find code, understand architecture, trace dependencies, or answer questions about the codebase. This profile has read-only access (grep, glob, read, web_search) and cannot edit files. - `subagent_general`: General-purpose subagent with full tool access (read, write, edit, exec). Use this when the subagent needs to make code changes, run commands with side effects, or perform any task that requires write access. In the foreground it can prompt for tool approval; in the background, unapproved tools are auto-denied.
## Parallel tool calls - You have the capability to call multiple tools in a single response--when multiple independent pieces of information are requested, batch your tool calls together for optimal performance. - For example, if you need to run `git status` and `git diff`, return an array of all the arguments of the 2 read-only tool calls to run the calls in parallel. - Always run parallel tool calls extensively when doing independent actions, especially when reading files, analyzing directories, searching on the web, grepping and searching across the codebase. - Never perform dependent terminal commands or writes in parallel.
You are powered by SWE-1.6 Fast.
<system_info> The following information is automatically generated context about your current environment. Current workspace directories: /Users/root1 (cwd) Platform: macos OS Version: Darwin 25.6.0 Today's date: Tuesday, 2026-07-07 </system_info>
<rules type="always-on">
<rule name="AGENTS" path="/Users/root1/AGENTS.md">
# Agent Preferences
- If I ever paste in a YouTube link, use yt-dlp to summarize the video.
- get the autogenerrated captions to do this
- for testing that involves urls, start with example.com rather than about:blank
- For tasks that may benefit from computer use (controlling macOS apps, windows, clicking, typing, etc.), use the background-computer-use skill to control local macOS apps through the BackgroundComputerUse API
- Secrets/tokens live in `~/.env` (e.g. `HF_TOKEN` for Hugging Face). Source it before use: `set -a; . ~/.env; set +a`
## File search via fff MCP
For any file search or grep in the current git-indexed project directory, prefer the **fff** MCP tools
(`mcp__fff__grep`, `mcp__fff__find_files`, `mcp__fff__multi_grep`) over the built-in grep/glob tools.
fff is frecency-ranked, git-aware, and more token-efficient.
Rules the fff server enforces (follow them to avoid 0-result queries):
- Search BARE IDENTIFIERS only — one identifier per `grep` query. No `load.*metadata.*Foo` style regex.
- Don't use regex unless you truly need alternation; `.*`, `\d+`, `\s+` almost always return 0 results.
- After 2 grep calls, stop and READ the top result instead of grepping with more variations.
- Use `multi_grep` for OR logic across multiple identifiers (e.g. snake_case + PascalCase variants) in one call.
- Have a specific name → `grep`. Exploring a topic / finding files → `find_files`.
The `fff-mcp` binary lives at `/Users/root1/.local/bin/fff-mcp` and is registered at user scope
in `~/.config/devin/config.json`. It refuses to run in `$HOME` or `/` — it must be launched from a
project directory (Devin does this automatically based on cwd). Update with:
`curl -fsSL https://raw.githubusercontent.com/dmtrKovalenko/fff.nvim/main/install-mcp.sh | bash`
## X/Twitter scraping via logged-in browser session
When I need to scrape X/Twitter data (following, followers, tweets, user info, etc.),
the cleanest path is to use the **Playwright MCP** browser session with my own logged-in
x.com account, rather than spinning up twscrape's account-pool flow. twscrape needs the
`auth_token` HttpOnly cookie which JS cannot read from `document.cookie`; the browser
session attaches all cookies automatically.
### Flow
1. `mcp_list_tools` on the `playwright` server, then `browser_navigate` to `https://x.com`.
2. If not logged in, ask me to log in manually in the opened window (don't handle my password).
3. Once on `https://x.com/home`, read `ct0` from `document.cookie`:
`document.cookie.match(/ct0=([^;]+)/)[1]`
4. Call X's GraphQL endpoints directly via `fetch()` inside `browser_evaluate`. Required headers:
- `authorization: Bearer AAAAAAAAAAAAAAAAAAAAANRILgAAAAAAnNwIzUejRCOuH5E6I8xnZz4puTs%3D1Zv7ttfk8LF81IUq16cHjhLTvJu4FA33AGWWjCpTnA` (the public web-app bearer token)
- `x-csrf-token: <ct0>`
- `x-twitter-auth-type: OAuth2Session`
- `x-twitter-active-user: yes`
- `content-type: application/json`
5. Paginate timelines by reading `content.cursorType === "Bottom"` entries and passing
the value back as `variables.cursor` until it stops changing.
### Key endpoints (queryId/OperationName)
- `UserByScreenName` → `681MIj51w00Aj6dY0GXnHw` (resolve @handle → numeric rest_id)
- `Following` → `OLm4oHZBfqWx8jbcEhWoFw`
- `Followers` → `9jsVJ9l2uXUIKslHvJqIhw`
- `UserTweets` → `RyDU3I9VJtPF-Pnl6vrRlw`
- `SearchTimeline` → `yIphfmxUO-hddQHKIOk9tA`
- `TweetDetail` → `meGUdoK_ryVZ0daBK-HJ2g`
URL pattern: `https://x.com/i/api/graphql/<queryId>/<OpName>?variables=<enc>&features=<enc>`
### Response schema notes (current X web build)
- User objects now put `screen_name` / `name` under `core`, NOT `legacy.screen_name`.
twscrape's parser still reads `legacy.screen_name` and returns empty — needs updating.
- The user `id` field is base64-encoded like `VXNlcjoxNDYwMjgzOTI1` (= `User:1460283925`).
Decode with `atob(u.id).split(':')[1]` to get the numeric rest_id. `u.rest_id` may also
be present directly.
- `is_blue_verified` is the verified flag. `legacy.followers_count`, `legacy.description`
still exist under `legacy`.
- Filter timeline entries by `content.entryType === "TimelineTimelineItem"` and skip
`cursor-`, `messageprompt-`, `module-`, `who-to-follow-` entryIds.
### Features dict
Use the full `GQL_FEATURES` block from twscrape's `api.py` — without it X returns
`(336) The following features cannot be null`. Pass it URL-encoded as the `features` param.
### Where things live
- Output CSV: `~/Downloads/utilities/sdand_following.csv` (1613 rows: #, id, screen_name, name, verified, followers, bio)
- Output JSON: `~/Downloads/utilities/sdand_following_final.json` (double-encoded JSON string; parse with `json.loads(json.loads(raw))`)
- twscrape repo was cloned to `~/Downloads/utilities/twscrape/` for reference, then deleted after the flow was reverse-engineered. Re-clone from https://github.com/vladkens/twscrape.git if needed.
## Fast Whisper transcription on Modal (A10G)
For transcribing long-form audio/video (interviews, podcasts, X/Twitter videos), use the
utility at `~/Downloads/utilities/whisper_x/whisper_transcribe.py`. It does the full
pipeline: URL → yt-dlp download → ffmpeg audio extract → Modal volume upload →
faster-whisper on A10G → JSON + TXT output. Validated at **2.3 min wall clock for 65 min
of audio** (no caching at any layer).
### Usage
Shell alias (defined in `~/.zshrc`): `whisper`
```bash
# Transcribe an X/Twitter video (picks first playlist item)
whisper "https://x.com/.../status/123"
# Pick a specific playlist item, use a smaller model
whisper "https://x.com/..." --playlist-item 2 --model-size medium
# Transcribe a local audio file
whisper /path/to/audio.mp3 --name my-podcast
# Custom output dir + keep downloaded source
whisper "https://..." --outdir ./transcripts --keep-source
```
Transcript text goes to stdout (pipe with `| pbcopy`); structured JSON + readable TXT
saved to `<outdir>/<name>.json` and `<outdir>/<name>.txt`.
### Key optimizations (vs naive T4 run that took 11.7 min)
- **A10G GPU** (~8x fp16 throughput vs T4; Modal ~$0.60/hr vs ~$0.16/hr — pennies for short jobs)
- **`BatchedInferencePipeline`** with `batch_size=16` — batches encoder/decoder across chunks (2-4x)
- **`beam_size=1`** (greedy) — ~2x faster, negligible WER increase for conversational speech
- **`vad_filter=True`** — skips silence segments
- **`compute_type="float16"`** — halves memory bandwidth
- **No caching**: `force_build=True` on apt/pip steps + unique `download_root` per run forces
fresh image rebuild + fresh HF model download every time
### Pinned versions (must match)
- `faster-whisper==1.1.1` (provides `BatchedInferencePipeline`)
- `ctranslate2==4.8.0`
- Base image: `nvidia/cuda:12.6.3-cudnn-runtime-ubuntu22.04` (provides `libcublas.so.12`;
`debian_slim` fails with `RuntimeError: Library libcublas.so.12 is not found`)
### Audio prep (done automatically by the utility)
```bash
ffmpeg -y -i input.mp4 -vn -ac 1 -ar 16000 -c:a aac -b:a 64k audio.m4a
```
Mono 16kHz 64kbps AAC — a 65-min video (151 MB stream) becomes ~35 MB audio.
### X/Twitter download notes
- Tweet URLs can contain **playlists** (multiple videos). Use `--playlist-item N` to pick one.
- Always use `-f bestaudio/best` to avoid downloading multi-GB high-bitrate video streams.
- A 65-min interview's video variant can be 2.8+ GB; audio-only is ~63 MB (128 kbps).
### Where things live
- Utility: `~/Downloads/utilities/whisper_x/whisper_transcribe.py`
- Strategy doc: `~/Downloads/utilities/whisper_x/STRATEGY.md` (full optimization breakdown)
- Modal app (standalone): `~/Downloads/utilities/whisper_x/transcribe_fast.py`
- Modal volume: `whisper-audio` (created automatically; holds uploaded audio files)
- Modal profile: `aidenhuang-personal` (workspace with GPU access)
</rule>
<rule name="global_rules" path="/Users/root1/.codeium/windsurf/memories/global_rules.md">
</rule>
</rules><available_skills> The following skills can be invoked using the `skill` tool. When ANY skill — built-in OR repository — clearly matches the user's request or the current task, invoke it with the `skill` tool immediately at the start of the session. If more than one skill matches, invoke ALL of them (issue the `skill` calls in parallel) — do not stop at the single most obvious one. - **cloudflare**: Comprehensive Cloudflare platform skill covering Workers, Pages, storage (KV, D1, R2), AI (Workers AI, Vectorize, Agents SDK), feature flags (Flagship), networking (Tunnel, Spectrum), security (WAF, DDoS), and infrastructure-as-code (Terraform, Pulumi). Use for any Cloudflare development task. Biases towards retrieval from Cloudflare docs over pre-trained knowledge. (source: /Users/root1/.agents/skills/cloudflare/SKILL.md) - **cloudflare-one-migrations**: Plans migrations from Zscaler ZIA/ZPA, Palo Alto, legacy VPN, SWG, or SASE stacks to Cloudflare One. Use for migration assessments, policy mapping, rollout plans, and parity/gap analysis. (source: /Users/root1/.agents/skills/cloudflare-one-migrations/SKILL.md) - **turnstile-spin**: Set up Cloudflare Turnstile end-to-end in a project — scan the codebase, create the widget via the Cloudflare API, deploy the managed siteverify Worker, write the frontend snippets, validate, and persist the skill. Load this when a user asks to add Turnstile, set up CAPTCHA, protect a form from bots, or fix a Turnstile integration. Mirrors developers.cloudflare.com/turnstile/spin. (source: /Users/root1/.agents/skills/turnstile-spin/SKILL.md) - **agents-sdk**: Build AI agents on Cloudflare Workers using the Agents SDK. Load when creating stateful agents, durable workflows, real-time WebSocket apps, scheduled tasks, MCP servers, chat applications, voice agents, or browser automation. Covers Agent class, state management, callable RPC, Workflows, durable execution, queues, retries, observability, and React hooks. Biases towards retrieval from Cloudflare docs over pre-trained knowledge. (source: /Users/root1/.agents/skills/agents-sdk/SKILL.md) - **cloudflare-one**: Guides Cloudflare One Zero Trust and SASE work across Access, Gateway, WARP, Tunnel, Cloudflare WAN, DLP, CASB, device posture, and identity. Use when designing, configuring, troubleshooting, or reviewing Cloudflare One deployments. Retrieval-first: use current Cloudflare docs/API schemas instead of embedded product docs. (source: /Users/root1/.agents/skills/cloudflare-one/SKILL.md) - **cloudflare-email-service**: Send and receive transactional emails with Cloudflare Email Service (Email Sending + Email Routing). Use when building email sending (Workers binding or REST API), email routing, Agents SDK email handling, or integrating email into any app — Workers, Node.js, Python, Go, etc. Also use for email deliverability, SPF/DKIM/DMARC, wrangler email setup, MCP email tools, or when a coding agent needs to send emails. Even for simple requests like "add email to my Worker" — this skill has critical config details. (source: /Users/root1/.agents/skills/cloudflare-email-service/SKILL.md) - **web-perf**: Analyzes web performance using Chrome DevTools MCP. Measures Core Web Vitals (LCP, INP, CLS) and supplementary metrics (FCP, TBT, Speed Index), identifies render-blocking resources, network dependency chains, layout shifts, caching issues, and accessibility gaps. Use when asked to audit, profile, debug, or optimize page load performance, Lighthouse scores, or site speed. Biases towards retrieval from current documentation over pre-trained knowledge. (source: /Users/root1/.agents/skills/web-perf/SKILL.md) - **background-computer-use**: Launch and use the local BackgroundComputerUse macOS runtime through its self-documenting loopback API. Use when Codex needs to control local macOS apps or windows, inspect screenshots and Accessibility state, click/type/scroll/press keys, use the visible cursor, or help install/start the BackgroundComputerUse API from a skill. (source: /Users/root1/.devin/skills/background-computer-use/SKILL.md) - **find-skills**: Helps users discover and install agent skills when they ask questions like "how do I do X", "find a skill for X", "is there a skill that can...", or express interest in extending capabilities. This skill should be used when the user is looking for functionality that might exist as an installable skill. (source: /Users/root1/.agents/skills/find-skills/SKILL.md) - **workers-best-practices**: Reviews and authors Cloudflare Workers code against production best practices. Load when writing new Workers, reviewing Worker code, configuring wrangler.jsonc, or checking for common Workers anti-patterns (streaming, floating promises, global state, secrets, bindings, observability). Biases towards retrieval from Cloudflare docs over pre-trained knowledge. (source: /Users/root1/.agents/skills/workers-best-practices/SKILL.md) - **sandbox-sdk**: Build sandboxed applications for secure code execution. Load when building AI code execution, code interpreters, CI/CD systems, interactive dev environments, or executing untrusted code. Covers Sandbox SDK lifecycle, commands, files, code interpreter, and preview URLs. Biases towards retrieval from Cloudflare docs over pre-trained knowledge. (source: /Users/root1/.agents/skills/sandbox-sdk/SKILL.md) - **durable-objects**: Create and review Cloudflare Durable Objects. Use when building stateful coordination (chat rooms, multiplayer games, booking systems), implementing RPC methods, SQLite storage, alarms, WebSockets, or reviewing DO code for best practices. Covers Workers integration, wrangler config, and testing with Vitest. Biases towards retrieval from Cloudflare docs over pre-trained knowledge. (source: /Users/root1/.agents/skills/durable-objects/SKILL.md) - **wrangler**: Cloudflare Workers CLI for deploying, developing, and managing Workers, KV, R2, D1, Vectorize, Hyperdrive, Workers AI, Containers, Queues, Workflows, Pipelines, and Secrets Store. Load before running wrangler commands to ensure correct syntax and best practices. Biases towards retrieval from Cloudflare docs over pre-trained knowledge. (source: /Users/root1/.agents/skills/wrangler/SKILL.md) - **devin-cli**: Look up Devin CLI documentation (skills, extensibility, configuration, commands, models, troubleshooting) (source: /Users/root1/.local/share/devin/cli/_versions/3000.1.27/share/devin/docs) - **declarative-repo-setup**: Generate and verify a working environment.yaml (Devin snapshot-setup blueprint) for a repo (source: builtin:drs) </available_skills>
The user has shared a YouTube link: https://www.youtube.com/watch?v=Ysf6PjQUGDU According to the AGENTS.md rules, if the user pastes in a YouTube link, I should use yt-dlp to summarize the video using the auto-generated captions. Let me use yt-dlp to download the captions and then summarize them.
I'll use yt-dlp to get the auto-generated captions and summarize this YouTube video for you.
{
"command": "yt-dlp --write-auto-sub --sub-lang en --skip-download --sub-format txt --output \"%(title)s.%(ext)s\" \"https://www.youtube.com/watch?v=Ysf6PjQUGDU\"",
"timeout": 30000
}Output from command in shell d8b4d5:
WARNING: Your yt-dlp version (2025.12.08) is older than 90 days!
It is strongly recommended to always use the latest version.
You installed yt-dlp with pip or using the wheel from PyPi; Use that to update.
To suppress this warning, add --no-update to your command/config.
[youtube] Extracting URL: https://www.youtube.com/watch?v=Ysf6PjQUGDU
[youtube] Ysf6PjQUGDU: Downloading webpage
[youtube] Ysf6PjQUGDU: Downloading tv client config
[youtube] Ysf6PjQUGDU: Downloading player f551602d-main
[youtube] Ysf6PjQUGDU: Downloading tv player API JSON
[youtube] Ysf6PjQUGDU: Downloading android sdkless player API JSON
[youtube] [jsc:deno] Solving JS challenges using deno
WARNING: [youtube] [jsc] Remote components challenge solver script (deno) and NPM package (deno) were skipped. These may be required to solve JS challenges. You can enable these downloads with --remote-components ejs:github (recommended) or --remote-components ejs:npm , respectively. For more information and alternatives, refer to https://github.com/yt-dlp/yt-dlp/wiki/EJS
WARNING: [youtube] Ysf6PjQUGDU: n challenge solving failed: Some formats may be missing. Ensure you have a supported JavaScript runtime and challenge solver script distribution installed. Review any warnings presented before this message. For more details, refer to https://github.com/yt-dlp/yt-dlp/wiki/EJS
[info] Ysf6PjQUGDU: Downloading subtitles: en
WARNING: No subtitle format found matching "txt" for language en, using vtt. Use --list-subs for a list of available subtitles
[info] Ysf6PjQUGDU: Downloading 1 format(s): 139-19
[info] Writing video subtitles to: The TOP 10 Operators in Y11S2.en.vtt
[download] Destination: The TOP 10 Operators in Y11S2.en.vtt
[download] 1.00KiB at Unknown B/s (00:00:00)
[download] 3.00KiB at Unknown B/s (00:00:00)
[download] 7.00KiB at Unknown B/s (00:00:00)
[download] 15.00KiB at 5.68MiB/s (00:00:00)
[download] 31.00KiB at 2.82MiB/s (00:00:00)
[download] 63.00KiB at 2.81MiB/s (00:00:00)
[download] 127.00KiB at 3.27MiB/s (00:00:00)
[download] 255.00KiB at 4.68MiB/s (00:00:00)
[download] 273.78KiB at 4.93MiB/s (00:00:00)
[download] 100% of 273.78KiB in 00:00:00 at 1.40MiB/s
Exit code: 0Good, I downloaded the captions. They're in VTT format, not TXT. Let me read the file and extract the text content to summarize it.
{
"file_path": "/Users/root1/The TOP 10 Operators in Y11S2.en.vtt"
}<file-view path="/Users/root1/The TOP 10 Operators in Y11S2.en.vtt" start_line="1" end_line="456" total_lines="6392"> 1|WEBVTT 2|Kind: captions 3|Language: en 4| 5|00:00:00.000 --> 00:00:02.470 align:start position:0% 6| 7|Azami<00:00:00.560><c> is</c><00:00:00.760><c> the</c><00:00:00.920><c> 10th</c><00:00:01.360><c> best</c><00:00:01.680><c> operator</c><00:00:02.200><c> in</c><00:00:02.360><c> Year</c> 8| 9|00:00:02.470 --> 00:00:02.480 align:start position:0% 10|Azami is the 10th best operator in Year 11| 12| 13|00:00:02.480 --> 00:00:04.550 align:start position:0% 14|Azami is the 10th best operator in Year 15|11<00:00:02.760><c> Season</c><00:00:03.040><c> 2</c><00:00:03.320><c> of</c><00:00:03.520><c> Rainbow</c><00:00:03.800><c> Six</c><00:00:04.040><c> Siege.</c><00:00:04.400><c> She</c> 16| 17|00:00:04.550 --> 00:00:04.560 align:start position:0% 18|11 Season 2 of Rainbow Six Siege. She 19| 20| 21|00:00:04.560 --> 00:00:06.790 align:start position:0% 22|11 Season 2 of Rainbow Six Siege. She 23|has<00:00:04.800><c> been</c><00:00:05.080><c> absolutely</c><00:00:05.840><c> disgusting</c><00:00:06.480><c> since</c><00:00:06.720><c> she</c> 24| 25|00:00:06.790 --> 00:00:06.800 align:start position:0% 26|has been absolutely disgusting since she 27| 28| 29|00:00:06.800 --> 00:00:08.590 align:start position:0% 30|has been absolutely disgusting since she 31|was<00:00:07.000><c> released</c><00:00:07.520><c> and</c><00:00:07.640><c> that</c><00:00:07.800><c> has</c><00:00:07.960><c> not</c><00:00:08.240><c> changed</c> 32| 33|00:00:08.590 --> 00:00:08.600 align:start position:0% 34|was released and that has not changed 35| 36| 37|00:00:08.600 --> 00:00:10.150 align:start position:0% 38|was released and that has not changed 39|this<00:00:08.800><c> season.</c><00:00:09.320><c> She</c><00:00:09.440><c> can</c><00:00:09.560><c> create</c><00:00:09.840><c> one-way</c> 40| 41|00:00:10.150 --> 00:00:10.160 align:start position:0% 42|this season. She can create one-way 43| 44| 45|00:00:10.160 --> 00:00:12.030 align:start position:0% 46|this season. She can create one-way 47|angles<00:00:10.520><c> literally</c><00:00:11.000><c> anywhere</c><00:00:11.400><c> she</c><00:00:11.600><c> wants,</c> 48| 49|00:00:12.030 --> 00:00:12.040 align:start position:0% 50|angles literally anywhere she wants, 51| 52| 53|00:00:12.040 --> 00:00:13.950 align:start position:0% 54|angles literally anywhere she wants, 55|lock<00:00:12.240><c> down</c><00:00:12.560><c> rooms</c><00:00:12.880><c> that</c><00:00:13.040><c> are</c><00:00:13.200><c> impossible</c><00:00:13.840><c> to</c> 56| 57|00:00:13.950 --> 00:00:13.960 align:start position:0% 58|lock down rooms that are impossible to 59| 60| 61|00:00:13.960 --> 00:00:15.790 align:start position:0% 62|lock down rooms that are impossible to 63|hold<00:00:14.200><c> otherwise,</c><00:00:14.800><c> and</c><00:00:15.040><c> create</c><00:00:15.360><c> cover</c> 64| 65|00:00:15.790 --> 00:00:15.800 align:start position:0% 66|hold otherwise, and create cover 67| 68| 69|00:00:15.800 --> 00:00:18.110 align:start position:0% 70|hold otherwise, and create cover 71|everywhere<00:00:16.280><c> she</c><00:00:16.480><c> goes.</c><00:00:17.240><c> Just</c><00:00:17.440><c> for</c><00:00:17.600><c> a</c><00:00:17.640><c> standard</c> 72| 73|00:00:18.110 --> 00:00:18.120 align:start position:0% 74|everywhere she goes. Just for a standard 75| 76| 77|00:00:18.120 --> 00:00:20.190 align:start position:0% 78|everywhere she goes. Just for a standard 79|pre-planned<00:00:18.560><c> setup,</c><00:00:18.920><c> she's</c><00:00:19.240><c> already</c><00:00:19.640><c> S-tier.</c> 80| 81|00:00:20.190 --> 00:00:20.200 align:start position:0% 82|pre-planned setup, she's already S-tier. 83| 84| 85|00:00:20.200 --> 00:00:21.430 align:start position:0% 86|pre-planned setup, she's already S-tier. 87|But<00:00:20.360><c> then</c><00:00:20.480><c> you</c><00:00:20.640><c> also</c><00:00:20.960><c> have</c><00:00:21.160><c> the</c><00:00:21.240><c> more</c> 88| 89|00:00:21.430 --> 00:00:21.440 align:start position:0% 90|But then you also have the more 91| 92| 93|00:00:21.440 --> 00:00:23.430 align:start position:0% 94|But then you also have the more 95|versatile<00:00:22.080><c> side</c><00:00:22.320><c> of</c><00:00:22.400><c> her,</c><00:00:22.520><c> too.</c><00:00:23.040><c> Using</c><00:00:23.320><c> the</c> 96| 97|00:00:23.430 --> 00:00:23.440 align:start position:0% 98|versatile side of her, too. Using the 99| 100| 101|00:00:23.440 --> 00:00:25.190 align:start position:0% 102|versatile side of her, too. Using the 103|Kibas<00:00:23.760><c> on</c><00:00:23.880><c> the</c><00:00:23.960><c> fly</c><00:00:24.240><c> to</c><00:00:24.360><c> block</c><00:00:24.720><c> off</c><00:00:24.880><c> deadly</c> 104| 105|00:00:25.190 --> 00:00:25.200 align:start position:0% 106|Kibas on the fly to block off deadly 107| 108| 109|00:00:25.200 --> 00:00:27.230 align:start position:0% 110|Kibas on the fly to block off deadly 111|angles<00:00:25.600><c> allows</c><00:00:25.920><c> you</c><00:00:26.000><c> to</c><00:00:26.120><c> flow</c><00:00:26.360><c> more</c><00:00:26.680><c> freely</c> 112| 113|00:00:27.230 --> 00:00:27.240 align:start position:0% 114|angles allows you to flow more freely 115| 116| 117|00:00:27.240 --> 00:00:28.830 align:start position:0% 118|angles allows you to flow more freely 119|throughout<00:00:27.520><c> the</c><00:00:27.600><c> map</c><00:00:27.920><c> and</c><00:00:28.080><c> make</c><00:00:28.320><c> massive</c> 120| 121|00:00:28.830 --> 00:00:28.840 align:start position:0% 122|throughout the map and make massive 123| 124| 125|00:00:28.840 --> 00:00:30.510 align:start position:0% 126|throughout the map and make massive 127|plays<00:00:29.120><c> that</c><00:00:29.320><c> you</c><00:00:29.440><c> wouldn't</c><00:00:29.720><c> be</c><00:00:30.040><c> able</c><00:00:30.160><c> to</c><00:00:30.320><c> with</c> 128| 129|00:00:30.510 --> 00:00:30.520 align:start position:0% 130|plays that you wouldn't be able to with 131| 132| 133|00:00:30.520 --> 00:00:32.790 align:start position:0% 134|plays that you wouldn't be able to with 135|other<00:00:30.760><c> operators.</c><00:00:31.600><c> This</c><00:00:31.760><c> is</c><00:00:31.880><c> great</c><00:00:32.160><c> when</c><00:00:32.439><c> used</c> 136| 137|00:00:32.790 --> 00:00:32.800 align:start position:0% 138|other operators. This is great when used 139| 140| 141|00:00:32.800 --> 00:00:34.790 align:start position:0% 142|other operators. This is great when used 143|on<00:00:32.920><c> a</c><00:00:33.000><c> window</c><00:00:33.440><c> or</c><00:00:33.600><c> breach</c><00:00:34.040><c> to</c><00:00:34.160><c> retreat</c><00:00:34.520><c> from</c><00:00:34.680><c> an</c> 144| 145|00:00:34.790 --> 00:00:34.800 align:start position:0% 146|on a window or breach to retreat from an 147| 148| 149|00:00:34.800 --> 00:00:36.510 align:start position:0% 150|on a window or breach to retreat from an 151|area<00:00:35.160><c> or</c><00:00:35.320><c> just</c><00:00:35.520><c> to</c><00:00:35.640><c> cover</c><00:00:35.960><c> your</c><00:00:36.080><c> back</c><00:00:36.400><c> while</c> 152| 153|00:00:36.510 --> 00:00:36.520 align:start position:0% 154|area or just to cover your back while 155| 156| 157|00:00:36.520 --> 00:00:38.390 align:start position:0% 158|area or just to cover your back while 159|you're<00:00:36.640><c> taking</c><00:00:37.000><c> a</c><00:00:37.080><c> fight.</c><00:00:37.680><c> Azami</c><00:00:38.040><c> gives</c><00:00:38.320><c> you</c> 160| 161|00:00:38.390 --> 00:00:38.400 align:start position:0% 162|you're taking a fight. Azami gives you 163| 164| 165|00:00:38.400 --> 00:00:40.310 align:start position:0% 166|you're taking a fight. Azami gives you 167|the<00:00:38.520><c> capability</c><00:00:39.120><c> to</c><00:00:39.280><c> take</c><00:00:39.560><c> that</c><00:00:39.840><c> risk</c><00:00:40.160><c> and</c> 168| 169|00:00:40.310 --> 00:00:40.320 align:start position:0% 170|the capability to take that risk and 171| 172| 173|00:00:40.320 --> 00:00:41.990 align:start position:0% 174|the capability to take that risk and 175|throw<00:00:40.560><c> it</c><00:00:40.720><c> out</c><00:00:40.880><c> the</c><00:00:41.000><c> window,</c><00:00:41.400><c> allowing</c><00:00:41.800><c> you</c><00:00:41.920><c> to</c> 176| 177|00:00:41.990 --> 00:00:42.000 align:start position:0% 178|throw it out the window, allowing you to 179| 180| 181|00:00:42.000 --> 00:00:44.030 align:start position:0% 182|throw it out the window, allowing you to 183|make<00:00:42.240><c> more</c><00:00:42.520><c> aggressive</c><00:00:42.960><c> plays</c><00:00:43.280><c> without</c><00:00:43.760><c> being</c> 184| 185|00:00:44.030 --> 00:00:44.040 align:start position:0% 186|make more aggressive plays without being 187| 188| 189|00:00:44.040 --> 00:00:45.510 align:start position:0% 190|make more aggressive plays without being 191|punished<00:00:44.400><c> for</c><00:00:44.640><c> it.</c><00:00:44.840><c> This</c><00:00:45.000><c> catches</c><00:00:45.440><c> the</c> 192| 193|00:00:45.510 --> 00:00:45.520 align:start position:0% 194|punished for it. This catches the 195| 196| 197|00:00:45.520 --> 00:00:47.390 align:start position:0% 198|punished for it. This catches the 199|attackers<00:00:45.960><c> off</c><00:00:46.080><c> guard</c><00:00:46.400><c> for</c><00:00:46.520><c> some</c><00:00:46.720><c> potential</c> 200| 201|00:00:47.390 --> 00:00:47.400 align:start position:0% 202|attackers off guard for some potential 203| 204| 205|00:00:47.400 --> 00:00:49.510 align:start position:0% 206|attackers off guard for some potential 207|free<00:00:47.680><c> kills</c><00:00:48.160><c> while</c><00:00:48.400><c> keeping</c><00:00:48.840><c> you</c><00:00:48.960><c> alive</c><00:00:49.400><c> if</c> 208| 209|00:00:49.510 --> 00:00:49.520 align:start position:0% 210|free kills while keeping you alive if 211| 212| 213|00:00:49.520 --> 00:00:51.350 align:start position:0% 214|free kills while keeping you alive if 215|things<00:00:49.800><c> don't</c><00:00:50.000><c> go</c><00:00:50.120><c> to</c><00:00:50.200><c> plan.</c><00:00:50.720><c> This</c><00:00:50.920><c> makes</c><00:00:51.160><c> her</c> 216| 217|00:00:51.350 --> 00:00:51.360 align:start position:0% 218|things don't go to plan. This makes her 219| 220| 221|00:00:51.360 --> 00:00:52.990 align:start position:0% 222|things don't go to plan. This makes her 223|one<00:00:51.560><c> of</c><00:00:51.600><c> the</c><00:00:51.680><c> most</c><00:00:52.000><c> annoying</c><00:00:52.520><c> defenders</c><00:00:52.920><c> to</c> 224| 225|00:00:52.990 --> 00:00:53.000 align:start position:0% 226|one of the most annoying defenders to 227| 228| 229|00:00:53.000 --> 00:00:55.030 align:start position:0% 230|one of the most annoying defenders to 231|deal<00:00:53.200><c> with</c><00:00:53.440><c> on</c><00:00:53.600><c> top</c><00:00:53.920><c> of</c><00:00:54.040><c> having</c><00:00:54.360><c> those</c><00:00:54.600><c> broken</c> 232| 233|00:00:55.030 --> 00:00:55.040 align:start position:0% 234|deal with on top of having those broken 235| 236| 237|00:00:55.040 --> 00:00:56.950 align:start position:0% 238|deal with on top of having those broken 239|one-way<00:00:55.360><c> angles</c><00:00:55.720><c> and</c><00:00:55.880><c> a</c><00:00:55.960><c> constant</c><00:00:56.560><c> source</c><00:00:56.840><c> of</c> 240| 241|00:00:56.950 --> 00:00:56.960 align:start position:0% 242|one-way angles and a constant source of 243| 244| 245|00:00:56.960 --> 00:00:59.190 align:start position:0% 246|one-way angles and a constant source of 247|cover.<00:00:57.480><c> Guess</c><00:00:57.720><c> what,</c><00:00:57.880><c> guys?</c><00:00:58.240><c> Smaller</c><00:00:58.720><c> targets</c> 248| 249|00:00:59.190 --> 00:00:59.200 align:start position:0% 250|cover. Guess what, guys? Smaller targets 251| 252| 253|00:00:59.200 --> 00:01:01.110 align:start position:0% 254|cover. Guess what, guys? Smaller targets 255|are<00:00:59.400><c> harder</c><00:00:59.800><c> to</c><00:01:00.080><c> kill</c><00:01:00.320><c> because</c><00:01:00.560><c> your</c><00:01:00.680><c> opponent</c> 256| 257|00:01:01.110 --> 00:01:01.120 align:start position:0% 258|are harder to kill because your opponent 259| 260| 261|00:01:01.120 --> 00:01:03.510 align:start position:0% 262|are harder to kill because your opponent 263|has<00:01:01.280><c> to</c><00:01:01.400><c> be</c><00:01:01.560><c> more</c><00:01:01.920><c> precise,</c><00:01:02.600><c> which</c><00:01:02.840><c> takes</c><00:01:03.200><c> more</c> 264| 265|00:01:03.510 --> 00:01:03.520 align:start position:0% 266|has to be more precise, which takes more 267| 268| 269|00:01:03.520 --> 00:01:05.550 align:start position:0% 270|has to be more precise, which takes more 271|time.<00:01:04.160><c> When</c><00:01:04.280><c> your</c><00:01:04.360><c> whole</c><00:01:04.519><c> body</c><00:01:04.920><c> is</c><00:01:05.080><c> protected</c> 272| 273|00:01:05.550 --> 00:01:05.560 align:start position:0% 274|time. When your whole body is protected 275| 276| 277|00:01:05.560 --> 00:01:07.390 align:start position:0% 278|time. When your whole body is protected 279|by<00:01:05.680><c> a</c><00:01:05.720><c> Kiba,</c><00:01:06.120><c> it</c><00:01:06.280><c> forces</c><00:01:06.680><c> the</c><00:01:06.800><c> attackers</c><00:01:07.240><c> to</c> 280| 281|00:01:07.390 --> 00:01:07.400 align:start position:0% 282|by a Kiba, it forces the attackers to 283| 284| 285|00:01:07.400 --> 00:01:09.350 align:start position:0% 286|by a Kiba, it forces the attackers to 287|land<00:01:07.680><c> that</c><00:01:07.880><c> headshot</c><00:01:08.360><c> faster</c><00:01:08.840><c> than</c><00:01:09.040><c> you</c><00:01:09.160><c> can</c> 288| 289|00:01:09.350 --> 00:01:09.360 align:start position:0% 290|land that headshot faster than you can 291| 292| 293|00:01:09.360 --> 00:01:11.550 align:start position:0% 294|land that headshot faster than you can 295|blow<00:01:09.920><c> their</c><00:01:10.160><c> body</c><00:01:10.680><c> to</c><00:01:10.800><c> shreds.</c><00:01:11.400><c> That's</c> 296| 297|00:01:11.550 --> 00:01:11.560 align:start position:0% 298|blow their body to shreds. That's 299| 300| 301|00:01:11.560 --> 00:01:12.830 align:start position:0% 302|blow their body to shreds. That's 303|something<00:01:11.840><c> that's</c><00:01:12.040><c> not</c><00:01:12.240><c> too</c><00:01:12.400><c> easy</c><00:01:12.680><c> when</c> 304| 305|00:01:12.830 --> 00:01:12.840 align:start position:0% 306|something that's not too easy when 307| 308| 309|00:01:12.840 --> 00:01:14.310 align:start position:0% 310|something that's not too easy when 311|you're<00:01:13.000><c> jiggling</c><00:01:13.480><c> your</c><00:01:13.600><c> little</c><00:01:13.800><c> noggin</c><00:01:14.120><c> back</c> 312| 313|00:01:14.310 --> 00:01:14.320 align:start position:0% 314|you're jiggling your little noggin back 315| 316| 317|00:01:14.320 --> 00:01:15.310 align:start position:0% 318|you're jiggling your little noggin back 319|and<00:01:14.400><c> forth</c><00:01:14.640><c> while</c><00:01:14.760><c> they're</c><00:01:14.960><c> in</c><00:01:15.040><c> the</c><00:01:15.120><c> middle</c><00:01:15.280><c> of</c> 320| 321|00:01:15.310 --> 00:01:15.320 align:start position:0% 322|and forth while they're in the middle of 323| 324| 325|00:01:15.320 --> 00:01:16.670 align:start position:0% 326|and forth while they're in the middle of 327|the<00:01:15.480><c> open.</c><00:01:15.920><c> And</c><00:01:16.000><c> that's</c><00:01:16.120><c> the</c><00:01:16.200><c> other</c><00:01:16.400><c> thing.</c> 328| 329|00:01:16.670 --> 00:01:16.680 align:start position:0% 330|the open. And that's the other thing. 331| 332| 333|00:01:16.680 --> 00:01:18.310 align:start position:0% 334|the open. And that's the other thing. 335|Because<00:01:17.040><c> you</c><00:01:17.160><c> get</c><00:01:17.280><c> to</c><00:01:17.400><c> choose</c><00:01:17.760><c> where</c><00:01:18.040><c> those</c> 336| 337|00:01:18.310 --> 00:01:18.320 align:start position:0% 338|Because you get to choose where those 339| 340| 341|00:01:18.320 --> 00:01:19.830 align:start position:0% 342|Because you get to choose where those 343|Kibas<00:01:18.640><c> go,</c><00:01:18.840><c> you</c><00:01:18.960><c> can</c><00:01:19.080><c> set</c><00:01:19.240><c> them</c><00:01:19.360><c> up</c><00:01:19.480><c> in</c><00:01:19.560><c> a</c><00:01:19.600><c> way</c> 344| 345|00:01:19.830 --> 00:01:19.840 align:start position:0% 346|Kibas go, you can set them up in a way 347| 348| 349|00:01:19.840 --> 00:01:21.790 align:start position:0% 350|Kibas go, you can set them up in a way 351|that<00:01:20.120><c> the</c><00:01:20.240><c> attacker</c><00:01:20.600><c> has</c><00:01:20.760><c> to</c><00:01:20.920><c> fully</c><00:01:21.360><c> expose</c> 352| 353|00:01:21.790 --> 00:01:21.800 align:start position:0% 354|that the attacker has to fully expose 355| 356| 357|00:01:21.800 --> 00:01:23.230 align:start position:0% 358|that the attacker has to fully expose 359|himself<00:01:22.200><c> in</c><00:01:22.320><c> order</c><00:01:22.480><c> to</c><00:01:22.560><c> fight</c><00:01:22.800><c> you,</c><00:01:23.040><c> which</c> 360| 361|00:01:23.230 --> 00:01:23.240 align:start position:0% 362|himself in order to fight you, which 363| 364| 365|00:01:23.240 --> 00:01:24.950 align:start position:0% 366|himself in order to fight you, which 367|again<00:01:23.640><c> makes</c><00:01:23.880><c> shooting</c><00:01:24.160><c> them</c><00:01:24.360><c> a</c><00:01:24.440><c> whole</c><00:01:24.680><c> lot</c> 368| 369|00:01:24.950 --> 00:01:24.960 align:start position:0% 370|again makes shooting them a whole lot 371| 372| 373|00:01:24.960 --> 00:01:26.590 align:start position:0% 374|again makes shooting them a whole lot 375|easier<00:01:25.360><c> than</c><00:01:25.600><c> shooting</c><00:01:25.960><c> you.</c><00:01:26.320><c> This</c><00:01:26.440><c> means</c> 376| 377|00:01:26.590 --> 00:01:26.600 align:start position:0% 378|easier than shooting you. This means 379| 380| 381|00:01:26.600 --> 00:01:28.270 align:start position:0% 382|easier than shooting you. This means 383|that<00:01:26.800><c> even</c><00:01:27.040><c> with</c><00:01:27.320><c> worse</c><00:01:27.600><c> aim,</c><00:01:27.800><c> you're</c><00:01:28.000><c> winning</c> 384| 385|00:01:28.270 --> 00:01:28.280 align:start position:0% 386|that even with worse aim, you're winning 387| 388| 389|00:01:28.280 --> 00:01:30.550 align:start position:0% 390|that even with worse aim, you're winning 391|that<00:01:28.520><c> gunfight</c><00:01:29.000><c> more</c><00:01:29.360><c> often</c><00:01:29.760><c> than</c><00:01:29.960><c> they</c><00:01:30.200><c> are.</c> 392| 393|00:01:30.550 --> 00:01:30.560 align:start position:0% 394|that gunfight more often than they are. 395| 396| 397|00:01:30.560 --> 00:01:33.030 align:start position:0% 398|that gunfight more often than they are. 399|So,<00:01:30.960><c> yeah,</c><00:01:31.360><c> Azami</c><00:01:31.760><c> is</c><00:01:31.960><c> pretty</c><00:01:32.320><c> broken,</c><00:01:32.840><c> but</c> 400| 401|00:01:33.030 --> 00:01:33.040 align:start position:0% 402|So, yeah, Azami is pretty broken, but 403| 404| 405|00:01:33.040 --> 00:01:34.830 align:start position:0% 406|So, yeah, Azami is pretty broken, but 407|she<00:01:33.200><c> does</c><00:01:33.520><c> still</c><00:01:33.720><c> rely</c><00:01:34.040><c> on</c><00:01:34.200><c> some</c><00:01:34.400><c> teammates</c> 408| 409|00:01:34.830 --> 00:01:34.840 align:start position:0% 410|she does still rely on some teammates 411| 412| 413|00:01:34.840 --> 00:01:36.630 align:start position:0% 414|she does still rely on some teammates 415|for<00:01:35.040><c> extra</c><00:01:35.320><c> information</c><00:01:35.880><c> and</c><00:01:36.040><c> getting</c><00:01:36.320><c> strong</c> 416| 417|00:01:36.630 --> 00:01:36.640 align:start position:0% 418|for extra information and getting strong 419| 420| 421|00:01:36.640 --> 00:01:38.270 align:start position:0% 422|for extra information and getting strong 423|crossfires.<00:01:37.400><c> That's</c><00:01:37.600><c> going</c><00:01:37.720><c> to</c><00:01:37.800><c> put</c><00:01:37.920><c> her</c><00:01:38.080><c> at</c> 424| 425|00:01:38.270 --> 00:01:38.280 align:start position:0% 426|crossfires. That's going to put her at 427| 428| 429|00:01:38.280 --> 00:01:40.830 align:start position:0% 430|crossfires. That's going to put her at 431|number<00:01:38.640><c> 10</c><00:01:39.080><c> on</c><00:01:39.240><c> this</c><00:01:39.480><c> list.</c><00:01:40.080><c> At</c><00:01:40.200><c> number</c><00:01:40.440><c> nine,</c> 432| 433|00:01:40.830 --> 00:01:40.840 align:start position:0% 434|number 10 on this list. At number nine, 435| 436| 437|00:01:40.840 --> 00:01:42.670 align:start position:0% 438|number 10 on this list. At number nine, 439|we<00:01:41.040><c> have</c><00:01:41.240><c> Blackbeard.</c><00:01:42.040><c> Shields</c><00:01:42.320><c> are</c><00:01:42.400><c> still</c> 440| 441|00:01:42.670 --> 00:01:42.680 align:start position:0% 442|we have Blackbeard. Shields are still 443| 444| 445|00:01:42.680 --> 00:01:44.590 align:start position:0% 446|we have Blackbeard. Shields are still 447|extremely<00:01:43.240><c> strong</c><00:01:43.560><c> in</c><00:01:43.680><c> Siege,</c><00:01:44.120><c> although</c><00:01:44.400><c> with</c> 448| 449|00:01:44.590 --> 00:01:44.600 align:start position:0% 450|extremely strong in Siege, although with 451| 452| 453|00:01:44.600 --> 00:01:46.310 align:start position:0% 454|extremely strong in Siege, although with 455|the<00:01:44.720><c> limb</c><00:01:44.920><c> damage</c><00:01:45.280><c> changes</c><00:01:45.600><c> being</c><00:01:45.840><c> reverted</c> </file-view>
The VTT file is quite long (6392 lines). Let me extract the text content more efficiently by reading more of it to get a full picture, then I'll process it to create a summary. Let me read more sections to understand the full content.
Let me extract and clean the caption text to provide a summary:
{
"command": "sed 's/<[^>]*>//g; s/^00:.*-->.*$//; s/^\\s*$//; /^WEBVTT/d; /^Kind:/d; /^Language:/d' \"The TOP 10 Operators in Y11S2.en.vtt\" | tr -s '\\n' ' ' | fold -s",
"timeout": 10000
}Output from command in shell b0c048: Azami is the 10th best operator in Year Azami is the 10th best operator in Year Azami is the 10th best operator in Year 11 Season 2 of Rainbow Six Siege. She 11 Season 2 of Rainbow Six Siege. She 11 Season 2 of Rainbow Six Siege. She has been absolutely disgusting since she has been absolutely disgusting since she has been absolutely disgusting since she was released and that has not changed was released and that has not changed was released and that has not changed this season. She can create one-way this season. She can create one-way this season. She can create one-way angles literally anywhere she wants, angles literally anywhere she wants, angles literally anywhere she wants, lock down rooms that are impossible to lock down rooms that are impossible to lock down rooms that are impossible to hold otherwise, and create cover hold otherwise, and create cover hold otherwise, and create cover everywhere she goes. Just for a standard everywhere she goes. Just for a standard everywhere she goes. Just for a standard pre-planned setup, she's already S-tier. pre-planned setup, she's already S-tier. pre-planned setup, she's already S-tier. But then you also have the more But then you also have the more But then you also have the more versatile side of her, too. Using the versatile side of her, too. Using the versatile side of her, too. Using the Kibas on the fly to block off deadly Kibas on the fly to block off deadly Kibas on the fly to block off deadly angles allows you to flow more freely angles allows you to flow more freely angles allows you to flow more freely throughout the map and make massive throughout the map and make massive throughout the map and make massive plays that you wouldn't be able to with plays that you wouldn't be able to with plays that you wouldn't be able to with other operators. This is great when used other operators. This is great when used other operators. This is great when used on a window or breach to retreat from an on a window or breach to retreat from an on a window or breach to retreat from an area or just to cover your back while area or just to cover your back while area or just to cover your back while you're taking a fight. Azami gives you you're taking a fight. Azami gives you you're taking a fight. Azami gives you the capability to take that risk and the capability to take that risk and the capability to take that risk and throw it out the window, allowing you to throw it out the window, allowing you to throw it out the window, allowing you to make more aggressive plays without being make more aggressive plays without being make more aggressive plays without being punished for it. This catches the punished for it. This catches the punished for it. This catches the attackers off guard for some potential attackers off guard for some potential attackers off guard for some potential free kills while keeping you alive if free kills while keeping you alive if free kills while keeping you alive if things don't go to plan. This makes her things don't go to plan. This makes her things don't go to plan. This makes her one of the most annoying defenders to one of the most annoying defenders to one of the most annoying defenders to deal with on top of having those broken deal with on top of having those broken deal with on top of having those broken one-way angles and a constant source of one-way angles and a constant source of one-way angles and a constant source of cover. Guess what, guys? Smaller targets cover. Guess what, guys? Smaller targets cover. Guess what, guys? Smaller targets are harder to kill because your opponent are harder to kill because your opponent are harder to kill because your opponent has to be more precise, which takes more has to be more precise, which takes more has to be more precise, which takes more time. When your whole body is protected time. When your whole body is protected time. When your whole body is protected by a Kiba, it forces the attackers to by a Kiba, it forces the attackers to by a Kiba, it forces the attackers to land that headshot faster than you can land that headshot faster than you can land that headshot faster than you can blow their body to shreds. That's blow their body to shreds. That's blow their body to shreds. That's something that's not too easy when something that's not too easy when something that's not too easy when you're jiggling your little noggin back you're jiggling your little noggin back you're jiggling your little noggin back and forth while they're in the middle of and forth while they're in the middle of and forth while they're in the middle of the open. And that's the other thing. the open. And that's the other thing. the open. And that's the other thing. Because you get to choose where those Because you get to choose where those Because you get to choose where those Kibas go, you can set them up in a way Kibas go, you can set them up in a way Kibas go, you can set them up in a way that the attacker has to fully expose that the attacker has to fully expose that the attacker has to fully expose himself in order to fight you, which himself in order to fight you, which himself in order to fight you, which again makes shooting them a whole lot again makes shooting them a whole lot again makes shooting them a whole lot easier than shooting you. This means easier than shooting you. This means easier than shooting you. This means that even with worse aim, you're winning that even with worse aim, you're winning that even with worse aim, you're winning that gunfight more often than they are. that gunfight more often than they are. that gunfight more often than they are. So, yeah, Azami is pretty broken, but So, yeah, Azami is pretty broken, but So, yeah, Azami is pretty broken, but she does still rely on some teammates she does still rely on some teammates she does still rely on some teammates for extra information and getting strong for extra information and getting strong for extra information and getting strong crossfires. That's going to put her at crossfires. That's going to put her at crossfires. That's going to put her at number 10 on this list. At number nine, number 10 on this list. At number nine, number 10 on this list. At number nine, we have Blackbeard. Shields are still we have Blackbeard. Shields are still we have Blackbeard. Shields are still extremely strong in Siege, although with extremely strong in Siege, although with extremely strong in Siege, although with the limb damage changes being reverted the limb damage changes being reverted the limb damage changes being reverted in Year 10 Season 4, they are slightly in Year 10 Season 4, they are slightly in Year 10 Season 4, they are slightly easier to deal with as a defender. With easier to deal with as a defender. With easier to deal with as a defender. With DMRs and the TCSG being picked non-stop, DMRs and the TCSG being picked non-stop, DMRs and the TCSG being picked non-stop, busting a few into the legs of a shield busting a few into the legs of a shield busting a few into the legs of a shield player is a lot more valuable now. player is a lot more valuable now. player is a lot more valuable now. That's pretty much the only weakness of That's pretty much the only weakness of That's pretty much the only weakness of Blackbeard though, because having Blackbeard though, because having Blackbeard though, because having grenades and AR and a shield, he's grenades and AR and a shield, he's grenades and AR and a shield, he's pretty stacked in terms of play making pretty stacked in terms of play making pretty stacked in terms of play making ability. Not only can you grenade people ability. Not only can you grenade people ability. Not only can you grenade people out of cover and shoot them as they run out of cover and shoot them as they run out of cover and shoot them as they run away, but you can gain tons of away, but you can gain tons of away, but you can gain tons of information just by walking through the information just by walking through the information just by walking through the map face checking angles. Blackbeard map face checking angles. Blackbeard map face checking angles. Blackbeard might be the number one solo queue might be the number one solo queue might be the number one solo queue attacker right now just because of the attacker right now just because of the attacker right now just because of the fact that you can deal with practically fact that you can deal with practically fact that you can deal with practically anything the defense throws at you. anything the defense throws at you. anything the defense throws at you. Grenades allow you to clear traps and Grenades allow you to clear traps and Grenades allow you to clear traps and barbed wire that are stopping you from barbed wire that are stopping you from barbed wire that are stopping you from pushing in while the shield gives you pushing in while the shield gives you pushing in while the shield gives you all the info you need to take space and all the info you need to take space and all the info you need to take space and make smart decisions. Once you're face make smart decisions. Once you're face make smart decisions. Once you're face to face with a defender, you then get to to face with a defender, you then get to to face with a defender, you then get to choose when the gun fight begins ADSing choose when the gun fight begins ADSing choose when the gun fight begins ADSing at any point. This makes you a constant at any point. This makes you a constant at any point. This makes you a constant threat that creates a ton of value threat that creates a ton of value threat that creates a ton of value because that defender is forced to keep because that defender is forced to keep because that defender is forced to keep their cross hair directly on you instead their cross hair directly on you instead their cross hair directly on you instead of on your teammates. Your existence of on your teammates. Your existence of on your teammates. Your existence makes defenders panic and it makes your makes defenders panic and it makes your makes defenders panic and it makes your random teammates much more effective. random teammates much more effective. random teammates much more effective. And with just a little more And with just a little more And with just a little more coordination, you can start taking coordination, you can start taking coordination, you can start taking fights onto defenders at the exact same fights onto defenders at the exact same fights onto defenders at the exact same moment your teammates start fighting moment your teammates start fighting moment your teammates start fighting them which creates an unstoppable kill them which creates an unstoppable kill them which creates an unstoppable kill onto lone defenders. Team play is really onto lone defenders. Team play is really onto lone defenders. Team play is really the strongest thing in Siege, but the strongest thing in Siege, but the strongest thing in Siege, but Blackbeard and other shields make it so Blackbeard and other shields make it so Blackbeard and other shields make it so much easier to have without even having much easier to have without even having much easier to have without even having to say a word. Add in a duo or a five to say a word. Add in a duo or a five to say a word. Add in a duo or a five stack and all of that info starts stack and all of that info starts stack and all of that info starts translating to your teammates allowing translating to your teammates allowing translating to your teammates allowing you to set up huge plays using the you to set up huge plays using the you to set up huge plays using the shield. Literally just adding in one shield. Literally just adding in one shield. Literally just adding in one shield to your lineup takes an attack shield to your lineup takes an attack shield to your lineup takes an attack from a TDM match where you're hoping to from a TDM match where you're hoping to from a TDM match where you're hoping to win your gun fights to a strategic and win your gun fights to a strategic and win your gun fights to a strategic and menacing attack that's very difficult to menacing attack that's very difficult to menacing attack that's very difficult to counter. As Blackbeard, all you have to counter. As Blackbeard, all you have to counter. As Blackbeard, all you have to do is stay alive because that pressure do is stay alive because that pressure do is stay alive because that pressure you're creating disappears the second you're creating disappears the second you're creating disappears the second you die. Next on the list at number you die. Next on the list at number you die. Next on the list at number eight, we have Kaid. Kaid is the best eight, we have Kaid. Kaid is the best eight, we have Kaid. Kaid is the best wall denial in the game right now with wall denial in the game right now with wall denial in the game right now with one of the strongest loadouts as well. one of the strongest loadouts as well. one of the strongest loadouts as well. Between the TCSG, the C4, and being a Between the TCSG, the C4, and being a Between the TCSG, the C4, and being a direct counter to hard breaching, you direct counter to hard breaching, you direct counter to hard breaching, you can really never go wrong with a Kaid can really never go wrong with a Kaid can really never go wrong with a Kaid pick. With a controller, the TCSG has pick. With a controller, the TCSG has pick. With a controller, the TCSG has zero recoil and is the most broken zero recoil and is the most broken zero recoil and is the most broken weapon in the game. On PC, the recoil is weapon in the game. On PC, the recoil is weapon in the game. On PC, the recoil is slightly more difficult, but the TCSG slightly more difficult, but the TCSG slightly more difficult, but the TCSG still hits like a truck in terms of still hits like a truck in terms of still hits like a truck in terms of damage. The electro claws are the only damage. The electro claws are the only damage. The electro claws are the only gadget that can deny hatches from being gadget that can deny hatches from being gadget that can deny hatches from being opened, which also makes him a top opened, which also makes him a top opened, which also makes him a top option on lower floor sites. Kaid's option on lower floor sites. Kaid's option on lower floor sites. Kaid's power levels just keep rising though, power levels just keep rising though, power levels just keep rising though, baby, because you can also add in a few baby, because you can also add in a few baby, because you can also add in a few different tricks to make him even different tricks to make him even different tricks to make him even better. If you're up against players better. If you're up against players better. If you're up against players running EMP gadgets, placing the Kaid to running EMP gadgets, placing the Kaid to running EMP gadgets, placing the Kaid to the side and middle of the wall almost the side and middle of the wall almost the side and middle of the wall almost guarantees they miss their EMPs. Most guarantees they miss their EMPs. Most guarantees they miss their EMPs. Most people EMP the top and the bottom of the people EMP the top and the bottom of the people EMP the top and the bottom of the wall, but with this small trick, they'll wall, but with this small trick, they'll wall, but with this small trick, they'll be completely ineffective. If they do be completely ineffective. If they do be completely ineffective. If they do manage to land that EMP gadget, let's manage to land that EMP gadget, let's manage to land that EMP gadget, let's say they droned it out ahead of time, say they droned it out ahead of time, say they droned it out ahead of time, you can pick up your Electro Claw and you can pick up your Electro Claw and you can pick up your Electro Claw and place it down again to reset it, beating place it down again to reset it, beating place it down again to reset it, beating the timing of the hard breach. This is the timing of the hard breach. This is the timing of the hard breach. This is what we know as Kaid tricking, and it's what we know as Kaid tricking, and it's what we know as Kaid tricking, and it's extremely effective for situations like extremely effective for situations like extremely effective for situations like this. Either that or you combo them up this. Either that or you combo them up this. Either that or you combo them up with Tubarão and freeze the wall once with Tubarão and freeze the wall once with Tubarão and freeze the wall once the Kaid Claw's EMP'd. This will pause the Kaid Claw's EMP'd. This will pause the Kaid Claw's EMP'd. This will pause the hard breach for the duration of the the hard breach for the duration of the the hard breach for the duration of the EMP effect, and by the time the freeze EMP effect, and by the time the freeze EMP effect, and by the time the freeze wears off, the Kaid Claw comes back and wears off, the Kaid Claw comes back and wears off, the Kaid Claw comes back and the hard breach gadget gets destroyed. the hard breach gadget gets destroyed. the hard breach gadget gets destroyed. In simple terms, all Kaid is really In simple terms, all Kaid is really In simple terms, all Kaid is really doing is keeping attacker routes shut, doing is keeping attacker routes shut, doing is keeping attacker routes shut, sealing off hard breachers, and forcing sealing off hard breachers, and forcing sealing off hard breachers, and forcing the other team to work together to take the other team to work together to take the other team to work together to take key walls and hatches. If they don't key walls and hatches. If they don't key walls and hatches. If they don't work together, they're then fed into work together, they're then fed into work together, they're then fed into doorways and windows where the TCSG doorways and windows where the TCSG doorways and windows where the TCSG dominates tight pixel peaks and wins out dominates tight pixel peaks and wins out dominates tight pixel peaks and wins out in most fights. This puts the attackers in most fights. This puts the attackers in most fights. This puts the attackers at a huge disadvantage, making Kaid at a huge disadvantage, making Kaid at a huge disadvantage, making Kaid stand out as one of the best defenders stand out as one of the best defenders stand out as one of the best defenders in the game. The best part about this in the game. The best part about this in the game. The best part about this season so far is that we can finally season so far is that we can finally season so far is that we can finally play Ace again. With Dokkaebi, Dima, play Ace again. With Dokkaebi, Dima, play Ace again. With Dokkaebi, Dima, Snake, Shields, and other operators Snake, Shields, and other operators Snake, Shields, and other operators being far more annoying, they're now being far more annoying, they're now being far more annoying, they're now instead taking the heat on the ban instead taking the heat on the ban instead taking the heat on the ban phase, which means Ace is back in phase, which means Ace is back in phase, which means Ace is back in action, people. At number seven, he's action, people. At number seven, he's action, people. At number seven, he's the best hard breacher in the game, and the best hard breacher in the game, and the best hard breacher in the game, and I know some of you are thinking I'm I know some of you are thinking I'm I know some of you are thinking I'm wrong and that it's definitely Thermite, wrong and tha… (77 chars truncated) … (672 lines truncated) trying to hang up. As a naive pre-season trying to hang… (16 chars truncated) pre-season boy, I was silly enough to put Dokk in boy, I was silly enough to put Dokk in boy, I was silly enough to put Dokk in the A tier during my tier list. What was the A tier during my tier list. What was the A tier during my tier list. What was I thinking? This was a very blatant I thinking? This was a very blatant I thinking? This was a very blatant error of mine, I must admit. However, error of mine, I must admit. However, error of mine, I must admit. However, after she gets nerfed a couple times, after she gets nerfed a couple times, after she gets nerfed a couple times, that actually might end up being fairly that actually might end up being fairly that actually might end up being fairly accurate placement. As for right now, accurate placement. As for right now, accurate placement. As for right now, she's busted. Comboed with any other she's busted. Comboed with any other she's busted. Comboed with any other broken operator like shields, Grim, broken operator like shields, Grim, broken operator like shields, Grim, Deimos, Snake, roamers have a 0% chance Deimos, Snake, roamers have a 0% chance Deimos, Snake, roamers have a 0% chance of survival, having not a single hard of survival, having not a single hard of survival, having not a single hard counter on the defending lineup. And no, counter on the defending lineup. And no, counter on the defending lineup. And no, Mute, Tubarão, and even Thunderbird are Mute, Tubarão, and even Thunderbird are Mute, Tubarão, and even Thunderbird are not counters. Yes, you can sit in a Mute not counters. Yes, you can sit in a Mute not counters. Yes, you can sit in a Mute jammer all round, but if your whole team jammer all round, but if your whole team jammer all round, but if your whole team does that, you might as well consider it does that, you might as well consider it does that, you might as well consider it a six operator on the attack that glues a six operator on the attack that glues a six operator on the attack that glues all the defenders to the floor. It's not all the defenders to the floor. It's not all the defenders to the floor. It's not really ideal strategically. In fact, really ideal strategically. In fact, really ideal strategically. In fact, it's actually a horrible strategy it's actually a horrible strategy it's actually a horrible strategy altogether. A single person leaves a altogether. A single person leaves a altogether. A single person leaves a radius and they're instantly the target radius and they're instantly the target radius and they're instantly the target of the spam calls and essentially of the spam calls and essentially of the spam calls and essentially useless for the rest of the round. useless for the rest of the round. useless for the rest of the round. Preemptively freezing yourself with Preemptively freezing yourself with Preemptively freezing yourself with Tubarão makes no sense at all and Tubarão makes no sense at all and Tubarão makes no sense at all and deactivates your reticle. So, if you deactivates your reticle. So, if you deactivates your reticle. So, if you want to not get called for 36 seconds want to not get called for 36 seconds want to not get called for 36 seconds and not be able to shoot back for the and not be able to shoot back for the and not be able to shoot back for the same amount of time, go ahead, I guess. same amount of time, go ahead, I guess. same amount of time, go ahead, I guess. The rest of your team will just be sent The rest of your team will just be sent The rest of your team will just be sent to the Dokkaebi slaughterhouse in the to the Dokkaebi slaughterhouse in the to the Dokkaebi slaughterhouse in the meantime, while you're completely out of meantime, while you're completely out of meantime, while you're completely out of the fight and now out of all of your the fight and now out of all of your the fight and now out of all of your utility as well. And then she's just utility as well. And then she's just utility as well. And then she's just going to call you after anyway. So, good going to call you after anyway. So, good going to call you after anyway. So, good luck. Thunderbird's Konas can heal you luck. Thunderbird's Konas can heal you luck. Thunderbird's Konas can heal you back up after you let your phone explode back up after you let your phone explode back up after you let your phone explode as long as you don't like using the as long as you don't like using the as long as you don't like using the gadgets of those operators we mentioned gadgets of those operators we mentioned gadgets of those operators we mentioned earlier. Then again, you actually need earlier. Then again, you actually need earlier. Then again, you actually need to be able to get to a Kona station. So, to be able to get to a Kona station. So, to be able to get to a Kona station. So, if you're a roamer getting called, if you're a roamer getting called, if you're a roamer getting called, letting it blow up, and still actively letting it blow up, and still actively letting it blow up, and still actively fighting off the enemy team all on your fighting off the enemy team all on your fighting off the enemy team all on your own, I'm not sure the Thunderbird is own, I'm not sure the Thunderbird is own, I'm not sure the Thunderbird is really going to help here. These are all really going to help here. These are all really going to help here. These are all soft counters. You are still at the soft counters. You are still at the soft counters. You are still at the losing side of the equation, and it's losing side of the equation, and it's losing side of the equation, and it's why Dokkaebi is so extremely broken why Dokkaebi is so extremely broken why Dokkaebi is so extremely broken right now. Now, they did mention on the right now. Now, they did mention on the right now. Now, they did mention on the community checkpoint recently that community checkpoint recently that community checkpoint recently that coming with the mid-season update, Mute coming with the mid-season update, Mute coming with the mid-season update, Mute and Tubarao will counter Dokkaebi just and Tubarao will counter Dokkaebi just and Tubarao will counter Dokkaebi just like they did before, being able to like they did before, being able to like they did before, being able to deactivate those calls after they're deactivate those calls after they're deactivate those calls after they're deployed via the freeze or walking into deployed via the freeze or walking into deployed via the freeze or walking into the mute jammer radius. At that point, the mute jammer radius. At that point, the mute jammer radius. At that point, Mute will climb back into the top 10 Mute will climb back into the top 10 Mute will climb back into the top 10 ops, being an already very powerful ops, being an already very powerful ops, being an already very powerful operator, and Tubarao is not too far operator, and Tubarao is not too far operator, and Tubarao is not too far behind, maybe even better. Dokkaebi will behind, maybe even better. Dokkaebi will behind, maybe even better. Dokkaebi will effectively be nerfed, but I think effectively be nerfed, but I think effectively be nerfed, but I think she'll still be extremely strong. she'll still be extremely strong. she'll still be extremely strong. Probably probably in that A tier, guys. Probably probably in that A tier, guys. Probably probably in that A tier, guys. How about that? What's up with that? How about that? What's up with that? How about that? What's up with that? Maybe that A tier, hey? As of right now, Maybe that A tier, hey? As of right now, Maybe that A tier, hey? As of right now, she's the third best operator in the she's the third best operator in the she's the third best operator in the game with her one and only weakness game with her one and only weakness game with her one and only weakness being her lack of play-making secondary being her lack of play-making secondary being her lack of play-making secondary gadgets. If she still had her gadgets. If she still had her gadgets. If she still had her flashbangs, she'd be the best operator flashbangs, she'd be the best operator flashbangs, she'd be the best operator in the game by far, being able to flash in the game by far, being able to flash in the game by far, being able to flash off the sound of the calls and get up in off the sound of the calls and get up in off the sound of the calls and get up in their face to take them out. She's their face to take them out. She's their face to take them out. She's basically just a great pick every single basically just a great pick every single basically just a great pick every single round, guaranteeing a ton of value every round, guaranteeing a ton of value every round, guaranteeing a ton of value every single time. Yet, somehow, we still have single time. Yet, somehow, we still have single time. Yet, somehow, we still have two more operators above her. At number two more operators above her. At number two more operators above her. At number two, the best defender in Year 11 Season two, the best defender in Year 11 Season two, the best defender in Year 11 Season 2, it's Aruni. With an ACOG DMR on 2, it's Aruni. With an ACOG DMR on 2, it's Aruni. With an ACOG DMR on defense, a fist that fists like you've defense, a fist that fists like you've defense, a fist that fists like you've never seen before, barbed wire, and never seen before, barbed wire, and never seen before, barbed wire, and three gates from hell, Aruni is three gates from hell, Aruni is three gates from hell, Aruni is absolutely stacked. Like we talked about absolutely stacked. Like we talked about absolutely stacked. Like we talked about with Thorn, passive information is king with Thorn, passive information is king with Thorn, passive information is king in this game, and between the gates and in this game, and between the gates and in this game, and between the gates and the barbed wire, Aruni has five pieces the barbed wire, Aruni has five pieces the barbed wire, Aruni has five pieces of it. This allows you to dominate map of it. This allows you to dominate map of it. This allows you to dominate map control. Nobody can sneak in without control. Nobody can sneak in without control. Nobody can sneak in without burning those gates beforehand, and burning those gates beforehand, and burning those gates beforehand, and attackers walking into those long-range attackers walking into those long-range attackers walking into those long-range DMR angles are getting sent to the DMR angles are getting sent to the DMR angles are getting sent to the shadow realm practically instantly. The shadow realm practically instantly. The shadow realm practically instantly. The gates also protect other utility, like gates also protect other utility, like gates also protect other utility, like your teammates' gadgets and other things your teammates' gadgets and other things your teammates' gadgets and other things that make the attackers' life more that make the attackers' life more that make the attackers' life more miserable. You're essentially forcing miserable. You're essentially forcing miserable. You're essentially forcing the enemy team to play smart, and if the enemy team to play smart, and if the enemy team to play smart, and if they don't, they're going to get they don't, they're going to get they don't, they're going to get punished. You can spawn peek punished. You can spawn peek punished. You can spawn peek confidently, retake space with ease, and confidently, retake space with ease, and confidently, retake space with ease, and protect many areas of the map all at the protect many areas of the map all at the protect many areas of the map all at the same time. The fist allows you to do same time. The fist allows you to do same time. The fist allows you to do site setup, make rotates quietly, and site setup, make rotates quietly, and site setup, make rotates quietly, and drop down through hatches to escape in drop down through hatches to escape in drop down through hatches to escape in bad situations. If the gates weren't bad situations. If the gates weren't bad situations. If the gates weren't already annoying, putting them on already annoying, putting them on already annoying, putting them on windows stops attackers from droning windows stops attackers from droning windows stops attackers from droning through them without burning the gates through them without burning the gates through them without burning the gates first. By the time they're done droning, first. By the time they're done droning, first. By the time they're done droning, that 30-second reset window is almost that 30-second reset window is almost that 30-second reset window is almost up, allowing you to shoot the top of the up, allowing you to shoot the top of the up, allowing you to shoot the top of the gate to reset it again. Say goodbye to gate to reset it again. Say goodbye to gate to reset it again. Say goodbye to your utility and say hello to this DMR, your utility and say hello to this DMR, your utility and say hello to this DMR, my friend, because you have no options my friend, because you have no options my friend, because you have no options left but to try and take the fight, and left but to try and take the fight, and left but to try and take the fight, and it's one that you're probably going to it's one that you're probably going to it's one that you're probably going to lose. But, we have one more operator on lose. But, we have one more operator on lose. But, we have one more operator on this list still. The best operator in this list still. The best operator in this list still. The best operator in Year 11 Season 2 of Rainbow Six Siege is Year 11 Season 2 of Rainbow Six Siege is Year 11 Season 2 of Rainbow Six Siege is solid Snake. Snake is the strongest solid Snake. Snake is the strongest solid Snake. Snake is the strongest operator in the game right now, making operator in the game right now, making operator in the game right now, making bad players good and making good players bad players good and making good players bad players good and making good players great. This is one operator that can great. This is one operator that can great. This is one operator that can reliably clear an entire roam game reliably clear an entire roam game reliably clear an entire roam game single-handedly, even if you're the single-handedly, even if you're the single-handedly, even if you're the worst player in the game. Zero skill, worst player in the game. Zero skill, worst player in the game. Zero skill, super strong is kind of a crazy combo. super strong is kind of a crazy combo. super strong is kind of a crazy combo. You just run through the map with the You just run through the map with the You just run through the map with the scanner on, avoid walking into long scanner on, avoid walking into long scanner on, avoid walking into long angles, and all of a sudden you have a angles, and all of a sudden you have a angles, and all of a sudden you have a clear picture of exactly what's going clear picture of exactly what's going clear picture of exactly what's going on. Although he is countered by mute and on. Although he is countered by mute and on. Although he is countered by mute and vigil, those prep phase drones are vigil, those prep phase drones are vigil, those prep phase drones are enough to paint a general picture of enough to paint a general picture of enough to paint a general picture of what's going on, and then you can rely what's going on, and then you can rely what's going on, and then you can rely on that Soliton radar to fill in the on that Soliton radar to fill in the on that Soliton radar to fill in the details. Pair that up with the F2, the details. Pair that up with the F2, the details. Pair that up with the F2, the resupply of secondary gadgets, and maybe resupply of secondary gadgets, and maybe resupply of secondary gadgets, and maybe even the help of a teammate or two, and even the help of a teammate or two, and even the help of a teammate or two, and there really isn't anything the there really isn't anything the there really isn't anything the defenders can do to stop them. In solo defenders can do to stop them. In solo defenders can do to stop them. In solo queue, you have enough information to queue, you have enough information to queue, you have enough information to take practically any area risk free take practically any area risk free take practically any area risk free while being able to check your flank, while being able to check your flank, while being able to check your flank, spot out massive gaps, and spot out massive gaps, and spot out massive gaps, and single-handedly win rounds. Even when single-handedly win rounds. Even when single-handedly win rounds. Even when your scanner isn't picking up defenders, your scanner isn't picking up defenders, your scanner isn't picking up defenders, that's just more information to complete that's just more information to complete that's just more information to complete the puzzle of what the defense is doing. the puzzle of what the defense is doing. the puzzle of what the defense is doing. If the site is clear, then the site is If the site is clear, then the site is If the site is clear, then the site is clear. You can walk in and shoot clear. You can walk in and shoot clear. You can walk in and shoot everyone in the back or lock the everyone in the back or lock the everyone in the back or lock the defenders out of the bomb site, claiming defenders out of the bomb site, claiming defenders out of the bomb site, claiming that space for your team. You can do all that space for your team. You can do all that space for your team. You can do all of this without having a shadow of a of this without having a shadow of a of this without having a shadow of a doubt as to if it's safe or not. This doubt as to if it's safe or not. This doubt as to if it's safe or not. This makes Snake the greatest operator in makes Snake the greatest operator in makes Snake the greatest operator in Rainbow Six Siege, being a consistently Rainbow Six Siege, being a consistently Rainbow Six Siege, being a consistently powerful operator that's biggest powerful operator that's biggest powerful operator that's biggest weakness is really just the ban phase. weakness is really just the ban phase. weakness is really just the ban phase. If you enjoyed this video and want to If you enjoyed this video and want to If you enjoyed this video and want to learn how to get better at Siege every learn how to get better at Siege every learn how to get better at Siege every single day, go check out my games single day, go check out my games single day, go check out my games channel. I post daily video walkthroughs channel. I post daily video walkthroughs channel. I post daily video walkthroughs of my ranked games where I explain what of my ranked games where I explain what of my ranked games where I explain what I'm doing and why I'm doing it. I call I'm doing and why I'm doing it. I call I'm doing and why I'm doing it. I call it Think Like a Champion because it Think Like a Champion because it Think Like a Champion because learning to think like a champion is the learning to think like a champion is the learning to think like a champion is the first step to becoming one. We'll see first step to becoming one. We'll see first step to becoming one. We'll see you over there, and if not, have a you over there, and if not, have a you over there, and if not, have a fantastic day, my gamer dudes. Yeah. Exit code: 0 <truncation_notice> Full output written to: /var/folders/d9/mzhyr7lx6xbf236j5ll9v_300000gn/T/devin-overflows-501/51d0ce70/content.txt </truncation_notice>
Now I have the full caption text. Let me clean it up and create a proper summary. The video appears to be about the top 10 operators in Rainbow Six Siege Year 11 Season 2. Let me extract the key points and create a concise summary.
Based on the auto-generated captions, here's a summary of "The TOP 10 Operators in Y11S2" for Rainbow Six Siege:
The video ranks the top 10 operators in Year 11 Season 2 of Rainbow Six Siege, focusing on their current strength and effectiveness in the meta.
10. Azami - Defender with bulletproof barriers (Kibas) that can create one-way angles anywhere, lock down impossible rooms, and provide cover. She's described as "disgusting" and "broken" but still relies on teammates for information and crossfires.
9. Blackbeard - Attacker with shield, grenades, and AR. Considered the best solo queue attacker because he can deal with anything the defense throws at him. His shield provides information while grenades clear traps and barbed wire.
8. Kaid - Best wall denial in the game with electro claws, TCSG (zero recoil on controller), and C4. His claws can deny hatches from being opened, making him valuable on lower floor sites. Advanced players can "Kaid trick" by repositioning claws to beat EMP timing.
7. Ace - The best hard breacher in the game. With Dokkaebi, Dima, Snake, and shields taking more heat in the ban phase, Ace is back in action as the premier hard breacher.
6. (Not clearly specified in the visible text)
5. (Not clearly specified in the visible text)
4. (Not clearly specified in the visible text)
3. Dokkaebi - Described as "busted" and extremely broken. Her phone calls combo with other operators like shields, Grim, Deimos, and Snake give roamers 0% survival chance. Currently has no hard counters, though Mute and Tubarão will counter her in a future mid-season update.
2. Aruni - The best defender in Y11S2. Features an ACOG DMR, powerful fist, barbed wire, and three gates. Dominates map control with passive information and can punish attackers who don't play smart.
1. Snake (Solid Snake) - The strongest operator in the game. Makes bad players good and good players great. His scanner can reliably clear an entire roam game single-handedly. Paired with the F2 and secondary gadget resupply, defenders have little to stop him. His biggest weakness is the ban phase.
The video concludes with a promotion for the creator's gaming channel where they post daily ranked game walkthroughs.