async getVideoList (page = 1, size = 20, showHiden = false, metadataId = 0) {
    let result
    result = db('videos')
    if (!showHiden) result = result.where('isHiden', 0)
    if (metadataId !== 0) result = result.where('metadataId', metadataId)
    result = await result.orderBy('id', 'desc').select('*').paginate({
      perPage: size,
      currentPage: page
    })

    result = result.data
    if (!result) return []

    const processed = []
    for (const i in result) {
      const item = result[i]
      processed.push({
        id: item.id,
        metadataId: item.metadataId,
        videoFileId: item.videoFileId,
        isHiden: (item.isHiden === 1),
        infoFileId: item.infoFileId,
        videoMetadata: JSON.parse(item.videoMetadata),
        storyboardFileIdSet: JSON.parse(item.storyboardFileIdSet || '[]'),
        version: parseInt(item.version) || 1,
        updateTime: item.updateTime
      })
    }

    return processed
  }
Get video list

@param {Int=} page page number
@param {Int=} size page size
@param {Boolean=} showHiden show hiden video
@param {Int=} get list by metadata id

@returns {Array} video info list