fix: make functions of mp4.py and save.py asynchronous

with_status
WorldObservationLog 4 months ago
parent bc98705375
commit a52d32b006
  1. 12
      src/rip.py
  2. 2
      src/save.py

@ -79,15 +79,15 @@ async def rip_song(song: Song, auth_params: GlobalAuthParams, codec: str, config
logger.info(f"Downloading song: {song_metadata.artist} - {song_metadata.title}")
codec = get_codec_from_codec_id(codec_id)
raw_song = await download_song(song_uri)
song_info = extract_song(raw_song, codec)
song_info = await extract_song(raw_song, codec)
decrypted_song = await decrypt(song_info, keys, song_data, device)
song = encapsulate(song_info, decrypted_song, config.download.atmosConventToM4a)
song = await encapsulate(song_info, decrypted_song, config.download.atmosConventToM4a)
if not if_raw_atmos(codec, config.download.atmosConventToM4a):
metadata_song = write_metadata(song, song_metadata, config.metadata.embedMetadata, config.download.coverFormat)
song = fix_encapsulate(metadata_song)
metadata_song = await write_metadata(song, song_metadata, config.metadata.embedMetadata, config.download.coverFormat)
song = await fix_encapsulate(metadata_song)
if codec == Codec.AAC or codec == Codec.AAC_DOWNMIX or codec == Codec.AAC_BINAURAL:
song = fix_esds_box(song_info.raw, song)
filename = save(song, codec, song_metadata, config.download, playlist)
song = await fix_esds_box(song_info.raw, song)
filename = await save(song, codec, song_metadata, config.download, playlist)
logger.info(f"Song {song_metadata.artist} - {song_metadata.title} saved!")
if config.download.afterDownloaded:
command = config.download.afterDownloaded.format(filename=filename)

@ -7,7 +7,7 @@ from src.models import PlaylistInfo
from src.utils import ttml_convent_to_lrc, get_song_name_and_dir_path, get_suffix
def save(song: bytes, codec: str, metadata: SongMetadata, config: Download, playlist: PlaylistInfo = None):
async def save(song: bytes, codec: str, metadata: SongMetadata, config: Download, playlist: PlaylistInfo = None):
song_name, dir_path = get_song_name_and_dir_path(codec, config, metadata, playlist)
if not dir_path.exists() or not dir_path.is_dir():
os.makedirs(dir_path.absolute())

Loading…
Cancel
Save