• [ Регистрация ]Открытая и бесплатная
  • Tg admin@ALPHV_Admin (обязательно подтверждение в ЛС форума)

Статья Заливаем Ютуб Shorts автоматически

stihl

Moderator
Регистрация
09.02.2012
Сообщения
639
Розыгрыши
0
Реакции
373
Deposit
0.228 BTC
stihl не предоставил(а) никакой дополнительной информации.
Для просмотра ссылки Войди или Зарегистрируйся
Для просмотра ссылки Войди или Зарегистрируйся

Resident PRIVATE [tooltip=151]Proxy[/tooltip] от 0.049$ (Pia / ABC / 922 / 9) Для просмотра ссылки Войди или Зарегистрируйся

[tooltip=419]VPN[/tooltip] Configs (WireGuard / Outline / Vless)
Для просмотра ссылки Войди или Зарегистрируйся


IPv4 [tooltip=151]Proxy[/tooltip] (Socks5 / HTTPS)
Для просмотра ссылки Войди или Зарегистрируйся

Аренда +888
Для просмотра ссылки Войди или Зарегистрируйся

Для просмотра ссылки Войди или Зарегистрируйся
Всех с наступающим 2025 годом

И хочу поделится как можно заливать на ютуб видео автоматически

------------------------------------------------------------------------------------------------------

У нас будет разделен гайд на несколько частей, а именно получение API ключа и залива ютуб.


===============================================================================================

1. Мы переходим в Google Developers Console


Переходим по Для просмотра ссылки Войди или Зарегистрируйся


И если у вас нет проектов, мы создаем его, нажимая на кнопку Select a project слева сверху.

После открывается у нас окно и нажимаем на New Project и называем наш проект как хотим и ожидаем пока создается у нас наш проект

Далее переходим снова на Select a project

7acd1592-026f-4d31-8ae8-b5eb6f062234.webp
Далее просто переходим по нашему проекту.

Сейчас мы должны включить сам апи ютуба мы переходим в

APIs & Services

b5665185-6974-4c95-8bbb-5c06c1bde24e.webp
И создаем API Сервис
2163726a-4dfa-47b8-b3af-243645814044.webp
Мы должны пролистать ниже и найти YouTube Data API v3
e980376e-b808-4561-b9fa-26ef42625d21.webp
Как перешли мы должны включить его нажав на кнопку ENABLE (Это у нас займет некоторое время)

2. Создание учетных данных

Переходим в раздел
Credentials

И нажимаем на Create credentials

33a0bca8-d3ee-487b-916e-745682c320f2.webp
Выбираем OAuth client ID

Настройка согласия (OAuth consent screen)

1. Выбираем External

2. Дальше нас требует указать App name и User [tooltip=651]Support[/tooltip] email и Developer contact information (указываем свой)


3. Нажимаем Save AND Continue

=====================================================================

В Scopes Мы должны включить наш YouTube Shorts

По этому мы нажимаем на Add OR Remove Scopes

f56ccca4-f07f-4de9-8b42-7d85f6564ba3.webp
И у нас повялвется справа фильтры мы должны найти там [srci]⁡Для просмотра ссылки Войди или Зарегистрируйся

Для этого мы в поиске вписываем youtube.upload и у нас выходит YouTube Data API v3

e395e341-b530-48a0-b211-efca58d95755.webp



8721378b-678d-405a-ab83-ff45df46ea1c.webp
Нажимаем на UPDATE

И уже в Scopes Мы снова нажимаем на Save And Continue


Далше в Test User мы тут просто скипаем так же Save And Continue

В Summary в нажимаем на BackToDashBoard

3. ПОлучение Json

[tooltip=888]3.1[/tooltip] Мы переходим снова в credentials

нажимаем на
Create Credentials

[tooltip=828]3.2[/tooltip] Выбераем Create OAuth client ID

[tooltip=829]3.3[/tooltip] выбераем в нем "Desktop application"

[tooltip=830]3.4[/tooltip] Нажимаем на Create

[tooltip=831]3.5[/tooltip] Нажимаем на Download JSON

Все мы успешно получили JSON



----------------------------------------------------------------------------------------------------




4. Залив На >>Yotube Shorts<<

4.1 Для начала нам потеруется установить [tooltip=894]Python[/tooltip] думаю у всех он есть а если нету то не составит труда вам его скачать



Дальше мы создаем папку где будет хранится наш [tooltip=926]скрипт[/tooltip]

Мы создаем там [unfurl="https://main.py"]main.py[/unfurl] и вписываем данный код

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 и вписываем [srci]⁡VIDEOS_FOLDER= тут укзаываем путь[/srci] ⁡ где хранятся у нас видео

У меня хранится в E:\statia значит будет так [srci]⁡VIDEOS_FOLDER=E:\statia[/srci] ⁡

видео должны хранится там

bfa69bc5-ba6e-476e-98ee-dbf5f78b1536.webp
Дальше в консоли с скриптом прописываем [srci]⁡pip install google-api-python-client google-auth-oauthlib python-dotenv[/srci] ⁡

Эту команду вписываем только 1 раз

И все просто запускаем [tooltip=926]скрипт[/tooltip] [srci]⁡py main.py[/srci] ⁡

( нас потребует авторизоваться в браузере 1 раз (указываем свой канал) )

у вас на экране появится в браузере что успешно и смотрите в свою консоль видео начали загружаться


9245bb9d-344f-4833-b134-75a23097facf.webp
ee49af44-f7ea-4ac5-bbfc-b5497b0d6264.webp
(название ролика берет с название файла)

Всем удачного пролива и еще раз с наступающим​
 
Activity
So far there's no one here
Сверху Снизу