Skip to content
This repository was archived by the owner on Dec 12, 2020. It is now read-only.
Open
Changes from 2 commits
Commits
Show all changes
26 commits
Select commit Hold shift + click to select a range
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
65 changes: 37 additions & 28 deletions YouTube Livestream Botter.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,12 +5,15 @@
import time
from queue import Queue
import platform
import re

import requests
from colorama import Fore, init
from flask import Flask, request


intro = """
███████╗████████╗██████╗ ███████╗ █████╗ ███╗ ███╗ ██████╗ ██████╗ ████████╗████████╗███████╗██████╗
███████╗████████╗██████╗ ███████╗ █████╗ ███╗ ███╗ ██████╗ ██████╗ ████████╗████████╗███████╗██████╗
██╔════╝╚══██╔══╝██╔══██╗██╔════╝██╔══██╗████╗ ████║ ██╔══██╗██╔═══██╗╚══██╔══╝╚══██╔══╝██╔════╝██╔══██╗
███████╗ ██║ ██████╔╝█████╗ ███████║██╔████╔██║█████╗██████╔╝██║ ██║ ██║ ██║ █████╗ ██████╔╝
╚════██║ ██║ ██╔══██╗██╔══╝ ██╔══██║██║╚██╔╝██║╚════╝██╔══██╗██║ ██║ ██║ ██║ ██╔══╝ ██╔══██╗
Expand All @@ -20,14 +23,17 @@

print(intro)

if platform.system() == "Windows": #checking OS
if platform.system() == "Windows": # checking OS
clear = "cls"
else:
clear = "clear"

token = input("ID?\n")
url= "https://m.youtube.com/watch?v=" + token
url2 = "https://s.youtube.com/api/stats/watchtime?ns=yt&el=detailpage&cpn=AiWtf2fjIwVS2MeQ&docid=" + token + "&ver=2&cmt=7926.045&ei=igGSXce3IM2NgAfasp-ABg&fmt=133&fs=0&rt=1096.007&of=L_224b5BokWsQ5UWgAws_w&euri&lact=2837&live=dvr&cl=271684942&state=playing&vm=CAEQABgEKhhJc0gwZ2w0QmFfbTBWSXlWNm9ITmRRPT0&volume=100&c=MWEB&cver=2.20190928.07.00&cplayer=UNIPLAYER&cbrand=apple&cbr=Safari%20Mobile&cbrver=12.1.15E148&cmodel=iphone&cos=iPhone&cosver=12_2&cplatform%20=MOBILE&delay=5&hl=ru_RU&cr=DE&rtn=1396&afmt=140&lio=1556394045.182&idpj=&ldpj=&rti=1096&muted=0&st=7626.045&et=7926.045 "
url = "https://m.youtube.com/watch?v=" + token
url2 = "https://s.youtube.com/api/stats/watchtime?ns=yt&el=detailpage&cpn=AiWtf2fjIwVS2MeQ&docid=" + token + \

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

+ \ will throw error, what is that

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If you want to add an \ at the end of the string you would need to do it like so: + "\" , but then doing this there is a possibility of it breaking the script when changing anything to the API call.

"&ver=2&cmt=7926.045&ei=igGSXce3IM2NgAfasp-ABg&fmt=133&fs=0&rt=1096.007&of=L_224b5BokWsQ5UWgAws_w&euri&lact=2837&live=dvr&cl=271684942&state=playing&vm=CAEQABgEKhhJc0gwZ2w0QmFfbTBWSXlWNm9ITmRRPT0&volume=100&c=MWEB&cver=2.20190928.07.00&cplayer=UNIPLAYER&cbrand=apple&cbr=Safari%20Mobile&cbrver=12.1.15E148&cmodel=iphone&cos=iPhone&cosver=12_2&cplatform%20=MOBILE&delay=5&hl=ru_RU&cr=DE&rtn=1396&afmt=140&lio=1556394045.182&idpj=&ldpj=&rti=1096&muted=0&st=7626.045&et=7926.045 "


class main(object):
def __init__(self):
self.combolist = Queue()
Expand All @@ -36,75 +42,78 @@ def __init__(self):
self.botted = 0
self.combolen = self.combolist.qsize()

def printservice(self): #print screen
def printservice(self): # print screen
while True:
if True:
os.system(clear)
print(Fore.LIGHTCYAN_EX + intro + Fore.LIGHTMAGENTA_EX)
print(
Fore.LIGHTCYAN_EX + f"Botted:{self.botted}\n")
print(Fore.LIGHTCYAN_EX + f"Botted: {self.botted}")
for i in range(len(self.printing) - 10, len(self.printing)):
try:
print(self.printing[i])
except (ValueError, Exception):
pass
time.sleep(0.5)


a = main()


class proxy():

def update(self):
while True:
url = "https://api.proxyscrape.com/?request=getproxies&proxytype=http&timeout=10000&ssl=yes"
url = "https://api.proxyscrape.com/?request=getproxies&proxytype=http&timeout=1000&ssl=yes"

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

what's the point of setting the proxy response time to 1000 milliseconds?

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If you set it too low, there is a chance of not getting any proxies at all. Because they are free proxies, they often don't have the best Quality, so you just take whatever proxies you can get your hands on.

r = requests.get(url)
self.splited = r.text.split("\r\n") #scraping and splitting proxies
self.splited = r.text.split("\r\n") # scraping and splitting proxies
time.sleep(600)

def get_proxy(self):
random1 = random.choice(self.splited) #choose a random proxie
random1 = random.choice(self.splited) # choose a random proxie
return random1

def FormatProxy(self):
proxyOutput = {'https':self.get_proxy()}
return proxyOutput
proxyOutput = {'https': self.get_proxy()}
return proxyOutput

def __init__(self):
self.splited = []
threading.Thread(target=self.update).start()
time.sleep(3)


proxy1 = proxy()
def bot():
while True:



def bot():
while True:

headers={
"Host": "m.youtube.com",
"Accept-Encoding": "gzip, deflate",
"User-Agent": "Mozilla/5.0 (iPhone; CPU iPhone OS 12_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/12.1 Mobile/15E148 Safari/604.1",
"Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,/;q=0.8",
"Accept-Language": "ru-RU,ru;q=0.9,en-US;q=0.8,en;q=0.7",
"Connection": "close"
headers = {
"Host": "m.youtube.com",
"Accept-Encoding": "gzip, deflate",
"User-Agent": "Mozilla/5.0 (iPhone; CPU iPhone OS 12_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/12.1 Mobile/15E148 Safari/604.1",
"Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,/;q=0.8",
"Accept-Language": "ru-RU,ru;q=0.9,en-US;q=0.8,en;q=0.7",
"Connection": "close"
}

try:
s = requests.session()
s.get(url,headers=headers,proxies=proxy1.FormatProxy()) #stream request
s.get(url2,headers=headers,proxies=proxy1.FormatProxy()) #api request
s.get(url, headers=headers, proxies=proxy1.FormatProxy()) # stream request
s.get(url2, headers=headers,proxies=proxy1.FormatProxy()) # api request

a.botted += 1
except:
pass



maxthreads = int(input("How many Threads? Recommended: 500 - 1000\n"))

threading.Thread(target=a.printservice).start()

num = 0
while num < maxthreads :
while num < maxthreads:
num += 1
threading.Thread(target=bot).start()


threading.Thread(target=bot).start()