跳到正文

yatrjzgbwurs

yt-view-bot

YouTube view bot: multi-threaded view inflation, proxy rotation, watch-time retention, and randomized user-agent/device fingerprinting per view.

README 已保存到本站,可直接阅读

Documentation snapshot

README 快照

这篇是英文原文

下面正文是项目自己的英文 README。想读全文就用浏览器自带的整页翻译: Chrome / Edge 点地址栏右侧的翻译图标,或用右键菜单里的「翻译成中文」; 手机浏览器一般在菜单里。

本页保存的是公开项目资料快照,阅读过程不需要连接 GitHub。


🧭 Table of Contents

  • Overview
  • What is a YouTube Viewer Bot?
  • Key Features
  • The Problem
  • The Solution
  • Quick Start
  • Module Catalog
  • Session & Proxy Management
  • Retention & Watch-Time Engine
  • System Requirements
  • Installation
  • AI Integration (2026)
  • How It Works
  • Comparison
  • Known Issues
  • Changelog
  • FAQ
  • Community & Support

📊 Overview

CategoryDetails
Product typeWindows desktop application (compiled .exe)
PurposeAutomated YouTube view generation with retention simulation
Primary interfaceGUI dashboard + headless batch mode
Concurrency modelSession-pool based, proxy-rotated
Watch-time enginePer-session timeline scripting with drift correction
Proxy supportHTTP, SOCKS4, SOCKS5, residential, mobile
Data persistenceLocal SQLite job store, encrypted credential vault
DistributionDirect download from project landing page

The yt-view-bot application is a session-orchestration framework built specifically for YouTube view and watch-time automation. It manages pools of browser sessions, rotates proxy identities, and scripts realistic playback timelines (including seek, pause, and skip events) to reproduce the watch patterns a genuine viewer produces. Everything runs locally from a single .exe — no runtime installs, no Python environment, no dependency chain.


🤖 What is a YouTube Viewer bot?

TermExplanation
SessionAn isolated browser profile (cookies, UA, viewport, fingerprint) representing one synthetic viewer
Proxy poolRotating set of IP endpoints assigned per-session so views don’t share an origin
Retention scriptA timeline of play/pause/seek actions that mimics human watch behavior
DriftThe gap between wall-clock playback time and scripted timeline position; corrected periodically
View-count boundaryThe threshold at which YouTube may freeze or filter counts; the bot throttles to stay under it
FingerprintComposite of canvas hash, WebGL renderer, fonts, timezone, and UA sent to YouTube
JobOne configured run — N sessions, M views, one target video, one proxy pool

The bot is not a “click play N times” loop. It manages the full identity of each session — fingerprint, cookie jar, and proxy binding are locked together at spawn time and cannot drift mid-run. This matters because YouTube’s view validation checks consistency between IP, cookie state, and playback telemetry.


🎯 Key Features

FeatureDescriptionBenefit
Fingerprint lockingCanvas/WebGL/UA/fonts sampled once and reused per sessionViews don’t get grouped as one synthetic actor
Proxy rotation modesRound-robin, sticky, per-session, per-jobFine control over IP exposure for a target video
Retention scriptingTimeline JSON with play, pause, seek, skip, muteWatch-time looks organic instead of a 100% full play
Drift correctionRe-syncs timeline against actual currentTime every 4sPrevents runaway desync on slow proxies
Headless batch modeCLI flag runs jobs without GUISchedulable via Windows Task Scheduler
Per-job concurrency capLimits simultaneous sessions (default 3)Reduces proxy burn and detection surface
Encrypted vaultAES-encrypted proxy creds and cookie jars at restNo plaintext credentials on disk
Live telemetry panelReal-time view-count delta, session health, proxy latencyYou see failures before the job finishes
Resume-after-crashJob state persisted to SQLite; resume from last completed sessionLong jobs survive reboots
Warm-up modeSessions browse homepage/related videos for 30–90s before targetReduces “instant-jump” signal
AI retention profiles (2026)Model picks realistic watch percentages per video lengthRandomized retention that follows real audience curves
AI proxy health scorer (2026)Scores proxies by failure rate and latency trendSkips dying proxies before they burn a session

