forked from VideoDownloaders/DISNEY-4K-SCRIPT
New
This commit is contained in:
80
pydisney/namehelper.py
Normal file
80
pydisney/namehelper.py
Normal file
@@ -0,0 +1,80 @@
|
||||
import logging, os, re, subprocess, sys
|
||||
from pymediainfo import MediaInfo
|
||||
|
||||
__LOGGER__ = logging.getLogger(__name__)
|
||||
|
||||
def rename(file, source, group):
|
||||
|
||||
base_name = file
|
||||
name = os.path.splitext(os.path.basename(file))[0]
|
||||
directory_name = os.path.dirname(file)
|
||||
media_info = MediaInfo.parse(file)
|
||||
|
||||
for track in media_info.tracks:
|
||||
if track.track_type == 'Video':
|
||||
if int(track.width) == 1280 or int(track.height) == 720: resolution = '720p'
|
||||
elif int(track.width) == 1920 or int(track.height) == 1080: resolution = '1080p'
|
||||
else:
|
||||
if int(track.height) > 600:
|
||||
resolution = '{}p'.format(track.height)
|
||||
else:
|
||||
resolution = None
|
||||
|
||||
if track.format == "AVC":
|
||||
if track.encoding_settings: codec = "x264"
|
||||
else:codec = "H.264"
|
||||
elif track.format == "HEVC":
|
||||
if track.encoding_settings: codec = "x265"
|
||||
else:codec = "H.265"
|
||||
if 'Main 10@L5' in track.format_profile:
|
||||
hdr = True
|
||||
else:
|
||||
hdr = None
|
||||
|
||||
|
||||
try:
|
||||
track = [track for track in media_info.tracks if track.track_type == "Audio"][0]
|
||||
except IndexError:
|
||||
track = track
|
||||
if track.track_type == 'Audio':
|
||||
|
||||
if track.format == "E-AC-3":
|
||||
audioCodec = "DDP"
|
||||
elif track.format == "AC-3":
|
||||
audioCodec = "DD"
|
||||
elif track.format == "AAC":
|
||||
audioCodec = "AAC"
|
||||
elif track.format == "DTS":
|
||||
audioCodec = "DTS"
|
||||
elif "DTS" in track.format:
|
||||
audioCodec = "DTS"
|
||||
else:
|
||||
print("No Audio Root Found: {}".format(track.format))
|
||||
audioCodec = None
|
||||
|
||||
if track.channel_s == 6:
|
||||
if "Atmos" in track.commercial_name:
|
||||
channels = '5.1.Atmos'
|
||||
else:
|
||||
channels = "5.1"
|
||||
elif track.channel_s == 2: channels = "2.0"
|
||||
elif track.channel_s == 1: channels = "1.0"
|
||||
else:
|
||||
print("No Audio Channel Found: {}".format(track.channel_s))
|
||||
channels = None
|
||||
|
||||
name = name.replace(" ", ".").replace("'", "").replace(',', '')
|
||||
if hdr is not None:
|
||||
name = '{}.{}.{}.WEB-DL.HDR.{}{}.{}-{}'.format(
|
||||
name, resolution, source, audioCodec, channels, codec, group).replace('.-.', '.')
|
||||
else:
|
||||
if resolution is None:
|
||||
name = '{}.{}.WEB-DL.{}{}.{}-{}'.format(
|
||||
name, source, audioCodec, channels, codec, group).replace('.-.', '.')
|
||||
else:
|
||||
name = '{}.{}.{}.WEB-DL.{}{}.{}-{}'.format(
|
||||
name, resolution, source, audioCodec, channels, codec, group).replace('.-.', '.')
|
||||
name = re.sub(r'(\.\.)', '.', name)
|
||||
filename = '{}.mkv'.format(os.path.join(directory_name, name))
|
||||
if os.path.exists(filename): os.remove(filename)
|
||||
os.rename(base_name, filename)
|
||||
Reference in New Issue
Block a user