Add files via upload
This commit is contained in:
@@ -0,0 +1,78 @@
|
||||
#Confirmed working as of 1/23/23
|
||||
|
||||
import os
|
||||
import shutil
|
||||
import json
|
||||
import re
|
||||
from mutagen.id3 import ID3, APIC, TIT2, TPE1, TCOM, TCON, TSOA, TRCK, TIT3, TALB, COMM
|
||||
|
||||
def traverse_directory(directory):
|
||||
# Iterate through all subfolders and files
|
||||
for root, dirs, files in os.walk(directory):
|
||||
for dir in dirs:
|
||||
subfolder_path = os.path.join(root, dir)
|
||||
if os.path.exists(os.path.join(subfolder_path, "cleaned_metadata.json")):
|
||||
add_metadata(subfolder_path)
|
||||
|
||||
def add_metadata(directory):
|
||||
# Get the metadata from the cleaned_metadata.json file in the current subfolder
|
||||
with open(os.path.join(directory, "cleaned_metadata.json"), "r") as f:
|
||||
json_data = json.load(f)
|
||||
artist = json_data.get("Author", "")
|
||||
composer = json_data.get("Narrator", "")
|
||||
genre = json_data.get("Subjects", "")
|
||||
album_title = json_data.get("Title", "")
|
||||
|
||||
# Rest of the code
|
||||
|
||||
# Replace all occurrences of -s with 's in the album title
|
||||
album_title = re.sub("-s", "'s", album_title)
|
||||
|
||||
# Get a list of all mp3 files in the current directory
|
||||
mp3_files = [f for f in os.listdir(directory) if f.endswith(".mp3")]
|
||||
|
||||
# Sort the list of mp3 files alphabetically
|
||||
mp3_files.sort()
|
||||
|
||||
# Iterate through the list of mp3 files
|
||||
for i, mp3_file in enumerate(mp3_files, 1):
|
||||
mp3_file_path = os.path.join(directory, mp3_file)
|
||||
|
||||
# Extract the title of the mp3 file
|
||||
file_name, file_ext = os.path.splitext(mp3_file)
|
||||
title = file_name.lstrip("0123456789_")
|
||||
|
||||
# Add the track number to the file using ID3
|
||||
audio = ID3(mp3_file_path)
|
||||
audio.add(TRCK(encoding=3, text=str(i)))
|
||||
audio.add(TIT2(encoding=3, text=title))
|
||||
audio.save()
|
||||
|
||||
# Add the metadata to the file using ID3
|
||||
audio = ID3(mp3_file_path)
|
||||
audio.add(TPE1(encoding=3, text=artist))
|
||||
audio.add(TCOM(encoding=3, text=composer))
|
||||
audio.add(TCON(encoding=3, text=genre))
|
||||
audio.add(TALB(encoding=3, text=album_title))
|
||||
audio.save()
|
||||
|
||||
# Check if folder.jpg exists in the current directory
|
||||
if os.path.exists(os.path.join(directory, "folder.jpg")):
|
||||
# Add the album art to the file using ID3
|
||||
with open(os.path.join(directory, "folder.jpg"), "rb") as albumart:
|
||||
audio = ID3(mp3_file_path)
|
||||
audio.add(APIC(encoding=3, mime='image/jpeg', type=3, desc='Cover', data=albumart.read()))
|
||||
audio.save()
|
||||
|
||||
# Point the script at a directory
|
||||
directory = "/Users/jonas/Documents/SERVER/BOOKS/01_LABELED AUDIO"
|
||||
|
||||
# Traverse the directory and apply the metadata to the mp3 files
|
||||
traverse_directory(directory)
|
||||
|
||||
for root, dirs, files in os.walk(directory):
|
||||
for dir in dirs:
|
||||
subfolder_path = os.path.join(root, dir)
|
||||
parent_folder = os.path.dirname(subfolder_path)
|
||||
if parent_folder == directory:
|
||||
shutil.move(subfolder_path, "/Users/jonas/Documents/SERVER/BOOKS/02_READY FOR PLEX")
|
||||
Reference in New Issue
Block a user