利用AV Data Capture+Jellyfin+Kodi打造更优雅的本地AV(毛片)+普通影片媒体库

让撸管继续伟大!

Posted by Pockies on January 9, 2020

W A R N I N G !

  • ※阅读正文前请保持房间明亮,并年满18岁。

去年年初。

为了向日本广大劳动妇女献上赞歌的我,从无到有折腾了一番——

——《利用EverAver+Emby+Kodi打造本地AV(毛片)媒体库》

相信不少朋友已经跟随文章,搭建起了自己的媒体中心。

然而随着评论反馈与自己日常使用,一些历史遗留问题逐渐显露,令人如鲠在喉。

一年过去。

——来自人类的伟大智慧,已经让我们拥有了更加先进的生产力工具。

——是时候开启科技革命了!

本文将在上篇文章的基础上,提供以下更新:

  • 更优雅的抓取AV元数据;
  • 如何打造普通影视(动画/电影/电视剧)媒体库;
  • 从Emby迁移到Jellyfin;
  • 更优雅的媒体库播放姿势(Windows与Android盒子的客户端解决方案)。

无论您是搭建本地媒体库,还是影片归类管理,相信都能在文中找到更加合适的工具。

请善用文章右侧的CATALOG快速跳转至您需要的教程。

请结合上篇文章《利用EverAver+Emby+Kodi打造本地AV(毛片)媒体库》一起食用。

元数据(里)/ AV Data Capture

(关于什么是元数据,请参考上篇文章的说明,这里不再赘述。)

去年我们抓取AV元数据使用的是EverAver

这个软件功能丰富,可编辑性强,但却有几个致命缺陷:

  1. 一次只能抓取一部作品。
  2. 无法抓取“多集作品”。
  3. 由于数据来自日本通贩网站,在“其他国家”使用经常抽风。

这让拥有庞大影片数量的群众苦不堪言。

不过——

“只要活着就有好事发生”。

我的上篇文章意外让更加广大的人民群众,意识到了自己对“毛片媒体库”的强烈生理需求

而人群之中,又意外出现了救世勇者。

——伟大的开发者。

并最终带来了更加强力的AV元数据抓取工具。

——AV Data Capture

关于AV Data Capture

软件本身只有三个文件,甚至连“UI”都没有(只有命令行窗口)。

不过扮猪吃虎,功能强大。

由于软件针对Emby开发(附带支持plex/kodi/jellyfin),直接解决了以下痛点:

  • 支持一键批量识别并抓取多部作品,几乎无错。

    (本次迁移媒体库累计抓取1920部影片,只有两部抓取后标题信息不全。)

  • 可以识别并抓取“多集作品”,再也不用手动修改NFO

  • 得益于数据来自J██bus,国内使用更加快速稳定。

  • 得益于数据来自J██bus,抓取后的元数据自带标签,并支持在媒体库中显示背景墙。

    EverAver抓取的元数据同样齐全,但由于没有针对特定媒体库做特定优化,存在部分信息无法显示的问题。)

可以说。

AV Data Capture不仅提供了更加便捷,精准,全面的元数据抓取体验;

而在针对媒体库软件进行优化,并显示出最完整的元数据信息之后——

——Emby/Jellyfin的媒体库终于进化成了完全体。

配置AV Data Capture

虽然AV Data Capture可以“开箱即用”。

不过为了后期媒体库的管理,最好还是先行配置一番。

Gayhub下载并解压后会得到三个文件:

打开config.ini,默认内容与对应说明如下:

[common]
main_mode = 1
failed_output_folder = failed (识别失败时的输出目录,不需要修改)
success_output_folder = JAV_output (元数据抓取完成后的输出目录,不需要修改)

[proxy]
proxy = 127.0.0.1:1081 (配置代理,如果你没有代理,请把“=”后的自带的ip清空)
timeout = 10
retry = 3

[Name_Rule]
location_rule = actor+'/'+number (输出文件夹的层级与文件夹命名规则)
naming_rule = number+'-'+title (nfo内的命名规则,即媒体库里显示的影片名)

[update]
update_check = 1 (检测软件更新,1为开启,0为关闭)

[media]
media_warehouse = emby (默认emby,请修改为你的媒体库软件,jellyfin选emby即可)
#emby plex kodi

[escape]
literals = \

[movie_location]
path = 

