Как стать автором
Обновить

Загрузка треков со Spotify с помощью питона

Время на прочтение2 мин
Количество просмотров12K

Здравствуйте, дорогие пользователи хабра! Сегодня я расскажу как используя python можно скачивать треки со спотифая. Основано это на загрузки видео с ютуба. Да-да мы будем искать песни на ютубе и качать их оттуда. Ссылка на GitHub с репозиторием и интересным бонусом в конце.

Пример работы
Пример работы

Подготовка

Так как мы будем писать на языке программирования python его сначала нужно установить. Сделать это можно на официальном сайте. После установки питона нам нужно установить необходимые библиотеки. Для этого в консоли пропишем такую команду: pip install spotipy youtubesearchpython youtube_dl. Также нам нужно установить ffmpeg. Как его установить вы можете найти в интернете.
Далее идем на эту страницу.

Панель spotify
Панель spotify

Нажимаем на кнопочку LOG IN и заходим через свой spotify аккаунт. Зашли? Создаем новое приложение нажав на кнопочку CREATE AN APP

Панель Spotify
Панель Spotify

Вводим любое название и описание. Создаем приложение нажав CREATE. После нажатия мы попадаем на страницу с информацией о приложении. Отсюда мы копируем Client ID и Client Secret. Записываем их куда-нибудь.

Пишем код

Для начала нам нужно импортировать библиотеки:
from __future__ import unicode_literals
import spotipy
from spotipy.oauth2 import SpotifyOAuth, SpotifyClientCredentials
from youtubesearchpython import VideosSearch
import youtube_dl

Добавляем переменные с нужными нам данными:
url = input("Введи ссылку на трек: ")
client_id = "" # Сюда вводим полученные данные из панели спотифая
secret = "" # Сюда вводим полученные данные из панели спотифая

Начнем писать код:
1. Подключаемся к спотифаю
auth_manager = SpotifyClientCredentials(client_id=client_id, client_secret=secret)
spotify = spotipy.Spotify(auth_manager=auth_manager)

2. Функция для получения информации
def music(result):
performers = ""
music = result['name']
for names in result["artists"]:
performers = performers + names["name"] + ", "
performers = performers.rstrip(", ")
video = search(music, performers)
name = f"{performers} - {music}"
print(name)
ydl_opts = {'format': 'bestaudio/best', 'postprocessors': [{'key': 'FFmpegExtractAudio', 'preferredcodec': 'mp3', 'preferredquality': '192',}], 'outtmpl': f'./{name}.webm'}
download(video, ydl_opts)
print("Готово!")

3. Функция для поиска трека
def search(music, performers):
  videosSearch = VideosSearch(f'{performers} - {music}', limit = 1)
  videoresult = videosSearch.result()["result"][0]["link"]
  return videoresult

4. Функция для загрузки трека
def download(videoresult, ydl_opts):
with youtube_dl.YoutubeDL(ydl_opts) as ydl:
ydl.download([videoresult])


5. Передаем ссылку и запускаем поиск.
result = spotify.track(url)
music(result)

Вот пример работы кода:

Пример работы
Пример работы

Трек появится в папке из которой вы запускали код.

Конец

Вот и подошла моя первая статейка к концу. Не забывайте что код и бонус есть в этом репозитории на гитхабе. Удачного использования!

Теги:
Хабы:
Всего голосов 6: ↑3 и ↓3+1
Комментарии11

Публикации

Истории

Работа

Python разработчик
119 вакансий
Data Scientist
79 вакансий

Ближайшие события

15 – 16 ноября
IT-конференция Merge Skolkovo
Москва
22 – 24 ноября
Хакатон «AgroCode Hack Genetics'24»
Онлайн
28 ноября
Конференция «TechRec: ITHR CAMPUS»
МоскваОнлайн
25 – 26 апреля
IT-конференция Merge Tatarstan 2025
Казань