A multithreaded view bot for YouTube

Overview

ViewCount OS Closed issues Open issues SayThanks

Donate GitHub Clones

Yb  dP  dP"Yb  88   88 888888 88   88 88""Yb 888888
 YbdP  dP   Yb 88   88   88   88   88 88__dP 88__   
  8P   Yb   dP Y8   8P   88   Y8   8P 88""Yb 88""   
 dP     YbodP  `YbodP'   88   `YbodP' 88oodP 888888 

                     Yb    dP 88 888888 Yb        dP 888888 88""Yb 
                      Yb  dP  88 88__    Yb  db  dP  88__   88__dP 
                       YbdP   88 88""     YbdPYbdP   88""   88"Yb  
                        YP    88 888888    YP  YP    888888 88  Yb

YouTube Viewer

Simple program to increase YouTube views written in Python.

Discalimer: This has been developed for educational purposes only.

Cons: Try not to use this script every day. Run this once or twice a week with newer proxies. Guess this will reduce the view decrease issue.

Requirements

  • Python 3.x
  • High speed Internet Connection
  • Good proxy list
  • Google Chrome installed on your OS (not Chromium)

New feature

Now program can search youtube with keyword and find video with video title. 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. Put keyword and title like this format keyword : video title in search.txt

Windows

  • Installation

    Open command prompt and type

    $ git clone https://github.com/MShawon/YouTube-Viewer.git
    
    $ cd YouTube-Viewer
    
    $ pip install -r requirements.txt
  • Important

    • Check your Google Chrome version and download same version chromedriver.exe from https://chromedriver.chromium.org/downloads here and place it in the chromedriver_win32 folder.

    • If you've got a large proxy collection, you should run this command to filter Good proxies. Then use GoodProxy.txt for proxy in youtube_viewer.py

      $ python proxy_check.py
      
    • After closing program, if chromedrivers are still running. You may want to double click killdrive.bat to close all chrome instances.

  • Test

    This will clear your confusion as main program will run in the background.

    $ python test.py
    
  • Usage

    • Put youtube video links in the urls.txt. For multiple videos place urls in multple lines. (To find video link in YouTube click share and copy)
    • Open command prompt in YouTube-Viewer folder and run
      $ python youtube_viewer.py
      
    • Enter amount of views you want.
    • Provide number of threads.
    • Input proxy list or let program to handle proxies automatically.

    alt text

Linux

  • Installation

    Open your favourite terminal and run

    $ git clone https://github.com/MShawon/YouTube-Viewer.git
    
    $ cd YouTube-Viewer
    
    $ pip3 install -r requirements.txt
  • Important

    • Check your Google Chrome version and download same version chromedriver from https://chromedriver.chromium.org/downloads here and place it in the chromedriver_linux64 folder.

    • If you've got a large proxy collection, you should run this command to filter Good proxies. Then use GoodProxy.txt for proxy in youtube_viewer.py

      $ python3 proxy_check.py
      
    • After closing program, if chromedrivers are still running. Open your terminal and run

      ps aux | awk '/chrome/ { print $2 } ' | xargs kill -9
      
  • Test

    This will clear your confusion as main program will run in the background.

    $ python3 test.py
    
  • Usage

    • Put youtube video links in the urls.txt. For multiple videos place urls in multple lines. (To find video link in YouTube click share and copy)
    • Open command prompt in YouTube-Viewer folder and run
      $ python3 youtube_viewer.py
      
    • Enter amount of views you want.
    • Provide number of threads.
    • Input proxy list or let program to handle proxies automatically.

    alt text