推荐将[Name_Rule]部分修改为如下内容:

[Name_Rule]
location_rule = '#'+actor+'/'+'['+year+'] '+title+' ['+number+']'
naming_rule = title

这样输出后的“文件夹层级”会和我在上篇文章推荐的层级类似,便于后期影片管理:

硬盘根目录/顶层文件夹
---#演员名字(第一层子文件夹)
------[发行年份] 影片标题 [番号](第二层子文件夹)
------------番号.avi

如果你想自己设定[Name_Rule]规则,请参考软件的说明页面

至于config.ini的其他部分,请根据自身情况修改。

使用AV Data Capture

  • 视频文件名的要求

由于软件是自动批量识别。

所以务必保证你的影片文件名上,至少有一个完整的番号。

如果无法识别,请手动把文件名修改为对应番号。

好在现在靠谱放流的默认命名都比较干净,如图所示的文件名都能直接识别:

  • “多集作品”的文件名要求。

直接在每一集的番号后,按照对应集数添加“cd1”,“cd2”,“cd3”即可。

软件会自动识别+并入nfo。

(看上篇文章的反馈,有很多人找不到多集作品的其他分集在哪,请点击跳转至文末查看具体说明。)

  • 开始使用

解决完视频文件名之后就能正式使用了。

将所有视频放到软件的同级目录,拖拽其中一个视频到AV_Data_Capture.exe上即可。

软件会自动识别并抓取同级目录下的所有视频文件,并按照我们此前设定的规则,将抓取完元数据的文件输出到output文件夹。

整个元数据抓取也至此结束。


接下来只需在以前用EverAver抓取的片库里,搜索“.mp4”之类的视频扩展名。

将它们剪切到AV Data Capture的程序文件夹,并重新抓取元数据,便一键完成了整个媒体库的重新构建和迁移。

对比此前用EverAver一部一部抓取,1000部影片抓了整整一周的体验。

AV Data Capture仅仅一个拖拽视频的动作,便能在几小时内完成2000部影片的元数据抓取。

——什么叫“驱散乌云见太阳”!

——这就叫“翻身农奴把歌唱”!

唯有热泪两行,能表达我对开发者同志的感激之情。

元数据(表)/ 自带刮削器

难得建立了媒体库,却只用来放AV,难免大材小用。

而对普通动画 / 电影 / 电视剧媒体库,存在需求的人也不在少数。

所以这里将一并给出搭建教程。

建立分类文件夹

为了便于本地管理,以及添加媒体库后内容不混杂在一起。

请事先按剧种建好大分类文件夹后,再进行后续操作:

普通影片的元数据抓取

主流的元数据抓取姿势有两种:

  • tinyMediaManager

    tmm应该是目前功能最全面的抓取工具。

    但整个软件的使用体验却异常繁琐,难受,操蛋,反人类,还需要额外安装一个java才能运行。

    大家都这么忙,谁想折腾这破玩意?

    直接弃用。

  • Emby与Jellyfin的自带刮削器

    以Jellyfin为例,其内置刮削器已经自带TheMovieDbTheTVDB

    这两个DB站足以所有普通动画 / 电影 / 电视剧的抓取需求(反正你用tmm也是从这俩站抓)。

    并且只需修改视频文件名,元数据就能全程自动抓,快捷又省心。

    所以本段将主要介绍刮削器的使用。

普通影片的命名规则

所有影片文件,都必须采用该片的英文名才能识别。

——所以改名之前,务必先上TheMovieDbTheTVDB搜索该片,确定对应英文名。

而按照Jellyfin的官方命名指南(Emby通用)。

