Сегодня я расскажу как используя 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)
Вот пример работы кода:
Пример работы
Трек появится в папке из которой вы запускали код.
Подготовка
Так как мы будем писать на языке программирования python его сначала нужно установить. Сделать это можно на официальном сайте. После установки питона нам нужно установить необходимые библиотеки. Для этого в консоли пропишем такую команду: pip install spotipy youtubesearchpython youtube_dl. Также нам нужно установить ffmpeg. Как его установить вы можете найти в интернете.Далее идем на эту страницу.
Нажимаем на кнопочку LOG IN и заходим через свой spotify аккаунт. Зашли? Создаем новое приложение нажав на кнопочку CREATE AN APP
Вводим любое название и описание. Создаем приложение нажав 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)
Вот пример работы кода:
Пример работы
Трек появится в папке из которой вы запускали код.
Загрузка треков со Spotify с помощью питона
Здравствуйте, дорогие пользователи хабра! Сегодня я расскажу как используя python можно скачивать треки со спотифая. Основано это на загрузки видео с ютуба. Да-да мы будем искать песни на ютубе и...
habr.com