Comments
  • I think youtube detect the bot

    I think youtube detect the bot

    Hi I start using the bot five days ago first day I get 195 hours third day I get 770 hours forth I get 90 hours last day I get 509 hours but all these hours losted today what's wrong

    opened by egbrave 71
  • Recaptcha solver

    Recaptcha solver

    Is there an existing issue for this?

    • [ ] I have searched the existing issues

    I'm submitting a ...

    • [ ] bug report
    • [X] feature request
    • [ ] support request --> Contact me over mail for support https://github.com/MShawon

    Description

    bro this code does not go forward in recaptcha so here is the idea of a recapthca solver try it out bro

    r = sr.Recognizer()
    try:
                delay()
                frames = driver.find_elements_by_tag_name("iframe")
                recaptcha_control_frame = None
                recaptcha_challenge_frame = None
                for index, frame in enumerate(frames):
                    if re.search('reCAPTCHA', frame.get_attribute("title")):
                        recaptcha_control_frame = frame
    
                    if re.search('recaptcha challenge', frame.get_attribute("title")):
                        recaptcha_challenge_frame = frame
                if not (recaptcha_control_frame and recaptcha_challenge_frame):
                    print("[ERR] Unable to find recaptcha. Abort solver.")
    
                delay()
                frames = driver.find_elements_by_tag_name("iframe")
                driver.switch_to.frame(recaptcha_control_frame)
                driver.find_element_by_class_name(
                    "recaptcha-checkbox-border").click()
    
                delay()
                driver.switch_to.default_content()
                frames = driver.find_elements_by_tag_name("iframe")
                driver.switch_to.frame(recaptcha_challenge_frame)
    
                time.sleep(10)
                driver.find_element_by_id("recaptcha-audio-button").click()
    
                try:
                    driver.switch_to.default_content()
                    frames = driver.find_elements_by_tag_name("iframe")
                    driver.switch_to.frame(recaptcha_challenge_frame)
    
                    delay()
                    src = driver.find_element_by_id(
                        "audio-source").get_attribute("src")
    
                    path_to_mp3 = os.path.normpath(
                        os.path.join(os.getcwd(), "sample.mp3"))
                    path_to_wav = os.path.normpath(
                        os.path.join(os.getcwd(), "sample.wav"))
    
                    urllib.request.urlretrieve(src, path_to_mp3)
                except:
                    driver.quit()
                    # os.system("check.exe")
    
                try:
                    sound = pydub.AudioSegment.from_mp3(path_to_mp3)
                    sound.export(path_to_wav, format="wav")
                    sample_audio = sr.AudioFile(path_to_wav)
                except Exception:
                    driver.close()
                    driver.quit()
    
                delay()
                r = sr.Recognizer()
                with sample_audio as source:
                    audio = r.record(source)
                key = r.recognize_google(audio)
    
                delay()
                driver.find_element_by_id("audio-response").send_keys(key.lower())
                driver.find_element_by_id("audio-response").send_keys(Keys.ENTER)
            except:
                driver.quit()
    

    Environment

    - OS : windows 
    - Python : 3.9
    - Script version : 1.6.7
    

    config.json

    {
        "http_api": {
            "enabled": true,
            "host": "0.0.0.0",
            "port": 5000
        },
        "database": true,
        "views": 100,
        "minimum": 85.0,
        "maximum": 95.0,
        "proxy": {
            "category": "f",
            "proxy_type": false,
            "filename": false,
            "authentication": false,
            "proxy_api": false,
            "refresh": 0.0
        },
        "background": false,
        "bandwidth": true,
        "playback_speed": 1,
        "max_threads": 5,
        "min_threads": 2
    }
    
    opened by furjac 32
  • Proxy issue on ubuntu 20.04 headless

    Proxy issue on ubuntu 20.04 headless

    hI,

    I have issues on proxies using Ubuntu 20.04 headless server setup. It reports all proxies dead, while I have changed proxies few times already.

    Awaiting your response,

    thisisawesome1994

    I openend a issue with webshare We Will see what they say

    opened by thisisawesome1994 31
  • All proxies are bad also viewer doesnt work

    All proxies are bad also viewer doesnt work

    This program was working 1-2 days ago but today because i get new proxy and i want to test them and run some video but unfortunately the script is not working i checked instantly if you have updated but only clones.json is updates so is not something with code

    https://i.imgur.com/ZORBYJM.png

    opened by KkK1337 31
  • add play speed choice in the main programs / config

    add play speed choice in the main programs / config

    it's just an example just like the one I found on line 641-661, you know better than me in the code part. is this implementable ?

    I'm tryting to replicate the code on main .py, use the lowest speed provided 0.25.

    def play_speed(driver):
        try:
            driver.find_element_by_css_selector(
                "button.ytp-button.ytp-settings-button"").click()
            driver.find_element_by_xpath(
                "//div[contains(text(),'Playback speed')]").click()
            speed = WebDriverWait(driver, 10).until(EC.element_to_be_clickable(
                (By.XPATH, f"//span[contains(string(),'0.25')]")))
            driver.execute_script(
                "arguments[0].scrollIntoViewIfNeeded();",speed)
            speed.click()
            
        except:
            pass
    

    if this feature can be added, please add it to the next release. thanks and love your works! :100:

    opened by ignisc4t 28
  • watched in a random time between  %85 and %95 issue.

    watched in a random time between %85 and %95 issue.

    First of all, I am grateful to you for creating this kind of program. I ran into a problem. Within the codes, it is written that the video will be watched in a random time between %85 and %95 of the time. but when I try it for a 5 minute video it always shuts down before it even reaches 2 minutes. same thing happens for every video. What is the reason? I hope we can solve this problem. thank you.

    opened by kuziru 24
  • Failure messages when start the script

    Failure messages when start the script

    Hey, As I saw you already updated the files to improve the watch times.

    When I start the script I get the following 4 messages:

    └─$ python3 youtube_viewer.py
    :228: RuntimeWarning: greenlet.greenlet size changed, may indicate binary incompatibility. Expected 144 from C header, got 152 from PyObject :228: RuntimeWarning: greenlet.greenlet size changed, may indicate binary incompatibility. Expected 144 from C header, got 152 from PyObject :228: RuntimeWarning: greenlet.greenlet size changed, may indicate binary incompatibility. Expected 144 from C header, got 152 from PyObject :228: RuntimeWarning: greenlet.greenlet size changed, may indicate binary incompatibility. Expected 144 from C header, got 152 from PyObject

    Yb dP dP"Yb 88 88 888888 88 88 88""Yb 888888
    YbdP dP Yb 88 88 88 88 88 88__dP 88__
    8P Yb dP Y8 8P 88 Y8 8P 88""Yb 88""
    dP YbodP YbodP' 88YbodP' 88oodP 888888

                        Yb    dP 88 888888 Yb        dP 888888 88""Yb      
                         Yb  dP  88 88__    Yb  db  dP  88__   88__dP      
                          YbdP   88 88""     YbdPYbdP   88""   88"Yb       
                           YP    88 888888    YP  YP    888888 88  Yb      
    

    What exactly is the problem? It seems the script runs...

    Thanks and best regards

    opened by chefo66 23
  • Can't close the prompt while It's Working

    Can't close the prompt while It's Working

    When i close the prompt while it work on links, the program wont start anymore, i have some strange errors ^^ By the way, your program is really good ^^ I just have this one problem, the only thing that worked to solve that is a fresh install

    opened by IWantToLearn1 22
  • BAD Proxy always!

    BAD Proxy always!

    I don't know why but no matter what proxy i use even built in proxy loader it always says BAD Proxy, Not a single proxy is working. Why? I tried in 2 PC but both have same result. Running Python 3.9.2

    opened by Kanibo250 22
  • list index out of range

    list index out of range

    I'm trying to run on my window, I got the issue "list index out of range". Could you let me know how to resolve it?

    image

    I have a proxy question: I want to buy proxy on here. Do you think it's ok for youtube? Or do you have any suggestions? https://stormproxies.com/residential_proxy.html image Many thank for the good script.

    opened by luatndl 21
  • view drop after a week.

    view drop after a week.

    After a few week, view and watch hours drop. Mine drop about 500 watch hours and about 2k view drop. I'm using paid proxy from webshare, ip:username:pass. thread is 5, multiple video and multiple link. Url is using link that i share on Facebook and twitter, copy share link and shorten it using bit.ly and direct youtube url. example : https://bit.ly/2WdSOaC https://bit.ly/3ocgTKO https://www.youtube.com/watch?v=royhu4E0FLQ

    Proxy that I used is : https://bit.ly/3AOMkhD search.txt urls.txt

    I have suggestion. Is it possible to spoof or change mac address of chrome extension for every chrome extension used just like the proxy used are. What I'm trying to saying here is that for every chrome extension that is used, can it using the difference device id or mac address, example, 5 thread is used, and for each of that thread using the difference mac address. Because i believe youtube detect device id too besides the ip of every devices.

    opened by seadota2 18
  • New implementation of change_playback_speed

    New implementation of change_playback_speed

    Is there an existing issue for this?

    • [X] I have searched the existing issues

    I'm submitting a ...

    • [ ] bug report
    • [X] feature request
    • [ ] support request --> Contact me over mail for support https://github.com/MShawon

    Description

    The movie_player element has a method called setPlaybackRate. I think it's better to use that method than sending '<' and '>' keypresses to change the playback speed.

    def change_playback_speed(driver, playback_speed):
        driver.execute_script(
            f"document.getElementById('movie_player').setPlaybackRate('{playback_speed}')")
    

    Hope it helps.

    Environment

    - OS : All
    

    config.json

    Not needed
    
    opened by charlyzard 1
  • How to disable search?

    How to disable search?

    Is there an existing issue for this?

    • [X] I have searched the existing issues

    I'm submitting a ...

    • [ ] bug report
    • [X] feature request
    • [X] support request --> Contact me over mail for support https://github.com/MShawon

    Description

    Hi everyone, I'm using the windows binary and I do not need the search function. I want the program to just view the urls I provide. Is there a way to do so?

    Thanks,

    Environment

    - OS : Windows
    - Python : 3.7
    - Script version : 1.7.6
    

    config.json

    {
        "http_api": {
            "enabled": true,
            "host": "0.0.0.0",
            "port": 5000
        },
        "database": true,
        "views": 10,
        "minimum": 85.0,
        "maximum": 95.0,
        "proxy": {
            "category": "f",
            "proxy_type": false,
            "filename": "GoodProxy.txt",
            "authentication": false,
            "proxy_api": false,
            "refresh": 0.0
        },
        "background": false,
        "bandwidth": true,
        "playback_speed": 3,
        "max_threads": 5,
        "min_threads": 2
    }
    
    opened by elaounim 1
  • can this bot deliver 2k viewers for live stream??

    can this bot deliver 2k viewers for live stream??

    Is there an existing issue for this?

    • [X] I have searched the existing issues

    I'm submitting a ...

    • [ ] bug report
    • [ ] feature request
    • [ ] support request --> Contact me over mail for support https://github.com/MShawon

    Description

    hey guys I hope someone help me by answering if this bot can deliver about 2k viewers with HQ proxies + high config RDP or VPS ??

    Environment

    - OS : 
    - Python : 
    - Script version :
    

    config.json

    sds
    
    opened by shelbey22 7
  • Feature request Proxyless (USING VPN EXTENSION)

    Feature request Proxyless (USING VPN EXTENSION)

    Is there an existing issue for this?

    • [X] I have searched the existing issues

    I'm submitting a ...

    • [ ] bug report
    • [X] feature request
    • [ ] support request --> Contact me over mail for support https://github.com/MShawon

    Description

    Please create new update with no proxy option.

    Thank you

    Environment

    - OS : Windows
    - Python : 3.9
    - Script version : 1.7.6
    

    config.json

    No
    
    opened by allskandal 1
  • How to use in google colab

    How to use in google colab

    Is there an existing issue for this?

    • [X] I have searched the existing issues

    I'm submitting a ...

    • [ ] bug report
    • [X] feature request
    • [X] support request --> Contact me over mail for support https://github.com/MShawon

    Description

    How to use it in google colab?

    Environment

    - OS : Ubuntu 20
    - Python : 3.9
    - Script version : 1.7.6
    

    config.json

    no need
    
    opened by suryacandra 6
Releases(1.7.6)
Owner
Monirul Shawon
Monirul Shawon
Automatically logs into VTOP and can perform certain tasks

VTOP_Login Automatically logs into VTOP and can perform certain tasks To run the

Jatin 1 Jan 30, 2022
A web RTSP play platform based on websocket and tornado, websocket use blob binaryType read as ArrayBuffer

A web RTSP play platform based on websocket and tornado, websocket use blob binaryType read as ArrayBuffer

2 Feb 25, 2022
A simple Python Youtube Wachtime for YTbebot

Simple bot that was development in python 3.7, that automatically watch youtube videos. It can be used to give more views in your channel helping in the spread and increase the followers because your

Rian eka wiratma 1 Dec 05, 2021
Code for the manim-generated scenes used in 3blue1brown videos

Code for the manim-generated scenes used in 3blue1brown videos

Grant Sanderson 4.1k Jan 09, 2023
iYTDL - Asynchronous Standalone Inline YouTube-DL Module

iYTDL Asynchronous Standalone Inline YouTube-DL Module ⬇️ Installing Install pip3 install iytdl Upgrade pip3 install -U iytdl ⭐️ Features Fully Asynch

iYTDL 46 Dec 24, 2022
Komposition - The video editor built for screencasters

Komposition The video editor built for screencasters Tutorial Video | Introduction | Installation Documentation See the documentation and user guide.

Oskar Wickström 428 Jan 08, 2023
Youtube-dislikes-adder - Add dislikes to the description of your YouTube videos.

Add number of dislikes to the description of your YouTube videos. Number of dislikes are updated if you let this function as a bot.

fluks 1 Aug 23, 2022
Add a "flame" effect on each hand's index onto a video stream.

Add a "flame" effect on each hand's index onto a video stream. recording.webm.mov This script is just a quick hack, it's a bit of glue between mediapi

Paul Willot 7 Sep 15, 2022
Скрипт который выводит видео в консоль. Ничего лишнего)

