Package: vsmetaEncoder
About VsMetaFileEncoderSummaryNAS manufacturerSynologyprovides, for its network attached storage devices (NAS), a video content manager calledVideo Station. The application enables the NAS to stream videos over your LAN. Information about these videos are stored in a local Postgres database and optionally by files with extension.vsmeta. The format is proprietary.
The tool provided here is able to write vsMetaFiles. The structure has been elaborated by reverse engineering and ressources foundhere. Many thanks toCarlos Ballesteros Velasco.PrerequisitesOnce a video is written into a directory,Video Stationlooks for.vsmetafiles if these conditions are met:The folder is part of aVideo Stationlibrary.At least once, an export of meta data has been triggered. This can be done at the library settings of Video Station.The.vsmetafile has the same name as the video, appended by.vsmeta.
Example: The video is calledvideo.mpg, the meta data file shall be namedvideo.mpg.vsmeta.The.vsmetafile is available whenVideo Stationindexes the video file first time.The content type (movie, series, other) is equal to the type specified in the.vsmetafile.LimitationsMedia type 'others' is currently not supported.Some fields are not yet supported. See list below.How to use the codeHere's an example piece of code. Other examples can be found in the unit test classes.import os
    from vsmetaEncoder.vsmetaMovieEncoder import VsMetaMovieEncoder
    from vsmetaEncoder.vsmetaInfo import VsMetaInfo

    class writeVsMetaForMovie():

        def test_encodeTemplate4(self):

            writer = VsMetaMovieEncoder()

            info = writer.info
            info.episodeTitle = 'Nach der Hochzeit'
            info.showTitle = 'Kino - Filme'
            info.setEpisodeDate(date(2021, 3, 8))
            info.chapterSummary = 'Um die drohende Schließung seines indischen Waisenhauses abzuwenden...'

            writeVsMetaFile(os.path.join(os.path.dirname(os.path.realpath(__file__)),'videp.mp4.vsmeta'), writer.encode(info))Field mappingHere's how to use the vsMetaInfo class for the different media types.SeriesTo encode the episode of a series, use thevsMetaInfoclass with avsMetaSeriesEncoder. Have a look at the test classes to see how it works best. The table below describes how to set thevsMetaInfoproperties.Field in Video StationvsMetaInfo propertyRemarkTV Show NameshowTitlePublishing DatesetEpisodeReleaseDate()Use method instead of direct value assignment.Episode TitleepisodeTitleSeasonseasonIf not set, defaulted with publishing year of episode.EpisodeepisodeIf not set, defaulted with week number x 10 plus weekday number (Monday is 1).Publishing Date (Episode)setShowDate()Use method instead of direct value assignment.LockedepisodeLockedSummarychapterSummaryNot supported yet:ClassificationRatingGenreCastAuthorMoviesTo encode a TV film or movie, use thevsMetaInfoclass with avsMetaMoviesEncoder. The property names might be confusing, don't think too much about it - just use them as listed below.Field in Video StationvsMetaInfo propertyRemarkTitleshowTitleShort TitleepisodeTitlePublishing DatesetEpisodeDate()Use method instead of direct value assignment.LockedepisodeLockedSummarychapterSummaryNot supported yet:ClassificationRatingGenreCastAuthorMedia type 'other'This media type is not supported, and probably won't. It is intended for private videos or artwork, which will be edited most likely manually at uploading.Screen shots of the property screens for the media typesHere are the screenshots of the supported media types in German English (I did not had English screenshots at hand - please add them if you have).ReferencesSynology Video Station:Help in Support CenterProduct Page