使用vsmeta文件更新群晖Video Station视频信息

从网上抓取了一些视频放在家里群晖218+上,但由于这些视频不是标准影片,群晖不能自动识别视频信息,在Video Station只显示文件名,不能按照系列分类。

手动编辑了一个文件的信息,群晖自动保存了一个视频文件全名+.vsmeta的文件。文本编辑器打开文件发现是乱码。幸好github上搜到了一个相关的项目。看了一遍代码,尽管似乎也是半成品,大致还是明白了.vsmeta文件的格式。

总结起来,群晖.vsmeta文件是一个二级制文件,由一系列的标识(TAG)和对应内容(整数、浮点数、字符串或标识组)组成,分为五部分信息:

  1. 文件头(0x080x02)
  2. 通用信息
    • 节目标题(TAG_SHOW_TITLE = 0x12)
    • 节目标题2(TAG_SHOW_TITLE2 = 0x1A)
    • 剧集标题(TAG_EPISODE_TITLE = 0x22)
    • 剧集年(TAG_YEAR = 0x28)
    • 剧集发布日期(TAG_EPISODE_RELEASE_DATE = 0x32)
    • 剧集信息锁定(TAG_EPISODE_LOCKED = 0x38)
    • 章节小结(TAG_CHAPTER_SUMMARY = 0x42)
    • 剧集信息(TAG_EPISODE_META_JSON = 0x4A)
    • 分类(TAG_CLASSIFICATION = 0x5A)
    • 评分(TAG_RATING = 0x60)
    • 剧集数据(TAG_EPISODE_THUMB_DATA = 0x8A)
    • 剧集文件MD5(TAG_EPISODE_THUMB_MD5 = 0x92)
  3. 第一组(TAG_GROUP1 = 0x52)
    • 演员(TAG1_CAST = 0x0A)
    • 导演(TAG1_DIRECTOR = 0x12)
    • 类型(TAG1_GENRE = 0x1A)
    • 编剧(TAG1_WRITER = 0x22)
  4. 第二组(TAG_GROUP2 = 0x9A)
    • 季(TAG2_SEASON = 0x08)
    • 集(TAG2_EPISODE = 0x10)
    • 季发布年(TAG2_TV_SHOW_YEAR = 0x18)
    • 季发布日期(TAG2_RELEASE_DATE_TV_SHOW = 0x22)
    • 季信息锁定(TAG2_LOCKED = 0x28)
    • TAG2_TVSHOW_SUMMARY = 0x32
    • TAG2_POSTER_DATA = 0x3A
    • TAG2_POSTER_MD5 = 0x42
    • TAG2_TVSHOW_META_JSON = 0x4A
  5. 第三组 TAG2_GROUP3 = 0x52
    • TAG3_BACKDROP_DATA = 0x0A
    • TAG3_BACKDROP_MD5 = 0x12
    • TAG3_TIMESTAMP = 0x18

用python照着造了一个轮子,在218+抓取视频的定时任务后加入了创建对应.vsmeta文件的py脚本,果然自动更新文件信息了,Video Station的目录终于整齐有序了。