Загрузка...
Upload YouTube Shorts automatically
  1. PowerDevil
    PowerDevil Topic starter Dec 21, 2024 12,836 Aug 27, 2022
    [IMG]
    [IMG]

    Resident PRIVATE Proxy от 0.049$ (Pia / ABC / 922 / 9) https://lolz.live/threads/6517233/

    *** 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

    [IMG]
    Далее просто переходим по нашему проекту.

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

    APIs & Services

    [IMG]
    И создаем API Сервис
    [IMG]
    Мы должны пролистать ниже и найти YouTube Data API v3
    [IMG]
    Как перешли мы должны включить его нажав на кнопку ENABLE (Это у нас займет некоторое время)

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

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

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

    [IMG]
    Выбираем 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

    [IMG]
    И у нас повялвется справа фильтры мы должны найти там
    ⁡https://www.googleapis.com/auth/youtube.upload


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

    [IMG]


    [IMG]
    Нажимаем на 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


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



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

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



    Дальше мы создаем папку где будет хранится наш скрипт

    Мы создаем там main.py и вписываем данный код

    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


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

    [IMG]
    Дальше в консоли с скриптом прописываем
    ⁡pip install google-api-python-client google-auth-oauthlib python-dotenv


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

    И все просто запускаем скрипт
    ⁡py main.py


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

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

    [IMG]
    [IMG]
    (название ролика берет с название файла)

    Всем удачного пролива и еще раз с наступающим​
     
    This article was useful for you?
    You can thank the author of the topic by transferring funds to your balance
    Thank the author
    1. View previous comments (6)
    2. Hollywood
      woxus, а она должна там быть?
    3. Vol4onokfg
      Hollywood, да, в следуйший раз перевиди ошибку на русский, и попробуй решить ее, либо у ИИ спроси
    4. HOFELE
      PowerDevil, а можно пожалуйста по подробнее про то как добавить тестеров?

Comments

Loading...
Top