媒体库软件将影视分类为MoviesShows两个大类:

  • Movies(电影)

    基础命名规则如下:

    电影英文名 (上映年份).mp4
    

    如果你想同时保留一部影片的不同版本(如1080p版,720p版,导演剪辑版),则需建立一级文件夹:

    影片英文名 (上映年份)/这是文件夹
    ---电影英文名 (上映年份) - 1080P.mp4
    ---电影英文名 (上映年份) - 720P.mp4
    ---电影英文名 (上映年份) - Directors Cut.mp4
    

    实例如下:

  • Shows(动画,电视剧)

    由于剧集通常有多集,多季,OVA番外,剧场版之类的东西,所以相对电影复杂点。

    基础命名规则如下:

    剧集英文名 (上映年份)/这是文件夹
    ---Specials /这是文件夹,存放OVA,特典,剧场版之类
    ------剧集英文名 S00E01.mp4
    ------剧集英文名 S00E02.mp4
    ------......
    ---Season 01 /这是文件夹,有几季就建几个文件夹
    ------剧集英文名 S01E01.mp4
    ------剧集英文名 S01E01.mp4
    ------......
    ---Season 02 /同上
    ------剧集英文名 S02E01.mp4
    ------剧集英文名 S02E02.mp4
    ------......
    

    其中Specials里,视频文件后的S00表示这是“特典”,后面的E01代表“第几个特典”。

    请根据TheTVDB里的数据确定你的ova视频的编号。

    如《攻壳机动队》,进入它的TheTVDB页面,在右边大封面下会有一个剧集目录:

    点进Specials,便能看见所有ova/番外/剧场版的对应编号。

    Season文件夹同理,S01表示第一季,S01E01则表示第一季的第一集。

    电视剧文件名总会自带集数,所以Season文件夹里的东西只需批量重命名即可。

    实例如下:

使用ReNamer批量重命名

电影通常只有一部,手动改下文件名就行。

——但动画/电视动不动几十集,一个个改岂不要了老命?

自然需要批量重命名工具,这里推荐ReNamer

以《半泽直树》为例,在TheTVDB搜索确定英文名,并建好本地文件夹层级后开始修改。

打开ReNamer,将视频文件拖进软件窗口:

点击添加规则:

ReNamer支持的规则相当丰富,甚至支持正则

不过改个电视剧而已,“替换”+“移除”就够用了:

ReNamer支持结果预览,确认无误后点击“重命名”按钮即可完成重命名。

(截图里我手滑把代表季数的S01打成了E01,导致后来抓取元数据失败,大家不要学我,这是反面教材。)

添加影片到媒体库

进入Emby/Jellyfin的控制台,按图设定默认元数据抓取语言(我选的日语)。

点击添加媒体库,打开右上角的“显示高级设置”。

根据你的影片类型选择内容类型并勾选正确的DB站:

  • 电影的内容类型电影,DB站勾选TheMovieDb并取消勾选其他所有DB站

  • 动画/电视剧的内容类型电视节目,DB站勾选TheTVDB并取消勾选其他所有DB站

  • 无论电影/动画/电视剧。

    请在选媒体资料储存方式一项里勾选Nfo,并勾选将媒体图像保存到媒体所在文件夹

    实时监控视情况开启,个人选择了关闭。

剩下就是等待媒体库扫描完成。

如果这都有无法识别/识别错误/信息抓取不全的漏网之鱼,在Emby/Jellyfin里手动“识别”/“刷新”即可:

识别完成后,诸如封面/演员/简介/媒体评分/海报/单集预览/单集简介之类的信息便一应俱全:

抓取的元数据则作为NFO和图片,保留在了你的视频文件夹。

需要迁移/重装/使用其它媒体库时,也就不用重新抓取元数据了。

打造普通影片媒体库的教程至此结束。

服务端 / Jellyfin替代Emby

经过一年发展,我们不仅拥有了更强力的AV元数据抓取工具。

去年个人给予厚望Jellyfin选手,也终于从草履虫进化成了类人猿:

  • 更加稳定的服务端。
  • Android/Android TV客户端上线
  • IOS客户端开始测试
  • Kodi插件放出

简而言之——

——“它能用了!”

是时候和Emby这个到处设限制,会员买断120刀从不打折的辣鸡玩意儿说再见了。

安装

我的山寨“NAS”系统用的LTSC 2019,所以只说Win下的安装。

进入Jellyfin的官方源

——如果你的系统是64位。

请直接下载载点里的exe安装包,目前版本为jellyfin_v10.4.3-x64.exe

双击安装一路下一步,x64版Jellyfin目前已经和Emby无异,开箱即用。

安装完成后,直接参考《利用EverAver+Emby+Kodi打造本地AV(毛片)媒体库》Emby服务端的部分(点击跳转)进行配置即可。

本文接下来折腾x86版的部分可以跳过。

——如果你的系统和我一样是32位。

就只能下载后娘养的行x86“便携版”了,目前版本为jellyfin_10.4.3.portable_windows-x86.zip