🧨 The Problem

  • Manual view farms get flagged because every session shares one IP or one UA string.
  • Naive bots play 100% of the video every time — retention curves look artificial and views get filtered.
  • Proxy pools silently degrade: you only discover a dead proxy after a session fails to register a view.
  • Playback timers drift on slow connections, so a “watch 4:30” script actually delivers 3:12 or 6:40 of watch time.
  • Long jobs crash mid-run and there’s no resume — you start the whole thing over.
  • Fingerprint mismatch (IP in one country, timezone in another) is a top cause of dropped views.
  • No visibility into why views didn’t count — you get a number and nothing else.

🛠️ The Solution

ProblemSolution
Shared IP/UA across sessionsPer-session proxy binding + locked fingerprint at spawn
Artificial 100% retentionRetention timeline scripting with random pause/seek events
Dead proxies discovered lateAI proxy health scorer pre-filters failing endpoints
Playback timer drift4-second drift correction against actual currentTime
No crash recoverySQLite job state + resume-from-last-session
Fingerprint mismatchGeo-consistent fingerprint assembly (timezone ← proxy region)
Zero failure diagnosticsPer-session log with failure reason (proxy fail, view filtered, playback error)

🚀 Quick Start

  1. 🧾 Visit the project page and hit the download section — you get a zip containing the .exe and a config/ folder.
  2. 📦 Extract the zip to a folder you own (not Program Files — the app writes job state next to itself).
  3. ▶️ Run the .exe — first launch creates config/settings.json and an empty proxy pool.
  4. 🧩 Load your proxy list in the Proxy Manager tab (one host:port:user:pass per line, protocol dropdown per pool).
  5. 🎬 Create a job — paste the target video URL, set view count, sessions, and pick a retention profile. Hit Start.

First run will ask you to accept a one-time notice about YouTube ToS and local data storage. Nothing is sent anywhere except the YouTube requests themselves.


🧩 Module Catalog

44 modules across nine subsystems. Status reflects the current 2026 build.

ModuleStatusDescription
SessionSpawner✅ WorkingCreates isolated browser profiles with locked fingerprint
FingerprintSampler✅ WorkingCaptures canvas, WebGL, fonts, UA, timezone per session
GeoResolver✅ WorkingMatches timezone/locale to proxy region
CookieJarManager✅ WorkingEncrypted per-session cookie persistence
ProxyPool✅ WorkingPool container with health state per endpoint
ProxyRotator✅ WorkingRound-robin / sticky / per-job rotation strategies
ProxyHealthScorer✅ WorkingAI-scored endpoint reliability (2026)
ProxyImportParser✅ WorkingParses host:port:user:pass and URI formats
RetentionScripter✅ WorkingBuilds play/pause/seek timeline from profile
RetentionProfiles✅ WorkingNamed retention templates (short, medium, long-form)
DriftCorrector✅ Working4s re-sync against actual player currentTime
PlaybackController✅ WorkingPlay, pause, seek, mute, skip events
WarmUpWalker✅ WorkingPre-target homepage/related browsing
ViewCounter✅ WorkingTracks accepted view deltas from telemetry
ThrottleGuard✅ WorkingCaps concurrent sessions per job
JobScheduler✅ WorkingQueue and run multiple jobs sequentially
JobStore✅ WorkingSQLite persistence of job + session state
ResumeEngine✅ WorkingResume crashed job from last completed session
HeadlessRunner✅ WorkingCLI batch execution without GUI
CredentialVault✅ WorkingAES-encrypted storage for proxy creds
ConfigManager✅ Workingsettings.json load/validate/migrate
LogRotator✅ WorkingRotates session logs by size/date
SessionLogger✅ WorkingPer-session event log with failure reason
TelemetryPanel✅ WorkingLive view delta, session health, proxy latency
LatencyMonitor✅ WorkingPer-proxy RTT sampling
FailureClassifier✅ WorkingTags failures: proxy, playback, filtered, timeout
AiRetentionPicker✅ WorkingModel selects retention % from video length
AiProxyAdvisor✅ WorkingRecommends pool swaps mid-job
FingerprintConsistencyCheck✅ WorkingFlags IP/geo/UA mismatch before spawn
SessionPoolRecycler✅ WorkingRecycles dead or flagged sessions
RateLimiter✅ WorkingPer-proxy request pacing
UAProfileLibrary✅ WorkingCurated UA + viewport pairs per browser family
CookieSeeder✅ WorkingSeeds sessions with plausible prior activity
VideoResolver✅ WorkingResolves video ID from URL variants / shorts
PlaylistWalker✅ WorkingHandles playlist and related-video targets
DwellTimer✅ WorkingAdds non-playback dwell time on the watch page
MuteRandomizer✅ WorkingRandomized mute/unmute during playback
QualitySwitcher✅ WorkingRandom quality selection per session
AdSkipper✅ WorkingHandles pre-roll skip timing
StatsAggregator✅ WorkingPost-job stats: views, filtered, failed, avg watch
ExportModule✅ WorkingExports job stats to CSV
UpdateChecker✅ WorkingChecks landing page for newer build
DiagnosticsBundle⚠️ BetaOne-click zip of logs + config for support
ProxyAutoRefill⚠️ BetaPulls replacement proxies from configured provider

