Сегодня я расскажу как используя python можно скачивать треки со спотифая. Основано это на загрузки видео с ютуба. Да-да мы будем искать песни на ютубе и качать их оттуда. Ссылка на GitHub с репозиторием и интересным бонусом в конце.
Пример работы
Далее идем на эту страницу.
Панель spotify
Нажимаем на кнопочку LOG IN и заходим через свой spotify аккаунт. Зашли? Создаем новое приложение нажав на кнопочку CREATE AN APP
Панель 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)
Вот пример работы кода:
Пример работы
Трек появится в папке из которой вы запускали код.
habr.com
![Пример работы Пример работы](https://habrastorage.org/r/w1560/getpro/habr/upload_files/fb7/a9c/cca/fb7a9cccaae483826a85a7dbb10ae91e.png)
Подготовка
Так как мы будем писать на языке программирования python его сначала нужно установить. Сделать это можно на официальном сайте. После установки питона нам нужно установить необходимые библиотеки. Для этого в консоли пропишем такую команду: pip install spotipy youtubesearchpython youtube_dl. Также нам нужно установить ffmpeg. Как его установить вы можете найти в интернете.Далее идем на эту страницу.
![Панель spotify Панель spotify](https://habrastorage.org/r/w1560/getpro/habr/upload_files/147/547/54f/14754754fd79b49736d07b23d7a89e93.png)
Нажимаем на кнопочку LOG IN и заходим через свой spotify аккаунт. Зашли? Создаем новое приложение нажав на кнопочку CREATE AN APP
![Панель Spotify Панель Spotify](https://habrastorage.org/r/w1560/getpro/habr/upload_files/f38/e36/5fb/f38e365fb9fb908021672acc069f5bf6.png)
Вводим любое название и описание. Создаем приложение нажав CREATE. После нажатия мы попадаем на страницу с информацией о приложении. Отсюда мы копируем Client ID и Client Secret. Записываем их куда-нибудь.
![2ebc024d412899fdc3082192137cac83.png](https://habrastorage.org/r/w1560/getpro/habr/upload_files/2eb/c02/4d4/2ebc024d412899fdc3082192137cac83.png)
Пишем код
Для начала нам нужно импортировать библиотеки: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)
Вот пример работы кода:
![Пример работы Пример работы](https://habrastorage.org/r/w1560/getpro/habr/upload_files/fb7/a9c/cca/fb7a9cccaae483826a85a7dbb10ae91e.png)
Пример работы
Трек появится в папке из которой вы запускали код.
Загрузка треков со Spotify с помощью питона
Здравствуйте, дорогие пользователи хабра! Сегодня я расскажу как используя python можно скачивать треки со спотифая. Основано это на загрузки видео с ютуба. Да-да мы будем искать песни на ютубе и...
![habr.com](https://assets.habr.com/habr-web/img/favicons/favicon-16.png)