Пошаговое руководство по установке Python, настройке проекта и запуску скрипта для переноса YouTube-плейлиста в Spotify. Попробуйте прямо сейчас!
В этой главе мы наконец перейдём от теории к практике: установим Python, создадим папку проекта, настроим всё необходимое и запустим скрипт. К концу статьи у вас будет рабочий плейлист в Spotify, наполненный треками из YouTube. Поехали!
Python — язык, на котором написан наш скрипт. Если он уже установлен, переходите к шагу 2.
Windows
Перейдите на python.org/downloads и нажмите большую жёлтую кнопку Download Python. Запустите установщик. Важно: на первом экране установщика обязательно отметьте галочку Add Python to PATH (она внизу, её легко пропустить). Если пропустите, Python не будет работать из командной строки, и вы потратите час на поиск проблемы. После этого просто нажимайте «Далее» и завершите установку.
Mac
На Mac часто предустановлена старая версия Python. Лучший способ — скачать установщик с python.org/downloads для Mac и запустить его. Следуйте стандартным инструкциям.
Linux
Скорее всего, Python уже установлен. Откройте терминал и выполните:
python3 --version
Если видите номер версии — отлично. Если нет, установите:
sudo apt install python3
Проверка установки
Откройте терминал (в Windows — «Командная строка» или PowerShell) и введите:
python --version
Должно появиться что-то вроде Python 3.12.4. Любая версия Python 3 подойдёт. Если видите Python 2.x.x, попробуйте python3 --version и используйте python3 во всех командах этой статьи.
Создайте папку с названием youtube-to-spotify. Внутри неё должны быть четыре файла:
youtube-to-spotify/
├── spotify.py
├── youtube.py
├── script.py
└── .env
Первые три файла можно скачать из репозитория на GitHub (ссылка на репозиторий). Файл .env создайте сами: просто текстовый файл с именем .env (без расширений) и заполните его данными из предыдущих глав:
CLIENT_ID=ваш_spotify_client_id
CLIENT_SECRET=ваш_spotify_client_secret
REFRESH_TOKEN=ваш_spotify_refresh_token
SPOTIFY_PLAYLIST_ID=ваш_spotify_playlist_id
API_KEY=ваш_youtube_api_key
YOUTUBE_PLAYLIST_ID=PLGBuKfnErZlAkaUUy57-mR97f8SBgMNHh
Сохраните файл. Не делитесь им и не загружайте на GitHub — в следующей главе мы научимся это делать безопасно.
Для Windows: Проводник иногда добавляет расширение .txt без спроса, превращая .env в .env.txt. Проверьте: откройте папку, включите отображение расширений файлов (вкладка «Вид» → «Показывать расширения файлов»). Если файл называется .env.txt, переименуйте его, убрав .txt.
Все команды нужно выполнять из папки youtube-to-spotify.
cmd и нажмите Enter. Откроется командная строка, уже указывающая на вашу папку.cd (с пробелом) и перетащите папку.cd.Проверьте, что вы в нужной папке: выполните ls (на Windows — dir). Вы должны увидеть четыре файла.
Виртуальное окружение — изолированная среда для зависимостей проекта. Оно нужно, чтобы пакеты, установленные для этого проекта, не конфликтовали с другими. Создаётся один раз на проект:
python -m venv venv
Эта команда создаёт папку venv внутри проекта. Теперь активируем её:
venv\Scripts\activatesource venv/bin/activateВ начале строки приглашения появится (venv) — значит, окружение активно. Каждый раз, возвращаясь к проекту, нужно повторять активацию.
Наш проект использует несколько внешних библиотек. Они перечислены в файле requirements.txt (тоже в репозитории). Убедитесь, что виртуальное окружение активно, и выполните:
pip install -r requirements.txt
Вы увидите, как pip скачивает и устанавливает пакеты. Это займёт минуту-другую. Когда процесс завершится, можно продолжать.
Основные устанавливаемые пакеты:
google-api-python-client — для работы с YouTube APIrequests — для HTTP-запросов к Spotify APIpython-dotenv — для чтения файла .envВот он, главный момент. Убедитесь, что виртуальное окружение активно (видите (venv)), и выполните:
python script.py
Скрипт начнёт работу. Первые строки вывода:
Получаю плейлист YouTube...
Найдено 150 видео в YouTube.
Затем начнётся поиск треков один за другим:
Ищется: Stayin Alive Bee Gees
1. Найдено: Stayin' Alive - Bee Gees
Ищется: Dancing Queen ABBA
2. Найдено: Dancing Queen - ABBA
...
Ищется: Some Obscure B-Side Title
5. Не найдено: Some Obscure B-Side Title - Artist Name
Скрипт переберёт все 150 треков. Большинство будет найдено, некоторые — нет (обычно из-за отсутствия на Spotify или необычного названия). Это нормально. В конце появится сводка:
Добавляю 143 новых трека...
Готово: добавлено 143 трека.
Сортирую плейлист в порядке YouTube...
Готово: отсортировано 143 трека.
--- Готово ---
Видео в YouTube: 150
Найдено на Spotify: 143
Не найдено: 7
Добавлено: 143
Удалено: 0
Откройте Spotify. Ваш плейлист там, заполненный треками в том же порядке, что и на YouTube. Всё произошло автоматически, без единого клика мышью.
.env отсутствует, лежит не в той папке или назван неправильно (проверьте .env.txt на Windows). Он должен быть в той же папке, что и script.py.CLIENT_ID, CLIENT_SECRET или REFRESH_TOKEN. Вернитесь к главе 2 и проверьте значения.API_KEY или API не включён в проекте Google Cloud. Проверьте главу 3.YOUTUBE_PLAYLIST_ID или плейлист закрыт. ID должен точно совпадать с тем, что в URL плейлиста.SPOTIFY_PLAYLIST_ID и убедитесь, что в Spotify приложении указаны scope playlist-modify-public и playlist-modify-private (мы это делали в главе 2).Запускать скрипт вручную — здорово, но ещё лучше настроить его автоматический запуск каждый день без вашего участия. В следующей главе мы загрузим код на GitHub и настроим GitHub Action, который будет выполнять скрипт по расписанию — ежедневно, бесплатно и навсегда.
Хочешь закрепить знания на практике?
Решай задачи на Algolit — интерактивная платформа для обучения
Начать бесплатно →