Настройка кода и папки для скачивания файлов видео

Настройка кода и папки для скачивания файлов

Чтобы настроить код и папку для скачивания видео, вам нужно выполнить несколько шагов:

1. Настройка папки для скачивания

  • Папка для скачивания создается автоматически, если её нет. По умолчанию, папка будет называться downloads.
  • Если вы хотите изменить имя папки для скачивания или путь к папке, просто измените значение переменной download_folder.

2. Настройка кода

Вот как можно настроить код для скачивания файлов и указания папки:

Изменение пути папки для скачивания

Если вы хотите изменить папку для скачивания на другую, достаточно указать нужный путь в переменной download_folder. Например:

  • Для скачивания в папку C:/Videos/Downloads, установите:
download_folder = "C:/Videos/Downloads"

Если папка содержит пробелы или специальные символы, они автоматически обработаются корректно, так как os.makedirs() будет создавать папку с учетом таких символов.

Изменение имени плейлиста

Плейлист, из которого будут скачиваться видео, можно изменить, подставив нужный URL. Например:

playlist_url = "https://rutube.ru/plst/261299/"

3. Пример настройки и использования кода

Полный пример с настройками:

import subprocess
import os
import json
import logging

# Настройка логирования
log_file = "download_videos.log"
logging.basicConfig(level=logging.DEBUG, 
                    format='%(asctime)s - %(levelname)s - %(message)s', 
                    handlers=[
                        logging.FileHandler(log_file),
                        logging.StreamHandler()
                    ])

# Устанавливаем ссылку на плейлист (замените на нужный URL плейлиста)
playlist_url = "https://rutube.ru/plst/261299/"

# Начальный номер для обратной нумерации
counter = 24

# Папка, в которую будут сохраняться скачанные видео
# Измените путь на нужный, если хотите другую папку для скачивания
download_folder = "C:/Videos/Downloads"  # Укажите путь вашей папки

# Проверка существования папки и её создание, если папка не существует
if not os.path.exists(download_folder):
    os.makedirs(download_folder)
    logging.info(f"Папка для скачивания создана: {download_folder}")
else:
    logging.info(f"Папка для скачивания уже существует: {download_folder}")

# Функция для скачивания видео из плейлиста
def download_video(url, output_name):
    logging.info(f"Запуск скачивания: {output_name}")
    command = [
        "yt-dlp",
        "-o", os.path.join(download_folder, output_name),
        url
    ]
    subprocess.run(command)
    logging.info(f"Видео скачано и сохранено как: {output_name}")

# Получаем список всех видео в плейлисте (ссылки на отдельные видео)
logging.info("Получение информации о видео из плейлиста...")
command = [
    "yt-dlp",
    "-j",  # выводит информацию в JSON-формате
    playlist_url
]
result = subprocess.run(command, capture_output=True, text=True)
if result.returncode != 0:
    logging.error(f"Ошибка при получении информации о видео: {result.stderr}")
    exit(1)

videos = result.stdout.strip().splitlines()

# Скачиваем и переименовываем каждый файл
logging.info(f"Начинаем скачивание {len(videos)} видео...")
for video_info in videos:
    try:
        video_data = json.loads(video_info)  # Парсим JSON
        video_url = video_data['url']  # Извлекаем URL видео
        video_title = video_data['title']  # Извлекаем название видео

        logging.info(f"Скачиваем видео: {video_title} ({video_url})")

        # Скачиваем видео с обычным именем
        download_video(video_url, f"{video_title}.%(ext)s")

        # Переименовываем файл с обратной нумерацией
        old_name = os.path.join(download_folder, f"{video_title}.mp4")  # Предположим, что формат .mp4
        new_name = os.path.join(download_folder, f"{counter:03d}_{video_title}.mp4")
        
        os.rename(old_name, new_name)
        logging.info(f"Переименован в: {new_name}")

        # Уменьшаем счётчик
        counter -= 1

    except Exception as e:
        logging.error(f"Ошибка при обработке видео: {str(e)}")

logging.info("Скачивание и переименование завершены!")

Разбор ключевых моментов:

  1. playlist_url:
    Укажите URL плейлиста, из которого хотите скачивать видео.
    Пример:
  • playlist_url = "https://rutube.ru/plst/261299/"
    
    
  • download_folder:
    Укажите папку для скачивания. Если она не существует, скрипт автоматически создаст её.
    Пример:
    1. download_folder = "C:/Videos/Downloads"  # Можете указать любой путь
      
      
    2. Логирование:
      Логи записываются в файл download_videos.log и выводятся в консоль, чтобы отслеживать процесс скачивания и возможные ошибки.
  • 4. Как запустить код:

    1. Установите все зависимости:
      В терминале выполните команду:
  • pip install yt-dlp
    
    
  • Подготовьте файл Python с кодом:
    • Скопируйте код в файл с расширением .py (например, download_videos.py).
  • Запустите код:
    В командной строке перейдите в папку, где находится ваш файл, и выполните:
    1. python download_videos.py
    2. Проверка результатов:
      • Логи будут записаны в файл download_videos.log.
      • Видео будут скачаны в папку, которую вы указали в download_folder, а их имена будут переименованы с добавлением обратной нумерации.

    Теперь вы можете легко настроить папку и путь для скачивания видео в коде, а также следить за процессом через лог-файл.

    ChatGPT может допускать ошибки. Рекомендуем проверять важную информацию.