🕸️ Session & Proxy Management

Session isolation — each session is a fully separate browser profile on disk under sessions/. Cookie jar, fingerprint, and proxy binding are written at spawn and never mutated.

Proxy binding rules

  • sticky: one proxy → one session for the job’s lifetime
  • round-robin: proxies cycle every N sessions (configurable)
  • per-job: one proxy pool per job, isolated from other jobs
  • pool-shuffle: reshuffles the pool every 10 sessions

Health scoring — the ProxyHealthScorer tracks failures, timeouts, and latency trend per endpoint. Proxies below the threshold are quarantined rather than deleted, so you can inspect why they failed.

Fingerprint assembly order — proxy region → timezone → locale → UA family → viewport → canvas/WebGL. Each value depends on the previous, which is why you can’t just randomize the UA independently.


⏱️ Retention & Watch-Time Engine

The retention engine is what separates a working bot from a view-filtered one. A fixed “watch 100%” pattern is the single most common cause of dropped views.

Timeline format (retention profile)

{
  "name": "medium-random",
  "watch_pct": [0.45, 0.92],
  "events": [
    { "at": 0.12, "action": "pause", "duration": [3, 9] },
    { "at": 0.40, "action": "seek", "delta": [-8, 8] },
    { "at": 0.70, "action": "mute", "duration": [5, 20] }
  ]
}

watch_pct is a range — each session samples a random value inside it. AiRetentionPicker overrides this range per video using length-aware curves (short videos skew higher, long-form skews lower and more variable).

Drift correction — every 4 seconds the engine compares the scripted timeline position to the actual currentTime from the player. If drift exceeds 2.5 seconds, the script re-anchors. Without this, slow proxies push the timeline out of sync and the session “watches” the wrong segment.


🖥️ System Requirements

ComponentMinimumRecommended
OSWindows 10 64-bit (build 1909+)Windows 11 23H2+
CPU4 cores / 4 threads8 cores / 16 threads
RAM8 GB16 GB (16+ sessions concurrent)
Disk2 GB free8 GB free (session profile cache)
Network10 Mbps down50 Mbps down, low jitter
Proxy pool1 endpoint per concurrent session5–10 endpoints per concurrent session
Display1280×7201920×1080
Admin rightsNot requiredNot required
RuntimeNone (self-contained)None

Tips for best results

  • Keep concurrent sessions at 3 or below for a single target video — the throttle guard defaults to this for a reason.
  • Use residential or mobile proxies for the target video; datacenter proxies are the fastest route to filtered views.
  • Warm up sessions (WarmUpWalker) — sessions that jump straight to a target video behave differently than ones that browse first.
  • Don’t point two jobs at the same video simultaneously; the view counter aggregates per video and you’ll lose track of which job contributed what.
  • Keep at least 5 proxies beyond your concurrency cap so the health scorer has room to quarantine without starving the pool.
  • Run headless batch mode from Task Scheduler if you want overnight jobs; the GUI adds ~15% CPU per session.

📥 Installation

  1. Download the build. Go to the project landing page, download the current zip. The archive contains the .exe, a config/ skeleton, and a short readme-first.txt.
  2. Extract to a writable folder. The app writes jobs.db, sessions/, and logs/ next to the executable. Avoid Program Files and any path with non-ASCII characters.
  3. Run the .exe. First launch runs a config check, creates defaults, and opens the dashboard. If Windows SmartScreen prompts, choose “More info → Run anyway” — the build is unsigned.
  4. Configure proxies. Open the Proxy Manager tab, paste your list, pick the protocol per pool, and hit Validate. Anything red is dead on arrival.
  5. Create your first job. Target video URL, view count, sessions, retention profile. Start small (5 views) to confirm the pipeline works end-to-end before scaling up.