video-to-ascii Скрипт который выводит видео в консоль. Ничего лишнего) Требования Минимальное разрешение экрана: 1280x720 Видео в качестве 360p 10-45f

Daniil Pisarev 155 Nov 28, 2022
Splat a video into a mosaic by sampling a frame at regular intervals

Splat a video into a mosaic by sampling a frame at regular intervals. Useful for seeing the changes over time of an entire video or movie.

Ryan Fox 4 Oct 16, 2022
Video processing routines for SciPy

scikit-video Video Processing SciKit BETA Video processing algorithms, including I/O, quality metrics, temporal filtering, motion/object detection, mo

Alex Izvorski 119 Dec 27, 2022
This is a tool for making a every day video if you take a picture of you everyday

Face-Everyday-Maker-Studio Description This project is a tool for making a everyday video, which is timelapse video or slides video, of images but for

John A Betancourt G 9 Sep 06, 2022
A VcVideoPlayer Bot for Telegram made with 💞 By @ThePro_CoderZ

VcVideoPlayer A VcVideoPlayer Bot for Telegram made with 💞 By @Akki_ThePro Heroku Deploy The easiest way to deploy this Bot is via Heroku. License

1 Dec 06, 2021
A python generator that converts youtube videos to ascii art in your console.

Video To ASCII A python generator that converts youtube videos to ascii art in your console. This has not been tested for windows! Example Normal mode