下载后解压,双击里面的install.bat,会弹出安装对话框:

可以自定义安装位置/媒体库位置/创建桌面快捷方式之类,按需调整后点击“Install”即可。

安装完成后,双击安装位置里的jellyfin.exe便运行了媒体服务:

是的,你没看错。

后娘养的x86版在运行时会有一个难看的命令行窗口,没有任何图标,并直接占领一个任务栏位置。

消除x86版的命令行窗口

运行时弹个窗口是不能忍的

——难看不说,还容易误操作。

那就得除掉它:

新建一个文本文档,贴入以下内容:

Object("Wscript.Shell") 
   ws.run "cmd /c 你的安装目录\jellyfin.exe",vbhide

如果你安装在了默认位置,那就是:

Object("Wscript.Shell") 
   ws.run "cmd /c C:\Users\你的用户名\AppData\Roaming\jellyfin\jellyfin.exe",vbhide

保存,修改文件名为Jellyfin.vbs

启动Jellyfin时双击这个vbs脚本即可,Jellyfin会作为一个没有窗口的后台进程运行

而将Jellyfin.vbs脚本扔进开始菜单的启动文件夹里,便实现了开机无窗口启动Jellyfin。

x86版Jellyfin的安装至此结束。

剩下就是进web后台添加不同类型的媒体库。

请参考上文添加普通影视库的部分。

至于添加AV库和其他配置,同样参考上篇文章Emby服务端的部分(点击跳转)

大同小异,不再赘述。

客户端 / Kodi+Dlna+VLC

去年我的客户端解决方案如下:

  • 电视盒子。

    用Kodi加Emby插件。

  • PC电脑。

    网页播放/进文件夹用Potplayer播放。

然而无论哪种都比较难受。

  • Kodi在电视盒子上运行太重太繁琐;
  • PC网页播放遇到无法解码的视频就是抓瞎;
  • Potplayer进文件夹有多痛苦就更别提了。

——于是找了一些体验相对更好的解决方案。

电视盒子 / Jellyfin TV版+VLC

直接进入Jellyfin的官方载点下载apk安装即可。

免费的TV应用是我迁移至Jellyfin的主要原因。

要知道Emby的TV应用不仅收费,辣鸡新版本还又丑又卡。

安装完成并登录账户后,进入应用设置,找到Preferred media player,将其修改为External app

再安装一个VLC for Android(自带TV界面),便能实现点击影片调用外部播放器VLC硬解播放。

VLC的硬解能力现在相当靠谱——

——Kodi能放的片VLC也能放;VLC放不了片Kodi一样别想放。

而Jellyfin TV版+VLC的使用体验如丝般顺滑,吊打Kodi又重又繁琐的配置与操作。

强烈推荐使用。

PC播放 / Dlna

警告,本方案仅适合以下用户:

  • 拥有大容量内存,能划出至少16G内存作为内存盘长期挂载;
  • 拥有一块能随便艹的硬盘,并且艹坏也无所谓

(随意Dlna播放出现PC硬盘嗝屁的情况,本人概不负责)。

如果你决定后果自负,请进Emby/Jellyfin控制台开启Dlna,选择默认媒体库账户,保存。

打开客户端PC的设置,进入设备添加蓝牙或其他设备添加其他设备

选中Emby/Jellyfin的Dlna服务并添加:

然后资源管理器的此电脑上会出现该服务。

进入之后便能看见所有媒体库:

同时还能浏览“最近添加”“收藏”“标签”等一系列内容,浏览体验与web端无异。

影片自然一部不少,每一部都有封面+标题,双击即调用本地播放器(如Potplayer)播放——

——然后你会发现资源管理为了播放影片,愣是把一个个高达四五GB的小电影,1kb不差的往本地Internet临时文件夹(默认在C盘)里复制。

——你播放了多少部片子,就等于把多少部片子下载到了本地C盘。

C硬的读写量可想而知。

如果看到这里你还打算硬上,那么请分配一个至少16GB,最好32GB的内存盘/其他硬盘。

Win+R 打开“运行”,输入regedit.exe,“确定”以打开“注册表编辑器”:

依次展开目录:HKEY_CURRENT_USER\Software \Microsoft\Windows\CurrentVersion\Explorer\Users Shell Folders。

双击里面的Cache修改数值数据

