Skip to content

Commit fa5fff8

Browse files
authored
[media-columns] FPS, codec, encode date (#576)
* Added Mediainfo Video frame_rate * Added Mediainfo Video Codec Under "Video" as 'format' (VP9, AV1, etc) * Added Date Encoded From "General" 'date_encoded' because media downloaded over the internet will often have a date modified and date created set to the time of download, where the "original" date the file was created can be proxied via date_encoded. * Added more formats psd, webp, dds, tga, quicktime video, webm, ogg
1 parent 3bdb434 commit fa5fff8

1 file changed

Lines changed: 23 additions & 3 deletions

File tree

nemo-media-columns/nemo-media-columns.py

Lines changed: 23 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,9 @@ def __init__(self):
6363
self.genre = None
6464
self.date = None
6565
self.bitrate = None
66+
self.framerate = None
67+
self.video_codec = None
68+
self.date_encoded = None
6669
self.pages = None
6770
self.samplerate = None
6871
self.length = None
@@ -108,6 +111,9 @@ def get_columns(self):
108111
Nemo.Column(name="NemoPython::genre_column",attribute="genre",label=_("Genre"),description=""),
109112
Nemo.Column(name="NemoPython::date_column",attribute="date",label=_("Date"),description=""),
110113
Nemo.Column(name="NemoPython::bitrate_column",attribute="bitrate",label=_("Bitrate"),description=""),
114+
Nemo.Column(name="NemoPython::framerate_column",attribute="framerate",label=_("Framerate"),description=""),
115+
Nemo.Column(name="NemoPython::video_codec_column",attribute="video_codec",label=_("Video Codec"),description=""),
116+
Nemo.Column(name="NemoPython::date_encoded_column",attribute="date_encoded",label=_("Date Encoded"),description=""),
111117
Nemo.Column(name="NemoPython::pages_column",attribute="pages",label=_("Pages"),description=""),
112118
Nemo.Column(name="NemoPython::samplerate_column",attribute="samplerate",label=_("Sample Rate"),description=""),
113119
Nemo.Column(name="NemoPython::length_column",attribute="length",label=_("Length"),description=""),
@@ -123,7 +129,7 @@ def get_columns(self):
123129

124130
def set_file_attributes(self, file, info):
125131
for attribute in ("title", "album", "artist", "tracknumber",
126-
"genre", "date", "bitrate", "pages", "samplerate",
132+
"genre", "date", "bitrate", "framerate", "video_codec", "date_encoded", "pages", "samplerate",
127133
"length", 'composer', 'description', "exif_datetime_original", "exif_software",
128134
"exif_flash", "exif_pixeldimensions", "exif_rating", "pixeldimensions"):
129135
value = getattr(info, attribute)
@@ -240,7 +246,7 @@ def file_is_one_of_these(mimetype_list):
240246

241247
return info # if (id3_good or mp3_good) else None
242248
# image handling
243-
elif file_is_one_of_these(('image/jpeg', 'image/png', 'image/gif', 'image/bmp', 'image/tiff')):
249+
elif file_is_one_of_these(('image/jpeg', 'image/png', 'image/gif', 'image/bmp', 'image/tiff', 'image/psd', 'image/webp', 'image/x-dds', 'image/tga')):
244250
info = FileExtensionInfo()
245251
# EXIF handling routines
246252
exiv_good = True
@@ -270,7 +276,7 @@ def file_is_one_of_these(mimetype_list):
270276
# video/flac handling
271277
elif file_is_one_of_these(('video/x-msvideo', 'video/mpeg', 'video/x-ms-wmv', 'video/mp4',
272278
'audio/x-flac', 'video/x-flv', 'video/x-matroska', 'audio/x-wav',
273-
'audio/m4a', 'audio/mp4')):
279+
'audio/m4a', 'audio/mp4', 'video/quicktime', 'video/webm', 'audio/ogg')):
274280
info = FileExtensionInfo()
275281
mediainfo_good = True
276282

@@ -293,6 +299,16 @@ def file_is_one_of_these(mimetype_list):
293299
except:
294300
pass
295301

302+
try:
303+
info.framerate = (track['frame_rate'])
304+
except:
305+
pass
306+
307+
try:
308+
info.video_codec = (track['format'])
309+
except:
310+
pass
311+
296312
if track["track_type"] == "Audio":
297313
try:
298314
info.samplerate = track['other_sampling_rate'][0]
@@ -346,6 +362,10 @@ def file_is_one_of_these(mimetype_list):
346362
info.composer = track['composer']
347363
except:
348364
pass
365+
try:
366+
info.date_encoded = track['encoded_date']
367+
except:
368+
pass
349369

350370
if duration > 0:
351371
seconds = duration / 1000 # ms to s

0 commit comments

Comments
 (0)