🧠 AI Integration (2026)

Three AI-assisted subsystems are active in this build. None of them send your data to a remote model — the models are small, local, and shipped inside the .exe.

AiRetentionPicker — Instead of a fixed watch-percentage range, this picks a retention value from a distribution fit against real audience retention curves for the video’s length category. A 3-minute video might sample 70–95%; a 40-minute video samples 18–55% with more variance. This is the single biggest improvement over fixed-range retention.

AiProxyAdvisor — Samples proxy latency and failure rates mid-job, and when a pool’s health drops below threshold it suggests (or auto-applies, if enabled) a pool swap. It also flags proxies that respond fine but consistently fail to register views — a failure mode latency monitoring misses.

FailureClassifier — Post-job, classifies each failed session into proxy failure, playback error, filtered view, or timeout. This replaces the old “count of failures” with a breakdown you can actually act on.

Real-time updates are also new: the telemetry panel now streams view-delta and session health over a local WebSocket instead of polling every 5 seconds, so a dying proxy shows up within ~1 second.


🏗️ How It Works

The application is a session-orchestration pipeline. When you start a job, the JobScheduler asks the SessionSpawner for N sessions. The spawner pulls endpoints from the ProxyPool, runs each through FingerprintConsistencyCheck, then builds a browser profile via FingerprintSampler and GeoResolver — timezone and locale are derived from the proxy’s geolocation, not randomized independently. If the consistency check fails (proxy says Germany, fingerprint says Vietnam), the session is rejected before it ever touches YouTube.

Once a session is live, WarmUpWalker optionally browses the homepage and a couple of related videos for 30–90 seconds. Then VideoResolver turns your target URL into a video ID, PlaybackController navigates to the watch page, and RetentionScripter builds the timeline from the selected profile (or from AiRetentionPicker if AI mode is on). PlaybackController executes the timeline, while DriftCorrector samples currentTime every 4 seconds and re-anchors if the script has drifted. DwellTimer, MuteRandomizer, and QualitySwitcher layer on the smaller behavioral details.

ViewCounter reads the view-count delta from the watch page after the session ends, and FailureClassifier tags any session that didn’t produce a delta. Job state is written to SQLite after each completed session by JobStore, which is what makes ResumeEngine work — a crash at session 47 of 200 resumes at session 47, not session 1. StatsAggregator produces the end-of-job summary and ExportModule writes it to CSV if you want the data elsewhere.


⚖️ Comparison

AspectGeneric view botsBrowser-extension “viewers”yt-view-bot
Session isolationShared browser profileRuns in your real browserOne profile per session, locked
Proxy handlingManual, one IPNonePool with health scoring + rotation
Retention realismFixed 100% playWhatever you do manuallyScripted timeline + AI curve sampling
Drift handlingNoneN/A4s re-sync against currentTime
Crash recoveryRestart from zeroN/AResume from last completed session
Failure diagnosticsCount onlyN/AClassified per session
Batch schedulingManualN/AHeadless CLI + Task Scheduler
Fingerprint consistencyRandom UAYour real fingerprintGeo-consistent assembly

Fair framing: the extension route is genuinely simpler if you just want a handful of views from your own browser — this tool is for people running hundreds of sessions and needing them to look separate. Generic bots are fine for targets that don’t validate hard; this one is built for the ones that do.


🧯 Known Issues

IssueSolution
Views register but get filtered after ~48hRetention profile too uniform — switch to AiRetentionPicker and raise watch_pct variance
Session hangs on watch page with no playbackUsually a dead proxy that passes latency check but fails media requests; quarantine it manually
DiagnosticsBundle sometimes omits the last session logKnown beta issue — the log flush races the bundle build; wait 5s after job end before bundling
High RAM usage above 12 concurrent sessionsExpected — each session holds a browser profile in memory; drop concurrency or raise RAM
Proxy validation passes but spawn failsFingerprint consistency check rejecting geo mismatch; loosen the check or fix proxy region metadata
Headless mode won’t pick up config changesConfig is loaded once at process start; restart the headless process after editing settings.json

