wipe metadata from audio files - also serving as anti-malware
parent
1bce14efcd
commit
0dc9e1e35a
|
@ -69,7 +69,13 @@ def process_files(files, v, body):
|
||||||
|
|
||||||
|
|
||||||
def process_audio(file, v):
|
def process_audio(file, v):
|
||||||
name = f'/audio/{time.time()}'.replace('.','')
|
old = f'/audio/{time.time()}'.replace('.','')
|
||||||
|
file.save(old)
|
||||||
|
|
||||||
|
size = os.stat(old).st_size
|
||||||
|
if size > MAX_IMAGE_AUDIO_SIZE_MB_PATRON * 1024 * 1024 or not v.patron and size > MAX_IMAGE_AUDIO_SIZE_MB * 1024 * 1024:
|
||||||
|
os.remove(old)
|
||||||
|
abort(413, f"Max image/audio size is {MAX_IMAGE_AUDIO_SIZE_MB} MB ({MAX_IMAGE_AUDIO_SIZE_MB_PATRON} MB for {patron.lower()}s)")
|
||||||
|
|
||||||
name_original = secure_filename(file.filename)
|
name_original = secure_filename(file.filename)
|
||||||
extension = name_original.split('.')[-1].lower()
|
extension = name_original.split('.')[-1].lower()
|
||||||
|
@ -77,26 +83,29 @@ def process_audio(file, v):
|
||||||
if extension not in {'mp3','ogg','flac'}:
|
if extension not in {'mp3','ogg','flac'}:
|
||||||
extension = 'mp3'
|
extension = 'mp3'
|
||||||
|
|
||||||
name = name + '.' + extension
|
new = old + '.' + extension
|
||||||
file.save(name)
|
|
||||||
|
|
||||||
size = os.stat(name).st_size
|
try:
|
||||||
if size > MAX_IMAGE_AUDIO_SIZE_MB_PATRON * 1024 * 1024 or not v.patron and size > MAX_IMAGE_AUDIO_SIZE_MB * 1024 * 1024:
|
subprocess.run(["ffmpeg", "-y", "-loglevel", "warning", "-nostats", "-i", old, "-map_metadata", "-1", "-c:a", "copy", new], check=True)
|
||||||
os.remove(name)
|
except:
|
||||||
abort(413, f"Max image/audio size is {MAX_IMAGE_AUDIO_SIZE_MB} MB ({MAX_IMAGE_AUDIO_SIZE_MB_PATRON} MB for {patron.lower()}s)")
|
os.remove(old)
|
||||||
|
if os.path.isfile(new):
|
||||||
|
os.remove(new)
|
||||||
|
abort(400)
|
||||||
|
|
||||||
media = g.db.query(Media).filter_by(filename=name, kind='audio').one_or_none()
|
os.remove(old)
|
||||||
|
media = g.db.query(Media).filter_by(filename=new, kind='audio').one_or_none()
|
||||||
if media: g.db.delete(media)
|
if media: g.db.delete(media)
|
||||||
|
|
||||||
media = Media(
|
media = Media(
|
||||||
kind='audio',
|
kind='audio',
|
||||||
filename=name,
|
filename=new,
|
||||||
user_id=v.id,
|
user_id=v.id,
|
||||||
size=size
|
size=size
|
||||||
)
|
)
|
||||||
g.db.add(media)
|
g.db.add(media)
|
||||||
|
|
||||||
return name
|
return new
|
||||||
|
|
||||||
|
|
||||||
def convert_to_mp4(old, new, vid, db):
|
def convert_to_mp4(old, new, vid, db):
|
||||||
|
|
Loading…
Reference in New Issue