{"id":15201633,"url":"https://github.com/viewerbotss/youtube-viewerbot","last_synced_at":"2025-09-12T15:45:31.864Z","repository":{"id":200564474,"uuid":"705811583","full_name":"ViewerBotss/Youtube-ViewerBot","owner":"ViewerBotss","description":"A multithreaded view bot for YouTube","archived":false,"fork":false,"pushed_at":"2023-10-16T18:33:19.000Z","size":45804,"stargazers_count":5,"open_issues_count":1,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-04-12T01:52:44.347Z","etag":null,"topics":["python-bot","viewbot","youtube","youtube-live","youtube-livestream","youtube-stream","youtube-video","youtube-view-bot","youtube-viewer","youtube-viewerbot"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ViewerBotss.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"github":null,"patreon":null,"open_collective":null,"ko_fi":null,"tidelift":null,"community_bridge":null,"liberapay":null,"issuehunt":null,"otechie":null,"custom":["https://paypal.me/mshawon1"]}},"created_at":"2023-10-16T18:28:29.000Z","updated_at":"2025-01-24T18:23:53.000Z","dependencies_parsed_at":null,"dependency_job_id":"647b9640-034c-4398-8468-837d62b28b3d","html_url":"https://github.com/ViewerBotss/Youtube-ViewerBot","commit_stats":null,"previous_names":["viewerbotss/youtube-viewerbot"],"tags_count":42,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewerBotss%2FYoutube-ViewerBot","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewerBotss%2FYoutube-ViewerBot/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewerBotss%2FYoutube-ViewerBot/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViewerBotss%2FYoutube-ViewerBot/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ViewerBotss","download_url":"https://codeload.github.com/ViewerBotss/Youtube-ViewerBot/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248505873,"owners_count":21115354,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["python-bot","viewbot","youtube","youtube-live","youtube-livestream","youtube-stream","youtube-video","youtube-view-bot","youtube-viewer","youtube-viewerbot"],"created_at":"2024-09-28T03:20:22.430Z","updated_at":"2025-04-12T01:52:50.155Z","avatar_url":"https://github.com/ViewerBotss.png","language":"Python","funding_links":["https://paypal.me/mshawon1"],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n\u003cimg alt=\"ViewCount\" src=\"https://views.whatilearened.today/views/github/MShawon/YouTube-Viewer.svg\"\u003e\n\u003cimg alt=\"OS\" src=\"https://img.shields.io/badge/OS-Windows%20/%20Linux / Mac-success\"\u003e\n\u003ca href=\"https://github.com/MShawon/YouTube-Viewer/releases\"\u003e\u003cimg alt=\"Downloads\" src=\"https://img.shields.io/github/downloads/MShawon/YouTube-Viewer/total?label=Downloads\u0026color=success\"\u003e\u003c/a\u003e\n\u003ca href=\"https://github.com/MShawon/YouTube-Viewer/issues?q=is%3Aissue+is%3Aclosed\"\u003e\u003cimg alt=\"Closed issues\" src=\"https://img.shields.io/github/issues-closed/MShawon/YouTube-Viewer.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://github.com/MShawon/YouTube-Viewer/issues?q=is%3Aissue+is%3Aopen\"\u003e\u003cimg alt=\"Open issues\" src=\"https://img.shields.io/github/issues/MShawon/YouTube-Viewer\"\u003e\u003c/a\u003e\n\u003c/p\u003e\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://github.com/MShawon/YouTube-Viewer/releases/latest\"\u003e\u003cimg alt=\"GitHub release (latest by date)\" src=\"https://img.shields.io/github/v/release/MShawon/YouTube-Viewer?color=success\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://github.com/MShawon/YouTube-Viewer/releases/latest\"\u003e\u003cimg alt=\"GitHub Release Date\" src=\"https://img.shields.io/github/release-date/MShawon/YouTube-Viewer?color=success\"\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n    Yb  dP  dP\"Yb  88   88 888888 88   88 88\"\"Yb 888888\n     YbdP  dP   Yb 88   88   88   88   88 88__dP 88__   \n      8P   Yb   dP Y8   8P   88   Y8   8P 88\"\"Yb 88\"\"   \n     dP     YbodP  `YbodP'   88   `YbodP' 88oodP 888888 \n\n                         Yb    dP 88 888888 Yb        dP 888888 88\"\"Yb \n                          Yb  dP  88 88__    Yb  db  dP  88__   88__dP \n                           YbdP   88 88\"\"     YbdPYbdP   88\"\"   88\"Yb  \n                            YP    88 888888    YP  YP    888888 88  Yb\n\n# YouTube Viewer\nSimple program to increase YouTube views written in Python. Works with live stream too.\n\n\n**Disclaimer:** This has been developed for educational purposes only. Any action you take using this script is strictly at your own risk. I will not be liable for any losses or damages you face using this script.\n\n**Cons:** There will be some view drop always. \n\n# Support\n   Consider a donation to keep this project alive and for the countless hours of works and testing :)\n   \n  **PayPal :** https://paypal.me/mshawon1\n  \n  **Bitcoin :** `1Jh8KZ6khuHayNDeVV9tEzYSq9FPExKCAH`\n\n# Topics\n[Requirements](https://github.com/MShawon/YouTube-Viewer#requirements)  \n[New Update](https://github.com/MShawon/YouTube-Viewer#new-update)  \n[Features](https://github.com/MShawon/YouTube-Viewer#features)   \n[Proxies](https://github.com/MShawon/YouTube-Viewer#proxies)    \n\u0026ensp;\u0026emsp;[Free Proxy](https://github.com/MShawon/YouTube-Viewer#free-proxy)  \n\u0026ensp;\u0026emsp;[Premium Proxy](https://github.com/MShawon/YouTube-Viewer#premium-proxy)  \n\u0026ensp;\u0026emsp;[Rotating Proxy](https://github.com/MShawon/YouTube-Viewer#rotating-proxy)  \n[HTTP API](https://github.com/MShawon/YouTube-Viewer#http-api)  \n[Config.json](https://github.com/MShawon/YouTube-Viewer#configjson)  \n[Urls](https://github.com/MShawon/YouTube-Viewer#urls)    \n[Search](https://github.com/MShawon/YouTube-Viewer#search)    \n[Live Stream](https://github.com/MShawon/YouTube-Viewer#live-stream)    \n[YouTube Music](https://github.com/MShawon/YouTube-Viewer#youtube-music)    \n[Fast VPS](https://github.com/MShawon/YouTube-Viewer#fast-vps-with-unlimited-traffic)         \n[Windows](https://github.com/MShawon/YouTube-Viewer#windows)  \n\u0026ensp;\u0026emsp;[Binary Release](https://github.com/MShawon/YouTube-Viewer#binary-release)  \n\u0026ensp;\u0026emsp;[Installation](https://github.com/MShawon/YouTube-Viewer#installation)  \n\u0026ensp;\u0026emsp;[Usage](https://github.com/MShawon/YouTube-Viewer#usage)  \n[Linux / Mac](https://github.com/MShawon/YouTube-Viewer#linux--mac)  \n\u0026ensp;\u0026emsp;[Installation](https://github.com/MShawon/YouTube-Viewer#installation-1)  \n\u0026ensp;\u0026emsp;[Usage](https://github.com/MShawon/YouTube-Viewer#usage)  \n[Best Practices](https://github.com/MShawon/YouTube-Viewer#usage-1)  \n[Issues](https://github.com/MShawon/YouTube-Viewer#issues)  \n[Credits](https://github.com/MShawon/YouTube-Viewer#credits)  \n\n\n\n# Requirements\n * **Python 3.7.x-3.11.x**\n * High speed Internet Connection\n * Good proxy list (http, https, socks4, socks5)\n * Google Chrome installed on your OS (not Chromium)\n\n\n# Features\n * YouTube default, live streaming and YouTube Music support\n * Multithreaded and Dynamic thread support\n * Auto download updated chrome driver whenever user's Google Chrome version is updated\n * Patch chrome driver on the start of every thread by undetected-chromedriver\n * Proxy support \n      * location : text file (must be on path) / proxy API (should work with most of the proxy providers)\n      * type : http, https, socks4, socks5\n      * format : `ip:port`, `user:pass@ip:port`, `ip:port:user:pass`\n      * proxy refresh after a certain time specified by the user\n      * rotating proxy support\n * chrome v80+ randomized user agent based on platform\n * canvas,audio,font,webgl fingerprint defender and IP leak prevent by webrtc control\n * geolocation, timezone, referer spoofing\n * can add extra extensions in the `extension/custom_extension/` folder\n * direct link or search *keyword* on YouTube then watch the video by matching exact video *title*\n * modify **urls.txt, search.txt and config.json** on the fly without restarting program\n * HTTP api on localhost and a database to store view count\n * config.json to save settings\n * bypass consent page and several other pop up \n * save bandwidth by reducing video quality \n * can set higher(100%) watch duration percentage to increase *Watch time*, change playback speed\n * #### Traffic Sources\n   * YouTube Search\n   * Suggested Videos\n   * External (Google, Yahoo, DuckDuckGo, Bing, Twitter)\n   * End Screens\n   * Channel Pages\n   * Direct or unknown\n\n# How to get started\n  1) First, install the script following any one of these   \n      * [Windows without installing python](https://github.com/MShawon/YouTube-Viewer#binary-release)    \n      * [Windows from source code](https://github.com/MShawon/YouTube-Viewer#installation)    \n      * [Linux / Mac from source code](https://github.com/MShawon/YouTube-Viewer#linux--mac)\n   2) Then put your video links in the [urls.txt](https://github.com/MShawon/YouTube-Viewer#urls) file\n   3) To search for your video on YouTube and then play it, put the search keywords and video title in the [search.txt](https://github.com/MShawon/YouTube-Viewer#search) file\n   4) Get your [proxy](https://github.com/MShawon/YouTube-Viewer#proxies) list\n   5) Run the script and follow the instructions from there.\n\n\n# Proxies\n *[IPRoyal](https://iproyal.com?r=18862) offers datacenter and residential proxies. The Royal Residential proxies have a large pool with addresses in over 195 countries all over the world, so they can generate a massive number of views. IPRoyal agreed to provide an additional discount of 5% which adds up to current bulk discounts! To get this incredible 5% discount, with bulk discounts for Royal Residential proxies, use the discount code: `youtubers5`*\n\n\n* ## Free Proxy\n   Try not to use free proxies. But if you have a paid subscription and you want to use authenticated IP feature, then you can use the free proxy category. Provide your text file path (where you saved the proxies) when the script asks for a proxy file name or a proxy API.\n   N.B: Available for **http(s)/socks4/socks5**\n   \n* ## Premium Proxy\n   Proxies with authentication can also be done. To do so put your proxies in this format `username:password@ipaddress:port`or `ipaddress:port:username:password` in a text file. Every single line will contain a single proxy. Provide your text file path when the script asks for a proxy file name or a proxy API.\n   \n   N.B: Only available for **http** type proxy.\n\n* ## Rotating Proxy\n   You can also use the rotating proxies service. You can either authenticate your IP on your proxy provider service and use `ipaddress:port` as Main Gateway. \n   N.B: Available for **http(s)/socks4/socks5**\n\n   Or direct use username:password combo like this `username:password@ipaddress:port` or `ipaddress:port:username:password` as Main Gateway.\n\n   N.B: Only available for **http** type proxy.\n   You can use proxy API too.\n\n# HTTP API\n   Live logs fetched every 10 seconds and statistics in graphs are available on http://localhost:5000/ .Or [http://ip_of_your_pc:5000/](http://ip_of_your_pc:5000/) use this to access from another device under same network. A SQLite Database is being used  to store your generated views from this script. \n   Last 200 logs from scripts are fetched every 10 seconds to show on website and graph is updated every 5 minutes.\n\n# Config.json\n   No need to type everything everytime you run the script. A config file will be created automatically to save and use your preferences.\n   You can modify it on the fly without restarting the program.\n   \n# Urls\n  Put video links in the urls.txt. For multiple videos place urls in multple lines.\n  1) To find video link in YouTube click share and copy.\n  2) If you have any external link which will redirect to your youtube video you can use that too. Example : when you post a YouTube video link in **twitter** and you hit play on twitter, you will get a link like this `https://t.co/xxxxxxxxxx?amp=1`. This is helpful because YouTube will see that views are coming from External Source like twitter in this example.\n\n# Search\n  Program can search youtube with the keyword you want and find the video with video title or video id. To do this you need to know what keyword can find your video on youtube search engine. Also you need to provide **exact** video title or video id. Put keyword and title like this format `keyword :::: video title` or `keyword :::: video id` in **search.txt**. Always use multiple `keyword` for the same `video title` or `video id`.\n\n  *If you don't know any keyword just put your `video title :::: video title` or `video title :::: video id` in search.txt*\n\n   \n# Live Stream\n   This script supports live streams too. Just use this script as you would for the already uploaded video. Script will automatically know if your video is live. Just bear in mind, you need a **high-end pc** for higher threads to get more viewers.\n   Basically, script will check every 60 secs if youtube shows `x watching now` is present. If your live stream ends, script will check 5 times to be sure. In another word, after your live stream ends, script takes 5 minutes to close the driver.\n   \n   If you have never used this script before, use this first for an already uploaded video. This way, you will have a better understanding of how this script works. To do so, keep reading.\n\n# YouTube Music\n   Can generate views on YouTube Music too. In **urls.txt** put your music link like this `https://music.youtube.com/watch?v=xxxxx`. Script will automatically load YouTube Music when it sees link have `music.youtube.com`. **Search feature is not available for this.** So you need to empty the search.txt otherwise it will start searching videos in default YouTube.\n\n\n# Fast VPS with Unlimited Traffic\n  *[PetroSky](https://petrosky.io/mshawon) is one of the various CloudHosting services with the fastest and most convenient cloud technology. Their servers are powered by the latest **AMD RYZEN/EPYC CPUs** with High-Performance **NVMe SSD Hard Drives** that will let your application run faster than ever. You can get 2 vCPU with 4 GB ECC RAM for as low as 11.99€/month which will work very well for YouTube-Viewer script for 2 threads. Visit [PetroSky](https://petrosky.io/mshawon) to get the fastest VPS with unlimited traffic at the lowest price. Use this code `mshawon25` to get **25% discount**  on your purchase*\n\n# Windows\n* ## Binary Release\n\n  For windows you can download binary releases from **[Binary releases](https://github.com/MShawon/YouTube-Viewer/releases)**. Download this file named `YouTube-Viewer_win_x.x.x.zip`, unzip it and run the `youtube_viewer.exe`. Or you can install it from source. To do so keep reading. \n  \n* ## Installation\n\n  First, make sure you have installed git and Python version between 3.7.x to 3.11.x\n  \n  Open command prompt and type\n  ```\n  git clone https://github.com/MShawon/YouTube-Viewer.git --depth 10\n  ```\n  ```\n  cd YouTube-Viewer\n  ```\n  ```\n  python -m pip install --upgrade pip wheel\n  ```\n  ```\n  pip install \"setuptools\u003c59\"\n  ```\n  ```\n  pip install -r requirements.txt\n  ```\n\n* ## Important\n   * If you've got a large free proxies collection, you should run this command to filter Good proxies. Then use **GoodProxy.txt** for proxy in **youtube_viewer.py**\n      ```\n      python proxy_check.py\n      ```\n\n   * After closing program, if chromedrivers are still running. You may want to double click **killdrive.bat** to close all chrome instances.\n\n   * *urls.txt* or *search.txt* can't be empty. Otherwise you will see errors. Use both for better results.\n\n* ## Usage\n   * Open command prompt in YouTube-Viewer folder and run\n        ```\n        python youtube_viewer.py\n        ```\n   * Rest is self explanatory.\n\n# Linux / Mac\n* ## Installation\n\n  First, make sure you have installed git and Python version between 3.7.x to 3.11.x\n  \n  Open your favourite terminal and run\n   ```\n  git clone https://github.com/MShawon/YouTube-Viewer.git --depth 10\n  ```\n  ```\n  cd YouTube-Viewer\n  ```\n  ```\n  python3 -m pip install --upgrade pip wheel\n  ```\n  ```\n  pip3 install \"setuptools\u003c59\"\n  ```\n  ```\n  pip3 install -r requirements.txt\n  ```\n\n* ## Important\n   * If you've got a large free proxies collection, you should run this command to filter Good proxies. Then use **GoodProxy.txt** for proxy in **youtube_viewer.py**\n        ```\n        python3 proxy_check.py\n        ```\n\n   * After closing program, if chromedrivers are still running. Open your terminal and run \n      ```bash\n      ps aux | awk '/chrome/ { print $2 } ' | xargs kill -9\n      ```\n   * *urls.txt* or *search.txt* can't be empty. Otherwise you will see errors. Use both for better results.\n\n* ## Usage\n   * Open command prompt in YouTube-Viewer folder and run\n        ```\n        python3 youtube_viewer.py\n        ```\n   * Rest is self explanatory.\n \n # Best Practices\n  To get the most out of this script you should maintain these things.\n  * Don't use HEADLESS mode. Because no IP leak prevention, fingerprint defending, etc. can be done in headless mode.\n  * Youtube doesn't count views from the same IP after a certain time. Like, don't expect to get 100 views from 10 proxies. If you want more views, try to use a lot of premium proxies(free proxies are flagged by most websites). DO NOT use TOR proxies.\n  * In a nutshell, you need Rotating proxies to get the best result. But the IP MUST NOT change on each request. Set the sticky session or TTL to 5 to 15 minutes.\n  * For IPRoyal it would be *Royal Residential Proxies*, not Static Residential proxies\n  * Use both [urls.txt](https://github.com/MShawon/YouTube-Viewer#urls) and [search.txt](https://github.com/MShawon/YouTube-Viewer#search)\n  * And use as many [urls](https://github.com/MShawon/YouTube-Viewer#urls) and [keyword::::title](https://github.com/MShawon/YouTube-Viewer#search) as you can. Don't use just one video.\n\n\n# Credits\n I want to thank all of you who have opened an issue or shared your code snippets or ideas with me! \n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fviewerbotss%2Fyoutube-viewerbot","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fviewerbotss%2Fyoutube-viewerbot","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fviewerbotss%2Fyoutube-viewerbot/lists"}