📜 Changelog

VersionDateChanges
2026.32026-03-18AiProxyAdvisor auto-apply mode; WebSocket telemetry (replaces polling); FailureClassifier adds timeout category
2026.22026-02-09AiRetentionPicker length-aware curves; ProxyAutoRefill beta; drift threshold lowered to 2.5s
2026.12026-01-142026 baseline: geo-consistent fingerprint assembly, ResumeEngine hardened, encrypted vault migration
2025.42025-11-02HeadlessRunner CLI flags expanded; ExportModule CSV format
2025.32025-09-20WarmUpWalker added; SessionPoolRecycler stability fixes
2025.22025-07-11Proxy rotation strategies (sticky / round-robin / per-job)
2025.12025-05-04Initial public build — spawner, playback controller, SQLite job store

❔ FAQ

1. Will this get my YouTube account banned? The bot doesn’t log into accounts — sessions are anonymous and never authenticate. There’s no account to ban. The risk is to the target video’s view count (views may be filtered), not to any personal account.

2. Why do my views show up then disappear after two days? That’s YouTube’s delayed view validation. The most common causes are uniform retention (every session watching the same percentage) and proxy reuse across sessions. Switch to AiRetentionPicker, raise watch_pct variance, and check your proxy pool for shared endpoints.

3. Do I need residential proxies? For a target video you actually care about, yes. Datacenter proxies work for testing the pipeline but get filtered at a much higher rate. Mobile proxies are the most reliable and the most expensive.

4. How many concurrent sessions should I run? Default is 3. Below 3 is safer but slower; above 6 starts burning proxies faster than the health scorer can replace them. The ThrottleGuard exists to stop you from setting this too high by accident.

5. Does the AI stuff send my data anywhere? No. The models are small, local, and compiled into the .exe. AiRetentionPicker and AiProxyAdvisor run entirely on-device. The only outbound traffic is the YouTube requests themselves.

6. Can I run this on a server without a display? HeadlessRunner handles that — it’s a CLI flag on the same .exe. No GUI is spawned. You’ll want to run it via Task Scheduler or a service wrapper on Windows Server.

7. What happens if the job crashes halfway? JobStore writes state after every completed session, and ResumeEngine picks up from the last one. You lose at most one session’s worth of progress.

8. Why does the .exe trigger SmartScreen? The build is unsigned. Signing certificates for this kind of tool are impractical to maintain. “More info → Run anyway” is the standard path; the binary is self-contained and does not modify system files.

9. Can I target a playlist or a channel instead of one video? PlaylistWalker handles playlists and related-video targets. Channel-wide targeting is not supported in this build — jobs are scoped to a single video or playlist.

10. Where are my logs and job data stored? Next to the .exe: jobs.db for job state, logs/ for per-session logs, sessions/ for browser profile caches. Nothing is written outside that folder, and the credential vault is AES-encrypted at rest.


💬 Community & Support

  • Bug reports — open an issue with the DiagnosticsBundle zip attached (wait 5s after job end, see Known Issues).
  • Proxy provider discussion — there’s a pinned thread in Discussions for comparing residential/mobile providers by failure rate; keep it factual.
  • Feature requests — tag with enhancement; the module catalog above is the current scope, so requests that extend an existing module get prioritized over new subsystems.
  • Build updates — UpdateChecker polls the landing page; manual checks are in the About tab.

The 2026 build is the first where the AI subsystems actually change outcomes rather than just adding a checkbox — AiRetentionPicker in particular moves the needle on filtered views more than any proxy upgrade. If you’re coming from an older build, the encrypted vault migration runs automatically on first launch, but back up jobs.db first. The module catalog above is the honest scope: 41 working modules, 2 in beta, and everything else is a wishlist item, not a shipped feature.

Official distribution

获取与安装

暂未发现可确认的官方软件包地址

当前 README 快照没有出现 npm、PyPI、Crates.io、pub.dev 等官方包页链接。本站不会根据仓库名称猜测下载地址。

本站不托管项目文件;需要安装时,请以项目维护者发布的官方文档为准。

使用前核验

本站保存公开资料用于阅读,不代表安全审计或功能背书。安装前请核对许可证、依赖来源和发布签名,不要直接运行来源不明的二进制文件或高权限脚本。