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
Stream music with ffmpeg and python

youtube-stream Stream music with ffmpeg and python original Usage set the KEY in stream.sh run server.py run stream.sh (You can use Git bash or WSL in

Giyoung Ryu 14 Nov 17, 2021
Code from the 2021 Signal Video Superclass

Twilio Video Demo This is the code written during the live Twilio Video demo during Twilio's Signal 2021 Superclass. It creates a simple Video applica

2 Oct 21, 2021
Adblocker for movie subtitles.

SubAdBlock Adblocker for movie subtitles. Usage Place "main.py" and "config.conf" in directory with subtitles and run "main.py". It will automatically

Marko Živić 1 Jan 09, 2022
Rembg Video Virtual Green Screen Edition

Rembg Virtual Greenscreen Edition is a tool to create a green screen matte for videos

Tim Scarfe 217 Jan 06, 2023
Python package to display video in GUI using OpenCV-Python and PySide6

Python package to display video in GUI using OpenCV-Python and PySide6. Introduction cv2PySide6 is a package which provides utility classes and functi

3 Jun 06, 2022
Jio TV Server - Watch TV right from your laptop

Jio-PyServer Jio TV - Python Server Watch TV right from your laptop! Requirements: Python 3.X Internet Access A Jio Account Known Issues: Channel Stre

Elvis Tony 11 Apr 05, 2022
Stream anime from kaa.si with python

kaa.si-cli Stream anime using MPV player from kaa.si with python

Muhammad Rovino Sanjaya 52 Dec 24, 2022
Simple nightcore song+video maker

nighty nighty is a simple nightcore song maker (+ video) Installation clone the repo wherever you want git clone https://www.github.com/DanyB0/nighty

DanyB0 2 Oct 02, 2022
A self-hosted streaming platform with Discord authentication, auto-recording and more!

A self-hosted streaming platform with Discord authentication, auto-recording and more!

John Patrick Glattetre 331 Dec 27, 2022
Use ZWO astronomy camera as an IP camera.

ZWO Astronomy Camera as IP Camera Astronomy cameras are known for their high sensitivity and flexibility on whether to have IR pass through and bayer

Yan Wang 9 Oct 15, 2022
Vigia-youtube - The YouTube Watch bot is able to monitor channels on Google's video platform

Vigia do YouTube O bot Vigia do YouTube é capaz de monitorar canais na plataform

Alessandro Feitosa Jr 10 Oct 03, 2022
camKapture is an open source application that allows users to access their webcam device and take pictures or create videos.

camKapture is an open source application that allows users to access their webcam device and take pictures or create videos.

manoj 1 Jun 21, 2022
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
Techie Sneh 17 Nov 23, 2021
A script to disable steam servers regionwise. [Works on Windows only]

Csgo-server-blocker A script to disable steam servers regionwise. [Works on Windows only] Dependencies python3.x Usage: pip install requirements.txt I

Aditya Bennur 2 Jun 10, 2022
Help for manipulating the plex-media-server transcode on the raspberry pi

raspi-plex-transcode Help for manipulating the plex-media-server transcode on the raspberry pi Ensure hardware decoding works and your firmware is up

10 Sep 29, 2022
OpenShot Video Editor is an award-winning free and open-source video editor for Linux, Mac, and Windows, and is dedicated to delivering high quality video editing and animation solutions to the world.

OpenShot Video Editor is an award-winning free and open-source video editor for Linux, Mac, and Windows, and is dedicated to delivering high quality v

OpenShot Studios, LLC 3.1k Jan 01, 2023
A simple Telegram bot to extract hard-coded subtitle from videos using FFmpeg & Tesseract.

Video Subtitle Extractor Bot A simple Telegram bot to extract hard-coded subtitle from videos using FFmpeg & Tesseract. Note that the accuracy of reco

14 Oct 28, 2022
Zaid Vc Player Bot For Telegram

Zaid Vc Player Bot For Telegram

1 Dec 04, 2021
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