Так берите название песни оттуда, откуда достаёте url:
import requests
from bs4 import BeautifulSoup
response = requests.get('https://mp3-fm.site/')
soup = BeautifulSoup(response.text,"html.parser")
playlist = soup.find('div',id='xx1').find_all('div',class_='song')
for song in playlist:
title = song.find('div',class_='title').text.strip()
url = song.find('button',class_='btn btn_play').get('data-norber')
response2 = requests.get(url)
print(f'Download: {title}')
with open(title+'.mp3','wb') as file:
file.write(response2.content)
Бонус:
Парсер для oxy.fm(по вашей ссылке на песню, меня перекинуло на данный сайт):
import requests
from bs4 import BeautifulSoup
response1 = requests.get('https://oxy.fm/')
soup = BeautifulSoup(response1.text,"html.parser")
playlist = soup.find('ul',class_='playlist').find_all('li')
for song in playlist:
title = song.find('span',class_='playlist-name-title').text
artist = song.find('span',class_='playlist-name-artist').text
url = song.find('a',class_='playlist-play no-ajax').get('data-url')
response = requests.get(url)
with open(f'{artist}-{title}.mp3','wb') as file:
file.write(response.content)
print(f'Download {artist}-{title}')
UDP: Забыл добавить - проверяйте названия песни на содержание спец-символов, которые запрещены в названиях файлов в фс(ext4,fat32,ntfs)