
Resident PRIVATE Proxy от 0.049$ (Pia / ABC / 922 / 9) https://lolz.live/threads/6517233/
VPN Configs (WireGuard / Outline / Vless)
https://lolz.live/threads/6751972/
IPv4 Proxy (Socks5 / HTTPS)
https://lolz.live/threads/6946368/
Аренда +888
https://lolz.live/threads/7800339/
t.me/snegirshop_bot
Всех с наступающим 2025 годом
И хочу поделится как можно заливать на ютуб видео автоматически
------------------------------------------------------------------------------------------------------
У нас будет разделен гайд на несколько частей, а именно получение API ключа и залива ютуб.
===============================================================================================
1. Мы переходим в Google Developers Console
Переходим по ссылке на Google Developers Console
И если у вас нет проектов, мы создаем его, нажимая на кнопку Select a project слева сверху.
После открывается у нас окно и нажимаем на New Project и называем наш проект как хотим и ожидаем пока создается у нас наш проект
Далее переходим снова на Select a project
И хочу поделится как можно заливать на ютуб видео автоматически
------------------------------------------------------------------------------------------------------
У нас будет разделен гайд на несколько частей, а именно получение API ключа и залива ютуб.
===============================================================================================
1. Мы переходим в Google Developers Console
Переходим по ссылке на Google Developers Console
И если у вас нет проектов, мы создаем его, нажимая на кнопку Select a project слева сверху.
После открывается у нас окно и нажимаем на New Project и называем наш проект как хотим и ожидаем пока создается у нас наш проект
Далее переходим снова на Select a project
Далее просто переходим по нашему проекту.
Сейчас мы должны включить сам апи ютуба мы переходим в
APIs & Services
Сейчас мы должны включить сам апи ютуба мы переходим в
APIs & Services
И создаем API Сервис
Мы должны пролистать ниже и найти YouTube Data API v3
Как перешли мы должны включить его нажав на кнопку ENABLE (Это у нас займет некоторое время)
2. Создание учетных данных
Переходим в раздел Credentials
И нажимаем на Create credentials
2. Создание учетных данных
Переходим в раздел Credentials
И нажимаем на Create credentials
Выбираем OAuth client ID
Настройка согласия (OAuth consent screen)
1. Выбираем External
2. Дальше нас требует указать App name и User Support email и Developer contact information (указываем свой)
3. Нажимаем Save AND Continue
=====================================================================
В Scopes Мы должны включить наш YouTube Shorts
По этому мы нажимаем на Add OR Remove Scopes
Настройка согласия (OAuth consent screen)
1. Выбираем External
2. Дальше нас требует указать App name и User Support email и Developer contact information (указываем свой)
3. Нажимаем Save AND Continue
=====================================================================
В Scopes Мы должны включить наш YouTube Shorts
По этому мы нажимаем на Add OR Remove Scopes
И у нас повялвется справа фильтры мы должны найти там
https://www.googleapis.com/auth/youtube.upload
Для этого мы в поиске вписываем youtube.upload и у нас выходит YouTube Data API v3
https://www.googleapis.com/auth/youtube.upload
Для этого мы в поиске вписываем youtube.upload и у нас выходит YouTube Data API v3
Нажимаем на UPDATE
И уже в Scopes Мы снова нажимаем на Save And Continue
Далше в Test User мы тут просто скипаем так же Save And Continue
В Summary в нажимаем на BackToDashBoard
3. ПОлучение Json
3.1 Мы переходим снова в credentials
нажимаем на Create Credentials
3.2 Выбераем Create OAuth client ID
3.3 выбераем в нем "Desktop application"
3.4 Нажимаем на Create
3.5 Нажимаем на Download JSON
Все мы успешно получили JSON
И уже в Scopes Мы снова нажимаем на Save And Continue
Далше в Test User мы тут просто скипаем так же Save And Continue
В Summary в нажимаем на BackToDashBoard
3. ПОлучение Json
3.1 Мы переходим снова в credentials
нажимаем на Create Credentials
3.2 Выбераем Create OAuth client ID
3.3 выбераем в нем "Desktop application"
3.4 Нажимаем на Create
3.5 Нажимаем на Download JSON
Все мы успешно получили JSON
----------------------------------------------------------------------------------------------------
4. Залив На >>Yotube Shorts<<
4.1 Для начала нам потеруется установить Python думаю у всех он есть а если нету то не составит труда вам его скачать
Дальше мы создаем папку где будет хранится наш скрипт
Мы создаем там main.py и вписываем данный код
4. Залив На >>Yotube Shorts<<
4.1 Для начала нам потеруется установить Python думаю у всех он есть а если нету то не составит труда вам его скачать
Дальше мы создаем папку где будет хранится наш скрипт
Мы создаем там main.py и вписываем данный код
from os import getenv, path, listdir
import json
import google_auth_oauthlib.flow
import googleapiclient.discovery
import googleapiclient.errors
from googleapiclient.http import MediaFileUpload
from dotenv import load_dotenv
load_dotenv()
def find_credentials_file():
script_dir = path.dirname(path.abspath(__file__))
for file in listdir(script_dir):
if file.endswith('.json'):
file_path = path.join(script_dir, file)
try:
with open(file_path, 'r') as f:
data = json.load(f)
if 'installed' in data or 'web' in data:
return file_path
except json.JSONDecodeError:
continue
raise FileNotFoundError('Не найден JSON файл с учетными данными OAuth в директории скрипта')
CLIENT_SECRETS_FILE = find_credentials_file()
VIDEOS_FOLDER = getenv('VIDEOS_FOLDER', 'videos')
class YouTubeShortsUploader:
def __init__(self, client_secrets_file, videos_folder):
self.videos_folder = videos_folder
self.scopes = ["https://www.googleapis.com/auth/youtube.upload"]
flow = google_auth_oauthlib.flow.InstalledAppFlow.from_client_secrets_file(
client_secrets_file, self.scopes)
credentials = flow.run_local_server(port=0)
self.youtube = googleapiclient.discovery.build(
"youtube", "v3", credentials=credentials)
def get_video_details(self, video_path):
title = path.splitext(path.basename(video_path))[0]
description = "Uploaded"
return title, description
def upload_short(self, video_path):
try:
title, description = self.get_video_details(video_path)
body = {
'snippet': {
'title': title,
'description': description,
'categoryId': '22'
},
'status': {
'privacyStatus': 'public'
}
}
media = MediaFileUpload(
video_path,
resumable=True,
chunksize=1024*1024
)
request = self.youtube.videos().insert(
part=",".join(body.keys()),
body=body,
media_body=media
)
response = request.execute()
print(f"Видео {title} успешно загружено. ID: [URL='https://www.youtube.com/shorts/{response['id']}']https://www.youtube.com/shorts/{response['id']}")[/URL]
return response['id']
except googleapiclient.errors.HttpError as e:
print(f"Ошибка при загрузке видео {video_path}: {e}")
return None
def upload_all_shorts(self):
video_extensions = ['.mp4', '.mov', '.avi', '.mkv']
for filename in listdir(self.videos_folder):
if any(filename.lower().endswith(ext) for ext in video_extensions):
video_path = path.join(self.videos_folder, filename)
self.upload_short(video_path)
def main():
uploader = YouTubeShortsUploader(CLIENT_SECRETS_FILE, VIDEOS_FOLDER)
uploader.upload_all_shorts()
if __name__ == "__main__":
main()
Python
import json
import google_auth_oauthlib.flow
import googleapiclient.discovery
import googleapiclient.errors
from googleapiclient.http import MediaFileUpload
from dotenv import load_dotenv
load_dotenv()
def find_credentials_file():
script_dir = path.dirname(path.abspath(__file__))
for file in listdir(script_dir):
if file.endswith('.json'):
file_path = path.join(script_dir, file)
try:
with open(file_path, 'r') as f:
data = json.load(f)
if 'installed' in data or 'web' in data:
return file_path
except json.JSONDecodeError:
continue
raise FileNotFoundError('Не найден JSON файл с учетными данными OAuth в директории скрипта')
CLIENT_SECRETS_FILE = find_credentials_file()
VIDEOS_FOLDER = getenv('VIDEOS_FOLDER', 'videos')
class YouTubeShortsUploader:
def __init__(self, client_secrets_file, videos_folder):
self.videos_folder = videos_folder
self.scopes = ["https://www.googleapis.com/auth/youtube.upload"]
flow = google_auth_oauthlib.flow.InstalledAppFlow.from_client_secrets_file(
client_secrets_file, self.scopes)
credentials = flow.run_local_server(port=0)
self.youtube = googleapiclient.discovery.build(
"youtube", "v3", credentials=credentials)
def get_video_details(self, video_path):
title = path.splitext(path.basename(video_path))[0]
description = "Uploaded"
return title, description
def upload_short(self, video_path):
try:
title, description = self.get_video_details(video_path)
body = {
'snippet': {
'title': title,
'description': description,
'categoryId': '22'
},
'status': {
'privacyStatus': 'public'
}
}
media = MediaFileUpload(
video_path,
resumable=True,
chunksize=1024*1024
)
request = self.youtube.videos().insert(
part=",".join(body.keys()),
body=body,
media_body=media
)
response = request.execute()
print(f"Видео {title} успешно загружено. ID: [URL='https://www.youtube.com/shorts/{response['id']}']https://www.youtube.com/shorts/{response['id']}")[/URL]
return response['id']
except googleapiclient.errors.HttpError as e:
print(f"Ошибка при загрузке видео {video_path}: {e}")
return None
def upload_all_shorts(self):
video_extensions = ['.mp4', '.mov', '.avi', '.mkv']
for filename in listdir(self.videos_folder):
if any(filename.lower().endswith(ext) for ext in video_extensions):
video_path = path.join(self.videos_folder, filename)
self.upload_short(video_path)
def main():
uploader = YouTubeShortsUploader(CLIENT_SECRETS_FILE, VIDEOS_FOLDER)
uploader.upload_all_shorts()
if __name__ == "__main__":
main()
Python
Код:
from os import getenv, path, listdir
import json
import google_auth_oauthlib.flow
import googleapiclient.discovery
import googleapiclient.errors
from googleapiclient.http import MediaFileUpload
from dotenv import load_dotenv
load_dotenv()
def find_credentials_file():
script_dir = path.dirname(path.abspath(__file__))
for file in listdir(script_dir):
if file.endswith('.json'):
file_path = path.join(script_dir, file)
try:
with open(file_path, 'r') as f:
data = json.load(f)
if 'installed' in data or 'web' in data:
return file_path
except json.JSONDecodeError:
continue
raise FileNotFoundError('Не найден JSON файл с учетными данными OAuth в директории скрипта')
CLIENT_SECRETS_FILE = find_credentials_file()
VIDEOS_FOLDER = getenv('VIDEOS_FOLDER', 'videos')
class YouTubeShortsUploader:
def __init__(self, client_secrets_file, videos_folder):
self.videos_folder = videos_folder
self.scopes = ["https://www.googleapis.com/auth/youtube.upload"]
flow = google_auth_oauthlib.flow.InstalledAppFlow.from_client_secrets_file(
client_secrets_file, self.scopes)
credentials = flow.run_local_server(port=0)
self.youtube = googleapiclient.discovery.build(
"youtube", "v3", credentials=credentials)
def get_video_details(self, video_path):
title = path.splitext(path.basename(video_path))[0]
description = "Uploaded"
return title, description
def upload_short(self, video_path):
try:
title, description = self.get_video_details(video_path)
body = {
'snippet': {
'title': title,
'description': description,
'categoryId': '22'
},
'status': {
'privacyStatus': 'public'
}
}
media = MediaFileUpload(
video_path,
resumable=True,
chunksize=1024*1024
)
request = self.youtube.videos().insert(
part=",".join(body.keys()),
body=body,
media_body=media
)
response = request.execute()
print(f"Видео {title} успешно загружено. ID: [URL='https://www.youtube.com/shorts/{response['id']}']https://www.youtube.com/shorts/{response['id']}")[/URL]
return response['id']
except googleapiclient.errors.HttpError as e:
print(f"Ошибка при загрузке видео {video_path}: {e}")
return None
def upload_all_shorts(self):
video_extensions = ['.mp4', '.mov', '.avi', '.mkv']
for filename in listdir(self.videos_folder):
if any(filename.lower().endswith(ext) for ext in video_extensions):
video_path = path.join(self.videos_folder, filename)
self.upload_short(video_path)
def main():
uploader = YouTubeShortsUploader(CLIENT_SECRETS_FILE, VIDEOS_FOLDER)
uploader.upload_all_shorts()
if __name__ == "__main__":
main()
и рядом с скриптом закидываем наш json файл
И создаем файйл .env и вписываем
VIDEOS_FOLDER= тут укзаываем путь
где хранятся у нас видео
У меня хранится в E:\statia значит будет так
VIDEOS_FOLDER=E:\statia
видео должны хранится там
И создаем файйл .env и вписываем
VIDEOS_FOLDER= тут укзаываем путь
где хранятся у нас видео
У меня хранится в E:\statia значит будет так
VIDEOS_FOLDER=E:\statia
видео должны хранится там
Дальше в консоли с скриптом прописываем
pip install google-api-python-client google-auth-oauthlib python-dotenv
Эту команду вписываем только 1 раз
И все просто запускаем скрипт
py main.py
( нас потребует авторизоваться в браузере 1 раз (указываем свой канал) )
у вас на экране появится в браузере что успешно и смотрите в свою консоль видео начали загружаться
pip install google-api-python-client google-auth-oauthlib python-dotenv
Эту команду вписываем только 1 раз
И все просто запускаем скрипт
py main.py
( нас потребует авторизоваться в браузере 1 раз (указываем свой канал) )
у вас на экране появится в браузере что успешно и смотрите в свою консоль видео начали загружаться
(название ролика берет с название файла)
Всем удачного пролива и еще раз с наступающим
Всем удачного пролива и еще раз с наступающим











Комментарии 0