示例 1
把 "now"
传入时间处理函数可以输出当前时间,先使用 time_zone
设置时区为中国时间,然后使用 format_date
格式化成文本。 如果不设置时区,默认会使用系统当前时区。
录播姬的文件名模板使用了 Liquid (第三方中文镜像) 语法,如果你用过下面这些工具的话这个语法应该会很熟悉。
基础的语法请参考 Liquid 原版文档 或 第三方翻译的中文镜像,这里就不再复制粘贴过来一份了。
录播姬默认的模板内容是
生成的文件名格式是类似这样的
录播姬会自动过滤掉直播间标题、主播名字中不能用作文件名的特殊字符,并替换为 _
下划线。 在模板运行结束后会再过滤一次路径,保证输出的文件名里没有不能用的特殊字符。
如果设置的文件名模板中有语法错误,录播姬会使用默认的模板格式。
示例 1
把 "now"
传入时间处理函数可以输出当前时间,先使用 time_zone
设置时区为中国时间,然后使用 format_date
格式化成文本。 如果不设置时区,默认会使用系统当前时区。
示例 2
使用 {% random 4 %}
生成了 4 位随机数。
示例 3
使用 /
表示一层文件夹。这个例子里每天都会新建一个名字是当前年月日的文件夹。
示例 4
按直播间所在分区分文件夹。
示例 5
使用画质 ID qn
转换成对应的画质名字 format_qn
。
示例 6
根据开播时间分文件夹,每次直播都新建一个名字为开播时间的文件夹。
示例 7
partIndex
是分段序号,使用 format_number
把它变成以 0
开头的 3 位数,方便文件名排序。
roomId
房间号。
例值:23058
shortId
房间短号,没有短号的为 0
例值:3
name
主播名字
例值:3号直播间
uid
主播 UID
例值:11153765
title
直播间标题
例值:哔哩哔哩音悦台
areaParent
直播间所在主分区
例值:电台
areaChild
直播间所在子分区
例值:唱见电台
partIndex
从 1
开始的分段序号,手动分段、根据视频时长或文件大小自动分段之后会 +1
例值:1
qn
当前录制的画质 ID
如果需要画质名字可以使用 format_qn
filter, 见本页面下面的文档。
例值:10000
json
请求直播 API 返回的原始数据的 data
部分。
示例 1
示例 2
示例 3
基础的语法请参考 Liquid 原版文档 或 第三方翻译的中文镜像,这里就不再复制粘贴过来一份了。
在原版功能的基础上,录播姬的模板引擎多了一些功能:
传入的参数是一个 1 到 9 之间的数字,是生成的随机数的位数。
把画质 ID 转换成画质名字
用 .NET 的 日期格式字符串 格式化日期。
本段内容是从微软官方文档复制的, licensed under CC-BY.
格式说明符 | 说明 | 示例 |
---|---|---|
“d” | 一个月中的某一天(1 到 31)。 | 2009-06-01T13:45:30 -> 1 2009-06-15T13:45:30 -> 15 |
“dd” | 一个月中的某一天(01 到 31)。 | 2009-06-01T13:45:30 -> 01 2009-06-15T13:45:30 -> 15 |
“ddd” | 一周中某天的缩写名称。 | 2009-06-15T13:45:30 -> Mon (en-US) 2009-06-15T13:45:30 -> Пн (ru-RU) 2009-06-15T13:45:30 -> lun. (fr-FR) |
“dddd” | 一周中某天的完整名称。 | 2009-06-15T13:45:30 -> Monday (en-US) 2009-06-15T13:45:30 -> понедельник (ru-RU) 2009-06-15T13:45:30 -> lundi (fr-FR) |
“f” | 日期和时间值的十分之几秒。 | 2009-06-15T13:45:30.6170000 -> 6 2009-06-15T13:45:30.05 -> 0 |
“ff” | 日期和时间值的百分之几秒。 | 2009-06-15T13:45:30.6170000 -> 61 2009-06-15T13:45:30.0050000 -> 00 |
“fff” | 日期和时间值的千分之几秒。 | 6/15/2009 13:45:30.617 -> 617 6/15/2009 13:45:30.0005 -> 000 |
“ffff” | 日期和时间值的万分之几秒。 | 2009-06-15T13:45:30.6175000 -> 6175 2009-06-15T13:45:30.0000500 -> 0000 |
“fffff” | 日期和时间值的十万分之几秒。 | 2009-06-15T13:45:30.6175400 -> 61754 6/15/2009 13:45:30.000005 -> 00000 |
“ffffff” | 日期和时间值的百万分之几秒。 | 2009-06-15T13:45:30.6175420 -> 617542 2009-06-15T13:45:30.0000005 -> 000000 |
“fffffff” | 日期和时间值的千万分之几秒。 | 2009-06-15T13:45:30.6175425 -> 6175425 2009-06-15T13:45:30.0001150 -> 0001150 |
“F” | 如果非零,则为日期和时间值的十分之几秒。 | 2009-06-15T13:45:30.6170000 -> 6 2009-06-15T13:45:30.0500000 ->(无输出) |
“FF” | 如果非零,则为日期和时间值的百分之几秒。 | 2009-06-15T13:45:30.6170000 -> 61 2009-06-15T13:45:30.0050000 ->(无输出) |
“FFF” | 如果非零,则为日期和时间值的千分之几秒。 | 2009-06-15T13:45:30.6170000 -> 617 2009-06-15T13:45:30.0005000 ->(无输出) |
“FFFF” | 如果非零,则为日期和时间值的万分之几秒。 | 2009-06-15T13:45:30.5275000 -> 5275 2009-06-15T13:45:30.0000500 ->(无输出) |
“FFFFF” | 如果非零,则为日期和时间值的十万分之几秒。 | 2009-06-15T13:45:30.6175400 -> 61754 2009-06-15T13:45:30.0000050 ->(无输出) |
“FFFFFF” | 如果非零,则为日期和时间值的百万分之几秒。 | 2009-06-15T13:45:30.6175420 -> 617542 2009-06-15T13:45:30.0000005 ->(无输出) |
“FFFFFFF” | 如果非零,则为日期和时间值的千万分之几秒。 | 2009-06-15T13:45:30.6175425 -> 6175425 2009-06-15T13:45:30.0001150 -> 000115 |
“g”、“gg” | 时期或纪元。 | 2009-06-15T13:45:30.6170000 -> A.D. |
“h” | 采用 12 小时制的小时(从 1 到 12)。 | 2009-06-15T01:45:30 -> 1 2009-06-15T13:45:30 -> 1 |
“hh” | 采用 12 小时制的小时(从 01 到 12)。 | 2009-06-15T01:45:30 -> 01 2009-06-15T13:45:30 -> 01 |
“H” | 采用 24 小时制的小时(从 0 到 23)。 | 2009-06-15T01:45:30 -> 1 2009-06-15T13:45:30 -> 13 |
“HH” | 采用 24 小时制的小时(从 00 到 23)。 | 2009-06-15T01:45:30 -> 01 2009-06-15T13:45:30 -> 13 |
“K” | 时区信息。 | 2009-06-15T01:45:30-07:00 —> -07:00 2009-06-15T08:45:30+00:00 —> +00:00 |
“m” | 分钟(0 到 59)。 | 2009-06-15T01:09:30 -> 9 2009-06-15T13:29:30 -> 29 |
“mm” | 分钟(00 到 59)。 | 2009-06-15T01:09:30 -> 09 2009-06-15T01:45:30 -> 45 |
“M” | 月份(1 到 12)。 | 2009-06-15T13:45:30 -> 6 |
“MM” | 月份(1 到 12)。 | 2009-06-15T13:45:30 -> 06 |
“MMM” | 月份的缩写名称。 | 2009-06-15T13:45:30 -> Jun (en-US) 2009-06-15T13:45:30 -> juin (fr-FR) 2009-06-15T13:45:30 -> Jun (zu-ZA) |
“MMMM” | 月份的完整名称。 | 2009-06-15T13:45:30 -> June (en-US) 2009-06-15T13:45:30 -> juni (da-DK) 2009-06-15T13:45:30 -> uJuni (zu-ZA) |
“s” | 秒(0 到 59)。 | 2009-06-15T13:45:09 -> 9 |
“ss” | 秒(00 到 59)。 | 2009-06-15T13:45:09 -> 09 |
“t” | AM/PM 指示符的第一个字符。 | 2009-06-15T13:45:30 -> P (en-US) 2009-06-15T13:45:30 -> 午 (ja-JP) 2009-06-15T13:45:30 -> (fr-FR) |
“tt” | AM/PM 指示符。 | 2009-06-15T13:45:30 -> PM (en-US) 2009-06-15T13:45:30 -> 午後 (ja-JP) 2009-06-15T13:45:30 -> (fr-FR) |
“y” | 年份(0 到 99)。 | 0001-01-01T00:00:00 -> 1 0900-01-01T00:00:00 -> 0 1900-01-01T00:00:00 -> 0 2009-06-15T13:45:30 -> 9 2019-06-15T13:45:30 -> 19 |
“yy” | 年份(00 到 99)。 | 0001-01-01T00:00:00 -> 01 0900-01-01T00:00:00 -> 00 1900-01-01T00:00:00 -> 00 2019-06-15T13:45:30 -> 19 |
“yyy” | 年份(最少三位数字)。 | 0001-01-01T00:00:00 -> 001 0900-01-01T00:00:00 -> 900 1900-01-01T00:00:00 -> 1900 2009-06-15T13:45:30 -> 2009 |
“yyyy” | 由四位数字表示的年份。 | 0001-01-01T00:00:00 -> 0001 0900-01-01T00:00:00 -> 0900 1900-01-01T00:00:00 -> 1900 2009-06-15T13:45:30 -> 2009 |
“yyyyy” | 由五位数字表示的年份。 | 0001-01-01T00:00:00 -> 00001 2009-06-15T13:45:30 -> 02009 |
“z” | 相对于 UTC 的小时偏移量,无前导零。 | 2009-06-15T13:45:30-07:00 -> -7 |
“zz” | 相对于 UTC 的小时偏移量,带有表示一位数值的前导零。 | 2009-06-15T13:45:30-07:00 -> -07 |
“zzz” | 相对于 UTC 的小时和分钟偏移量。 | 2009-06-15T13:45:30-07:00 -> -07:00 |
”:” | 时间分隔符。 | 2009-06-15T13:45:30 -> : (en-US) 2009-06-15T13:45:30 -> . (it-IT) 2009-06-15T13:45:30 -> : (ja-JP) |
”/” | 日期分隔符。 详细信息:“/”自定义格式说明符。 | 2009-06-15T13:45:30 -> / (en-US) 2009-06-15T13:45:30 -> - (ar-DZ) 2009-06-15T13:45:30 -> . (tr-TR) |
“string” | 2009-06-15T13:45:30 (“arr:” ht) -> arr: 1:45 P 2009-06-15T13:45:30 (‘arr:’ ht) -> arr: 1:45 P | |
% | 将下面的字符定义为自定义格式说明符。 有关详细信息,请参阅使用单个自定义格式说明符。 | 2009-06-15T13:45:30 (%h) -> 1 |
\ | 转义字符。 | 2009-06-15T13:45:30 (h \h) -> 1 h |
任何其他字符 | 字符将复制到未更改的结果字符串。 | 2009-06-15T01:45:30 (arr hht) -> arr 01:45 A |
用 .NET 的方法格式化数字。
文档:标准数字格式字符串、自定义数字格式字符串。
用 .NET 的方法格式化文本。