برنامه نویسی

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

چگونه سایت دانلود موسیقی خود را ساختم

ایجاد سایت دانلودر موزیک من یک سفر هیجان انگیز و آموزشی بود. من از Spotify API و Pytube استفاده کردم تا یک تجربه یکپارچه را برای کاربرانی که می خواهند موسیقی را کشف و دانلود کنند ایجاد کنم. در اینجا شرح مفصلی از چگونگی دستیابی من به این هدف ارائه شده است.
توسعه Backend

  1. یکپارچه سازی 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()
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

  1. ایجاد نقطه پایانی 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)
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

  1. پیاده سازی گزینه دانلود با 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 برای واکشی و تحویل فایل صوتی استفاده می کند.
نتیجه

ساخت این سایت یک تجربه ارزشمند بود، ترکیب چندین فناوری برای ارائه خدمات مفید. برای جزئیات بیشتر پس از مرگ، بررسی کنید پست لینکدین من

شما همچنین می توانید سایت را بررسی کنید اینجا.

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا