Untitled

mail@pastecode.io avatar
unknown
python
a year ago
2.1 kB
3
Indexable
Never
import mutagen
from mutagen.id3 import ID3, TIT2, TPE1, TALB, APIC
import requests
from bs4 import BeautifulSoup

# Function to scrape Wikipedia for metadata
def scrape_wikipedia(artist, song_title):
    # Create a Wikipedia search query URL
    search_query = f"https://en.wikipedia.org/wiki/{artist}_{song_title}"

    try:
        # Send an HTTP GET request to the Wikipedia page
        response = requests.get(search_query)

        # Check if the request was successful
        if response.status_code == 200:
            # Parse the HTML content of the page using BeautifulSoup
            soup = BeautifulSoup(response.text, 'html.parser')

            # Extract relevant information, such as album and release year
            album = soup.find("div", class_="infobox-data").text.strip()
            release_year = soup.find("span", class_="bday").text.strip()[:4]

            return album, release_year

    except Exception as e:
        print(f"Error scraping Wikipedia: {str(e)}")

    return None, None

# Function to add metadata to an MP3 file
def add_metadata_to_mp3(mp3_file, artist, song_title):
    audio = ID3(mp3_file)

    # Scrape Wikipedia for album and release year
    album, release_year = scrape_wikipedia(artist, song_title)

    if album and release_year:
        # Add metadata tags to the MP3 file
        audio["TIT2"] = TIT2(encoding=3, text=song_title)
        audio["TPE1"] = TPE1(encoding=3, text=artist)
        audio["TALB"] = TALB(encoding=3, text=album)
        audio["TDRC"] = TDRC(encoding=3, text=release_year)

        # Save the changes to the MP3 file
        audio.save()

        print("Metadata added successfully.")
    else:
        print("Metadata retrieval from Wikipedia failed.")

# Example usage
if __name__ == "__main__":
    mp3_file = "your_song.mp3"  # Replace with the path to your MP3 file
    artist = "Your_Artist"      # Replace with the artist's name
    song_title = "Your_Song"    # Replace with the song title

    add_metadata_to_mp3(mp3_file, artist, song_title)