وب سایت دانلود موسیقی خود را بسازید

چگونه سایت دانلود موسیقی خود را ساختم
ایجاد سایت دانلودر موزیک من یک سفر هیجان انگیز و آموزشی بود. من از Spotify API و Pytube استفاده کردم تا یک تجربه یکپارچه را برای کاربرانی که می خواهند موسیقی را کشف و دانلود کنند ایجاد کنم. در اینجا شرح مفصلی از چگونگی دستیابی من به این هدف ارائه شده است.
توسعه Backend
- یکپارچه سازی Spotify API
اولین قدم ادغام Spotify API برای واکشی آهنگ ها و پیش نمایش موسیقی بود. راه اندازی کامپوننت Spotify ساده بود:
- برنامه خود را ثبت کنید: در داشبورد توسعه دهنده Spotify ثبت نام کنید و یک برنامه جدید برای دریافت اعتبار API خود ایجاد کنید.
- دریافت نشانه دسترسی: از اعتبارنامه ها برای درخواست رمز دسترسی استفاده کنید. این توکن درخواست های API شما را احراز هویت می کند.
- واکشی آهنگها: از نشانه دسترسی برای جستجو در Spotify API و واکشی آهنگها بر اساس ورودیهای جستجوی کاربر استفاده کنید. API غنی Spotify اطلاعات دقیقی از جمله پیشنمایش آهنگ، آلبوم هنری و پیوندهایی به Spotify ارائه میکند.
در اینجا یک قطعه کد سریع وجود دارد که چگونه می توانید به این هدف برسید:
پایتون
import requests
# Define the API endpoint and access token
SPOTIFY_API_URL = 'https://api.spotify.com/v1/search'
access_token = 'YOUR_ACCESS_TOKEN'
def search_spotify(query):
headers = {
'Authorization': f'Bearer {access_token}'
}
params = {
'q': query,
'type': 'track'
}
response = requests.get(SPOTIFY_API_URL, headers=headers, params=params)
return response.json()
- ایجاد نقطه پایانی API
هنگامی که داده ها را از Spotify دریافت کردم، یک نقطه پایانی با استفاده از Flask ایجاد کردم تا این داده ها را به frontend خود ارائه دهم:
پایتون
from flask import Flask, request, jsonify
app = Flask(__name__)
@app.route("https://dev.to/search", methods=['GET'])
def search():
query = request.args.get('query')
results = search_spotify(query)
return jsonify(results)
if __name__ == '__main__':
app.run(debug=True)
- پیاده سازی گزینه دانلود با Pytube
چالش بعدی فعال کردن دانلود موسیقی بود. من از Pytube برای واکشی موسیقی از YouTube بر اساس عنوان آهنگ و هنرمند استفاده کردم:
پایتون
from pytube import YouTube
from io import BytesIO
def download_youtube_audio(query):
# Find the YouTube video using the query
yt = YouTube(f'https://www.youtube.com/results?search_query={query}')
video = yt.streams.filter(only_audio=True).first()
# Download the audio to a BytesIO buffer
buffer = BytesIO()
video.stream_to_buffer(buffer)
buffer.seek(0)
return buffer
با ذخیره صدا در یک بافر (با استفاده از BytesIO)، توانستم این بافر را از طریق نقطه پایانی API منتقل کنم، بنابراین بر چالش وابستگی دایرکتوری فایل غلبه کردم.
در اینجا نحوه جستجوی نقطه پایانی Flask برای مدیریت دانلود آمده است:
پایتون
@app.route('/download', methods=['GET'])
def download():
track_title = request.args.get('track_title')
artist = request.args.get('artist')
query = f"{track_title} {artist}"
audio_buffer = download_youtube_audio(query)
return send_file(audio_buffer, as_attachment=True, download_name=f"{track_title}.mp3", mimetype="audio/mpeg")
یکپارچه سازی Frontend
در Frontend، زمانی که کاربر یک آهنگ موسیقی را جستجو میکند، یک درخواست API به API پشتیبان من ارسال میشود که Spotify API را درخواست میکند. نتایج شامل تصاویر موسیقی، پیش نمایش ها و لینک های مستقیم Spotify به کاربر نمایش داده می شود.
هنگامی که کاربر می خواهد آهنگی را دانلود کند، عنوان آهنگ و هنرمند را برای دقت مشخص می کند. سپس یک درخواست API به باطن ارسال می شود که از Pytube برای واکشی و تحویل فایل صوتی استفاده می کند.
نتیجه
ساخت این سایت یک تجربه ارزشمند بود، ترکیب چندین فناوری برای ارائه خدمات مفید. برای جزئیات بیشتر پس از مرگ، بررسی کنید
شما همچنین می توانید سایت را بررسی کنید .