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
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
BlogBot - a Python script that create blogs from YouTube videos.

BlogBot - Convert Youtube Videos To Blogs BlogBot is a Python script that create blogs from YouTube videos.

Nikhil Bhamere 4 Apr 22, 2022
FLIR/DJI IR Camera Data Parser, Python Version

FLIR/DJI IR Camera Data Parser, Python Version Parser infrared camera data as NumPy data. Usage Clone this respository and cd thermal_parser. Run pip

14 Dec 23, 2022
deepstream python rtsp video h264 or gstreamer python rtsp h264 | h264

deepstream python rtsp video h264 or gstreamer python rtsp h264 | h264 deepstrea

Small white Tang 6 Dec 14, 2022
Convert lecture videos to slides in one line. Takes an input of a directory containing your lecture videos and outputs a directory containing .PDF files containing the slides of each lecture.

Convert lecture videos to slides in one line. Takes an input of a directory containing your lecture videos and outputs a directory containing .PDF files containing the slides of each lecture.

Sidharth Anand 12 Sep 10, 2022
获取斗鱼&虎牙&哔哩哔哩&抖音&快手等 48 个直播平台的真实流媒体地址(直播源)和弹幕,直播源可在 PotPlayer、flv.js 等播放器中播放。

获取斗鱼&虎牙&哔哩哔哩&抖音&快手等 48 个直播平台的真实流媒体地址(直播源)和弹幕,直播源可在 PotPlayer、flv.js 等播放器中播放。

乌帮图 5.6k Jan 06, 2023
Automatically segment in-video YouTube sponsorships.

SponsorBlock Auto Segment [Model Download] Automatically segment in-video YouTube sponsorships. Trained on a large dataset of YouTube sponsor transcri

Akmal 7 Aug 22, 2022
Python based script to operate FFMPEG.

FMPConvert Python based script to operate FFMPEG. Ver 1.0 -- 2022.02.08 Feature ✅ Maximum compatibility: Third-party dependency libraries unused ✅ Che

cybern000b 1 Feb 28, 2022
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
Boltstream Live Video Streaming Website + Backend

Boltstream Self-hosted Live Video Streaming Website + Backend Reference

Ben Wilber 1.7k Dec 28, 2022
A youtube video link or id to video thumbnail python package.

Youtube-Video-Thumbnail A youtube video link or id to video thumbnail python package. Made with Python3

Fayas Noushad 10 Oct 21, 2022
A GUI based datamoshing apllication for everyone! Apply this glitch to your videos and gifs. Supports all video formats!

A GUI based datamoshing apllication for everyone! Apply this glitch to your videos and gifs. Supports all video formats!

Akascape 131 Dec 31, 2022
Telegram Video Chat Video Streaming bot 🇱🇰

🧪 Get SESSION_NAME from below: Pyrogram 🎭 Preview ✨ Features Music & Video stream support MultiChat support Playlist & Queue support Skip, Pause, Re

DOOZY YEZ 5 Jun 26, 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
I have baked a custom integration to control Eufy Security Cameras and access RTSP and P2P stream if possible.

I have baked a custom integration to control Eufy Security Cameras and access RTSP (real time streaming protocol) and P2P (peer to peer) stream if pos

Fuat Akgün 422 Jan 01, 2023
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
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
KonomiTV: Kind and Optimized Next brOadcast watching systeM Infrastructure for TV

備考・注意事項 現在 α 版で、まだ実験的なプロダクトです。通常利用には耐えないでしょうし、サポートもできません。 安定しているとは到底言いがたい品質ですが、それでも構わない方のみ導入してください。 使い方などの説明も用意できていないため、自力でトラブルに対処できるエンジニアの方以外には現状おすすめ

tsukumi 244 Dec 31, 2022
Rune - a video miniplayer made with Python.

Rune - a video miniplayer made with Python.

1 Dec 13, 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