假如你的内存盘盘符为“Z”,里面建了个“Cache”文件夹作为新的Internet临时文件夹,那就填入Z:\Cache

“确定”后保存,此时再通过Dlna打开视频文件,就会全部缓存到内存盘里了。

不过用“资源管理器”浏览Dlna服务,每次播放都得等1分钟的复制读条,实在不够优雅:

请打开巨硬自带的“电影与电视”,进入“媒体服务器”进行浏览。

内容浏览上同样没差,并且点击即放,随存随播。

此时的播放体验才终于合格。

PC播放 / Kodi

警告,本方案仅适合以下用户:

  • 拥有一只手柄(如xbox/ps4的手柄)作为Kodi“遥控器”。
  • 不想用Dlna艹硬盘的用户。

是的。

我们刚刚在电视盒子上抛弃了Kodi,现在又得在PC上装回来。

由于PC版的Kodi在手柄支持上存在迷之BUG

所以开始配置前,请自行测试哪个版本的Kodi能正确支持你的手柄。


确认手柄支持没问题后,开始配置:

由于PC版Kodi“设置中文”→“添加官方源”→“安装皮肤”的整个配置流程与TV版无异,这里不再赘述。

请参考《利用EverAver+Emby+Kodi打造本地AV(毛片)媒体库》配置Kodi并连接Emby服务器的部分(点击跳转)。

而Jellyfin作为Emby的开源分支,配置上也有且只有以下细微区别:

  • 添加“官方源”的部分。

    修改为Jellfin的官方源:https://repo.jellyfin.org/releases/client/kodi/

  • 安装“插件库”的部分。

    同样改从Jellfin的官方源里安装:

  • 安装“视频插件”的部分。

    自然也成了“按目录进入Kodi Jellyfin Addons视频插件Jellyfin。”

  • Jellyfin甚至能白漂Emby的Kodi皮肤

    直接进入Kodi插件从库安装所有库界面外观皮肤,找到Embuary并安装即可:

等安装完Embuary皮肤,你也就知道为什么需要手柄了。

——神TM这皮肤不支持鼠标操作,并弹出一个巨大的“WARNING!”让你禁用鼠标。

当然了,手柄控制Kodi的体验肯定是“爽到”,也强烈推荐PC端用手柄控制。

要知道哪怕是支持鼠标的默认Kodi皮肤,鼠标操作的体验也远不止一个操蛋能够形容。

安装完Embuary皮肤后,推荐进行界面调整:

  • 进入Embuary设置窗口配置主界面编辑菜单配置

    按图示顺序,“添加”和“隐藏”项目:

  • 进入Embuary设置窗口配置主界面编辑小部件配置

    按图示顺序,“添加”项目:

完成上述调整后,返回首页。

——你将看到完美的媒体库:

电影/电视/动画/AV,各个媒体库互不干预,各自独立。

影片信息一应俱全:

而当AV数量上了2000+之后,想要“点播观看”已经过于“低效”。

——所以再让我们回到首页:

经过魔改后的首页,会向你随机推荐毛片“类型”。

——再也不用担心某部影片下载后“吃灰”。

而下面的“类型”,更能直接浏览所有毛片的“类型标签”。

——品类多样,任君挑选。

我们在元数据阶段抓取的毛片Tag并没白费;

今后也是,只要我们不停下丰富片库的脚步,“按你喜好随机推荐”的道路就会不断延伸——

所以,所以啊!

——不要停下来啊!(指精疲力尽)

客户端的教程至此结束。

问题与坑爹

“多集”视频在哪看分集?

去年的文章已经说明了在哪观看,但依然有用户找不到……

这里再单独说明一下:

  • Emby/Jellyfin的Web页面与客户端,分集会作为“附加部分”显示。

  • 在Kodi里,分集列表需要点击“播放控件”上的按钮进入。

如何浏览本地文件夹目录?

以Jellyfin为例,进入控制台→媒体库显示

勾选“显示一个“文件夹”类别用于按文件夹分类浏览你的媒体文件夹”。

返回首页就能看到人口。

倒霉“硬解”与坑爹“编码”

