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
KonomiTV: Kind and Optimized Next brOadcast watching systeM Infrastructure for TV

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

tsukumi 244 Dec 31, 2022
Скрипт который выводит видео в консоль. Ничего лишнего)

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

Daniil Pisarev 155 Nov 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
Automatic video generator for local news

Automatic video generator for local news

Gabriel Monteiro 2 Jan 11, 2022
Autocut the Twitch VODs based on Marker

Markut Given the VOD of the stream and the markers that are exported as a CSV file, generate a video using ffmpeg that cuts out part of the VOD accord

Tsoding 18 Dec 19, 2022
Extracting frames from video and create video using frames

Extracting frames from video and create video using frames This program uses opencv library to extract the frames from video and create video from ext

1 Nov 19, 2021
A Python extension that provides bindings to WebRTC M92

This project follows the W3C specification with some modifications and additions to make it work better with Python applications, with useful APIs like programmatic audio and video.

Il'ya 104 Dec 26, 2022
Python program - to extract slides from videos

Programa em Python - que fiz em algumas horas e que provavelmente tem bugs - para extrair slides de vídeos.

Natanael Antonioli 45 Nov 12, 2022
Python Script for Streaming YouTube Videos in VLC Media Player.

Short Description Use this Simple Script to stream YouTube Video to VLC

Sijey 6 May 27, 2021
Create a Video Membership app using FastAPI & NoSQL

Video Membership Create a Video Membership app using FastAPI & NoSQL. In this series, we're going to explore building a membership application using F

Coding For Entrepreneurs 69 Dec 25, 2022
Cvplayer - A simple video player written in python using ffpyplayer and OpenCV

Video Player cvplayer is a minimal wrapper around the ffpyplayer.MediaPlayer cla

ADI 7 Dec 19, 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
A free project by a normal kamenrider fan

DEMONS DRIVER Python + OpenCV demons.py采集原视频中led灯珠颜色,并将结果输出到output文件夹 Arduino + WS2812B 基于FastLED 实现DEMONS驱动器的led面板效果 项目未完成,持续更新中 --------------------

2 Nov 14, 2022
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
Script simples para baixar vídeos/áudios/playlist do YouTube

🔗 VilelaTube ▶️ Script simples para baixar vídeos/áudios/playlist do YouTube Requisitos • Como usar • Melhorias futuras ⚠️ Atenção! ⚠️ Lembre-se de a

João Victor Vilela dos Santos 2 Nov 03, 2021
A pure python media player that can be used in AI media API development.

A pure python media player that can be used in AI media API development.

YDOOK 1 Dec 04, 2021
LL-HLS implementation written in Python3

biim mpegts stream to Apple Low Latency HLS Feature mpegts demuxing in pure python3 (using asyncio) mpegts stream to fragmented ts use piping from ffm

もにょ~ん 15 Jan 03, 2023
A multithreaded view bot for YouTube

Simple program to increase YouTube views written in Python.

Monirul Shawon 906 Jan 09, 2023
MPV remote controller is a program for remote controlling mpv player with device in your local network through web browser.

MPV remote controller is a program for remote controlling mpv player with device in your local network through web browser.

5 May 26, 2022
MoviePy is a Python library for video editing, can read and write all the most common audio and video formats

MoviePy is a Python library for video editing: cutting, concatenations, title insertions, video compositing (a.k.a. non-linear editing), video processing, and creation of custom effects. See the gall

10k Jan 08, 2023