Julian Jones 24 Nov 02, 2022
Automagically synchronize subtitles with video.

FFsubsync Language-agnostic automatic synchronization of subtitles with video, so that subtitles are aligned to the correct starting point within the

Stephen Macke 5.7k Jan 06, 2023
Tautulli - A Python based monitoring and tracking tool for Plex Media Server.

Tautulli A python based web application for monitoring, analytics and notifications for Plex Media Server. This project is based on code from Headphon

Tautulli 4.7k Jan 07, 2023
This is an example of building a video Question-Answer system using Jina.

example-video-search This is an example of building a video Question-Answer system using Jina. The index data is subtitle files of YouTube videos. Aft

Jina AI 9 Oct 18, 2022
Ffmpeg videostream - High speed video frame access in Python, using FFmpeg and FFshow

FFmpeg VideoStream High speed video frame access in Python, using FFmpeg and FFshow This script requires: Karl Kroening's 'ffmpeg-python' library. (ht

3 Sep 29, 2022
Streamlink is a CLI utility which pipes video streams from various services into a video player

Streamlink is a CLI utility which pipes video streams from various services into a video player

8.2k Dec 26, 2022
A wrapper around ffmpeg to make it work in a concurrent and memory-buffered fashion.

Media Fixer Have you ever had a film or TV show that your TV wasn't able to play its audio? Well this program is for you. Media Fixer is a program whi

Halit Şimşek 3 May 04, 2022