1. Symptoms: Web Player vs “Blocked Site”
People describe YouTube buffering in overlapping ways: endless loading on the tab, the red progress bar creeping while the spinner never leaves, or sharp drops in quality right after a node switch. Those are not the same failure as “I cannot open youtube.com at all.” A blank site or certificate error usually points to TLS, captive portals, or a first-hop policy problem. By contrast, a page that renders, thumbnails load, but the web player stutters often means some HTTPS connections in the background—especially to *.googlevideo.com—still bypass your tunnel or exit through a different region than the HTML shell.
Browser extensions, aggressive blockers, and double proxies can also mimic routing bugs. Before you rewrite a profile, confirm whether the issue appears in a clean profile without extra extensions, and whether the same video plays smoothly on another device on the same LAN. If only one machine fails, local DNS or split tunneling on that host is a prime suspect. If every device fails after a subscription refresh, node quality—not domain lists—may dominate.
If you are new to how rules interact with proxy-groups, read the configuration overview first. The same evaluation order applies across Mihomo-class cores; only GUI labels differ.
2. The Playback Chain: Beyond youtube.com
A typical YouTube watch page pulls HTML and scripts from youtube.com and ytimg.com, loads interface assets from Google static domains, and then fetches adaptive video segments from one or more hosts whose names often end in googlevideo.com. The exact subdomains vary by region, PoP, and experiment flags. That is why a profile that only lists youtube.com can still produce buffering: the player shell is proxied while bulk bytes ride a path your rules never tagged.
Google may also use gstatic.com and other shared infrastructure for fonts and scripts. Account and consent flows can touch google.com and accounts.google.com. For coherent behavior, treat “watch a long video” as a multi-host session: every related TCP connection should share the same egress policy for the minutes you expect playback to run. Clash matches hostnames from SNI for modern HTTPS; suffix rules remain the durable way to cover rotating leaf names under googlevideo.com.
| Host / pattern | Typical role | Notes for Clash logs |
|---|---|---|
youtube.com |
Watch page, API calls, navigation | Pair with media hosts; half-routed sessions stall the player |
googlevideo.com |
Video segments, DASH/HLS-style delivery | Central to buffering when missing from rules |
ytimg.com |
Thumbnails, sprites, UI images | Broken images rarely explain long stalls; still keep routing consistent |
gstatic.com |
Static assets shared across Google products | Often overlaps with other Google apps—decide shared vs isolated groups |
Why this differs from Gemini-only YAML
Our Gemini and Google API guide emphasizes googleapis.com, chat surfaces, and SDK endpoints. Those rows help generative AI workflows; they do not replace explicit coverage for googlevideo.com when your problem is web playback stutter. Copying AI-oriented lists and expecting smooth 4K streams is like tuning a concert hall while the freight rail runs outside: related infrastructure, different traffic.
DOMAIN-SUFFIX,googlevideo.com rather than chasing ephemeral leaf hostnames one by one.
3. Live vs On-Demand: What Changes
Live streams and standard on-demand playback both use Google’s media stack, but operator experience can differ. Live edges prioritize low end-to-end latency; viewers may see more aggressive adaptive bitrate steps when congestion appears. On-demand long-form content may prefetch larger buffers when the network allows. From a Clash perspective the hostname families are largely the same; what changes is sensitivity to node selection flapping. A live session that reconnects through a different exit every few seconds is more likely to glitch than a short clip where the player can rebuild state quietly.
If you routinely watch live events, prefer a stable outbound group with conservative health-check intervals rather than an aggressive url-test that swaps peers on tiny latency swings. For VoD, sustained throughput matters: a modest node that holds one region beats a “fast” peer that collapses under sustained TLS and HTTP/2 multiplexing during long 1080p or 1440p sessions.
QUIC may appear on some browser paths. If you observe protocol downgrade loops or odd partial failures, test whether temporarily disabling QUIC in the browser (for diagnosis only) changes behavior alongside your tunnel settings. Document the working tuple: core version, DNS mode, outbound tag, and node region.
4. Split Routing Order in Clash
Split routing sends selected traffic through remote outbounds while leaving other flows on faster paths. For YouTube, the objective is coherence: the watch page, static assets, and googlevideo chunk fetches should share one policy for the duration of a session. Clash evaluates rules top to bottom; the first match wins. Place media-related suffix lines above broad GEOIP or MATCH catch-alls so a premature default does not steal video flows.
Interactions with DNS mode are critical. Fake-IP and enhanced DNS can map names differently from the operating system resolver. If the browser resolves through one path while the core maps another, symptoms mimic application bugs—intermittent stalls, half-loaded timelines, or quality ladders that never stabilize. Align resolver behavior with your tunnel mode using the same discipline described in documentation on modes and DNS. After toggling DNS settings, restart the browser so cached connections are not reused from a stale combination.
IPv6 paths deserve attention. If some requests prefer IPv6 while your tunnel handles IPv4 only, you can see bizarre partial failures. Either route IPv6 consistently with your policy or disable it deliberately according to your environment, then retest playback.
5. Example Rules (YAML Patterns)
The fragments below illustrate intent. Rename groups (PROXY-YOUTUBE) to match your subscription, validate syntax against your core, and never paste untrusted snippets without reading them—malicious rules can misroute traffic.
Define a dedicated outbound group so latency tests for general browsing do not fight your streaming pool:
proxy-groups:
- name: PROXY-YOUTUBE
type: url-test
proxies:
- node-west-01
- node-west-02
- node-tokyo-01
url: https://www.gstatic.com/generate_204
interval: 300
tolerance: 80
Pin YouTube-related suffixes ahead of your default foreign pool. Order matters:
rules:
- DOMAIN-SUFFIX,youtube.com,PROXY-YOUTUBE
- DOMAIN-SUFFIX,googlevideo.com,PROXY-YOUTUBE
- DOMAIN-SUFFIX,ytimg.com,PROXY-YOUTUBE
- DOMAIN-SUFFIX,gstatic.com,PROXY-YOUTUBE
# Optional: google.com if sign-in or embed flows break when split
# - DOMAIN-SUFFIX,google.com,PROXY-YOUTUBE
# ... your other rules ...
- MATCH,FINAL
I duplicated googlevideo.com in the example only to emphasize priority—remove the duplicate line in real configs. Some operators fold gstatic.com into a broader “Google services” group shared with Workspace or Android sync; others isolate streaming to avoid coupling watch latency with large Drive transfers. Both are valid—choose based on how you meter congestion.
Avoid sloppy DOMAIN-KEYWORD,google matchers that drag unrelated sites into the same bucket. Prefer suffix rules, and reserve keywords for short-lived experiments while you watch connection logs. Teams sometimes publish a rule-providers file from version control so hostname additions roll out without hand-editing every laptop.
https:// URLs are invisible to ordinary proxy rules without TLS interception. Media quality and CDN region are negotiated above TLS; domain-level routing is the right layer for Clash—not pretend “path rules” in YAML comments.
6. Node Selection for Video Buffering
Latency alone is a weak signal for long web playback. Nodes that win short probes may still sit behind peering that collapses under sustained download for high bitrates. For node selection, combine periodic health checks with a reasonable tolerance so the group does not oscillate between continents whenever jitter spikes—oscillating egress is a common cause of renewed adaptive-bitrate chaos that surfaces as endless buffering spinners.
url-test groups pick among peers that share a role; fallback enforces strict ordering when you want one region first. If your subscription lists many congested exits, isolating YouTube into PROXY-YOUTUBE prevents unrelated traffic from starving interactive sessions. Operationally you add a handful of YAML lines; diagnostically you gain clarity when only that group degrades after a provider rotates backends.
Multiplexing and transport options affect long streams. If bodies truncate mid-download, test with multiplexing disabled before blaming Google. Some networks throttle unknown UDP; if QUIC behaves poorly, your tunnel settings and browser flags interact in ways that resemble “CDN issues” from the user’s perspective.
When to reconsider the node entirely
If logs show clean rule hits to PROXY-YOUTUBE but throughput collapses during peak hours, the exit may be oversubscribed. No amount of DOMAIN-SUFFIX polish fixes an upstream that drops sustained TLS throughput. In that situation, rotate within a stable region pool or change provider—after you have confirmed DNS and rule order are already sane.
7. DNS, Fake-IP, and Mode Alignment
Streaming is especially sensitive to resolver drift. When fake-ip pools do not line up with what the browser uses through the tunnel, the player may open connections to addresses your policy never matched. Revisit fake-ip-filter when only some Google hosts break, and align DoH or system DNS with your Clash mode. Our fake-ip troubleshooting guide walks through practical checks without turning DNS into guesswork.
Account and safety flows remain sensitive to rapid region hopping. Minimize unnecessary variance: finish sign-in on one egress before starting a long binge session, and avoid stacking unrelated VPN layers on top of Clash unless you understand how each layer rewrites routes.
Browser profiles that inject their own proxies can double-wrap traffic. For reproducible debugging, prefer one client and one profile, then add complexity only after baseline playback is stable.
8. Self-Check Checklist
Before you swap subscriptions or assume a Google outage, run a short checklist:
- Confirm rule hits. In logs, verify requests to
googlevideo.comandyoutube.comshowPROXY-YOUTUBE(or your tag), not accidentalDIRECT. - Compare resolvers. Check system resolver output against the core’s DNS pipeline; fake-ip mappings must line up with what the browser uses through the tunnel.
- Test throughput. Try a lower quality ladder manually; if low quality is smooth but high quality stalls, suspect sustained bandwidth—not a missing suffix—for that exit.
- Reduce variables. Try a clean browser profile without aggressive blockers for one session to rule out script interference.
- Record what worked. Node region, DNS mode, and core version—diff against next week’s client update instead of guessing.
When TLS errors appear, separate transport failures from HTTP semantics. Crisp application errors in the 4xx range often point to account or client constraints rather than routing.
9. Availability and Terms
Routing changes network path and may change how jurisdictions appear to remote services; it does not override YouTube’s terms, your employer’s acceptable-use policy, or applicable law. Respect regional availability of features, use accounts only as authorized, and do not treat this article as legal advice.
We do not describe methods to circumvent fraud prevention, abuse safeguards, or payment verification. Our focus remains Clash configuration for operators who already have legitimate access and want predictable web playback behavior.
For transparency about the client itself, upstream source code and issues live on community repositories; obtain installable builds from the official site channel linked below rather than unverified mirrors.
10. Summary
Reliable YouTube web playback in 2026 depends on routing the whole media chain—not just the tab URL. Cover youtube.com, googlevideo.com, and related asset suffixes explicitly; place those rules before catch-alls; pair them with node selection that tolerates long HTTPS sessions without constant region hopping; and re-run your DNS self-check whenever clients or subscriptions change. When buffering persists, compare DevTools hostnames against your YAML instead of reusing API-only Google lists or generic “unlock” slogans.
Compared with opaque one-tap VPN apps, Clash rewards operators who read logs and treat configuration as code—exactly the habit that keeps streaming usable when CDNs shift hostnames overnight. A maintained client with transparent updates makes that workflow sustainable.
When you install or refresh the app, use the official site’s download page so binaries match what maintainers publish—then apply the rules above on a baseline you can reproduce.