正文开始之前,需要认识一下两位常见的视频编码选手:

  1. HVEC 10bit / h.265 10bit / ma10p

    叫法很多,但指的是同一个玩意。

    这是一种新进标准编码格式,主流电视盒子的SoC都支持硬解

  2. AVC 10bit / h.264 10bit / hi10p

    叫法很多,也同样都是一个玩意。

    这是一种太古遗留非标准编码,绝大多数电视盒子不能硬解,无法播放

压制者一般会把编码标注在视频文件名后,就像这样:

而本次用Jellyfin替换掉Emby的另一大原因,就是Jellyfin能免费开启硬解

我原本计划的最佳PC客户端解决方案,自然也是直接NAS硬解+Web播放。

——然而现实却一个激灵拉了胯。

我家山寨NAS的CPU(G3250)虽支持牙膏的Quick Sync。

但Jellyfin的硬解,却神TM不支持我这代CPU:

(支持列表如上。)

至少得Kaby Lake及之后的CPU,Jellyfin才能硬解播放HVEC 10-bit。

并且无论哪代CPU,都硬解不了AVC 10-bit这种非主流玩意,甚至软解都没戏

生活就是这么骨感:

  • 我的Haswell奔腾,只能软解播放HVEC 10bit,CPU跟着全程顶满100%;

  • 而一放AVC 10-bit,岂止CPU顶满100%,画面还2s一卡直接变PPT。

也因为祖国卡通字幕组贼爱用AVC 10-bit压制BD。

目前的主流电视盒子,尤其用Amlogic家SoC的(如裴讯N1)无一例外在播放上载了跟头——

——哪怕SoC解码性能强劲,能轻松硬解4K 60帧的HEVC 10-bit,却死活打不开一个1080P 24帧的AVC 10-bit。

——卡得亲妈飞扬。

只能下片时多留神,看到AVC 10-bit绕道走,至于绕不开的——

还能怎么办?

我也很绝望。

开源软件,海贼片源。

——“能用,能看,就不错了。”

2019年终总结

这篇文章其实半年前就该写出来。

上半年AV Data Capture的开发者同志曾找到我,向我推荐新开发的元数据抓取工具:

  • 我答应了人家要写篇东西介绍;

  • 我还给软件功能提了一些建议;

  • 人还贼耿直的照着建议添加了功能:

  • 现在整个软件已经相当稳定且靠谱。

而上一篇文章《利用EverAver+Emby+Kodi打造本地AV(毛片)媒体库》的评论区里,也有越来越多的朋友在询问各种问题。

我却拖到了现在才动笔,实在是非常抱歉。


2019是安定平稳的一年,安定平稳到乏力

以至于无论干什么都少了一股劲儿:

  • 除了拖延至今的本文,我还有十多篇东西写了个大概;

    ——随后永远搁置在了OneDrive里。

  • 抛开半途而废的草稿,还有一些东西拍了照片修了图,脑子里也码出了全文;

    ——却一个字没写。

  • 更有一堆东西,本想写文介绍;

    ——结果刚举起相机,就没了兴趣。

  • 我每月依然会打一大堆Galgame体验版,却无一例外的半途而废;

    ——以至于我在2019愣是没写过一篇Galgame感想,因为我一本都没通关。

  • 我依然在摄影扫街,不过频度明显不如去年;

    ——2019年我没出过一次远门。

  • 我在上半年写了两季度的新番扫雷(/),与2018年的两个季度(/)凑齐了四季,随后便再没写过

    ——我已经对岛国卡通片失去了兴趣。

  • 我一直盘算着买无人机并空摄废墟

    ——伟大祖国用“禁飞区”实施了劝退。

  • 2019我折腾最多的是生活相关,虽没什么不好——

    ——但我更喜欢作为“生产者”创造东西的感觉,而不是作为“消费者”评测/改造/修复别人的成品。

回顾整个2019,真有一种“佛了”的错觉——

——生活没有起伏,情感没有波动。

过于佛系的我甚至开始了阳台养花:

  • 络石;
  • 月季;
  • 绣球;
  • 蓝雪;
  • 石蒜;
  • 酢浆草;
  • 葡萄风信子;
  • 一些多肉;
  • 以及长寿花。

这些东西的种植体验,将在开春之后逐一分享。

而2019年最大的收获,也正是通过阳台养花,经历植物的各种修剪生老枯荣,一定程度矫正了我的“损失厌恶”

——患得患失的毛病因此好了不少。

总而言之。

生活还在继续。

——愿2020能更加有趣。