Skip to content

Data Model

drop.mov API のコアとなるデータ構造と、それらの関係性について説明します。

Entity Relationship

Core Entities

Media Group

メディアファイルをまとめるコンテナです。

FieldTypeDescription
idUUID一意識別子
namestring?グループ名(任意)
created_byUUID作成者のユーザーID
created_attimestamp作成日時
updated_attimestamp更新日時
deleted_attimestamp?削除日時(ソフトデリート)

特徴:

  • 1つ以上の Media Source を含む
  • Manager Token で管理操作を行う
  • Share (Viewer Token) を通じて共有

Media Source

アップロードされた元のメディアファイルを表します。

FieldTypeDescription
idUUID一意識別子
group_idUUID所属する Media Group
original_namestring元のファイル名
content_typestringMIMEタイプ
sizenumberファイルサイズ(バイト)
extensionstringファイル拡張子
statusenum処理状態
expires_attimestamp有効期限
created_byUUIDアップロードしたユーザー

Status の遷移:

StatusDescription
uploadingアップロード中
uploadedアップロード完了、処理待ち
processingメディア処理中(トランスコード等)
completed処理完了、再生可能
failed処理失敗

Media Output

Media Source から生成された出力ファイル(トランスコード済み動画、サムネイルなど)。

FieldTypeDescription
idUUID一意識別子
source_idUUID元の Media Source
kindenum出力の種類
pathstringS3 上のパス
content_typestringMIMEタイプ
metadataobject追加メタデータ

Output Kind:

KindDescription
hls_masterHLS マスタープレイリスト
hls_variantHLS バリアント(解像度別)
thumbnail代表サムネイル
thumbnail_start開始時点のサムネイル
thumbnail_end終了時点のサムネイル
waveform音声波形データ

Share (Viewer Token)

メディアグループへのアクセス権を表す共有リンク。

FieldTypeDescription
idUUID一意識別子
group_idUUID対象の Media Group
viewer_tokenstringアクセストークン
namestring?共有リンクの名前
can_downloadbooleanダウンロード許可
can_view_commentbooleanコメント閲覧許可
can_post_commentbooleanコメント投稿許可
expires_attimestamp?有効期限
revoked_attimestamp?無効化日時

Comment

メディアに対するコメント。タイムスタンプ付きコメントやスレッド形式に対応。

FieldTypeDescription
idUUID一意識別子
source_idUUID対象の Media Source
user_idUUID投稿者
contentstringコメント本文
timestamp_secondsnumber?動画内のタイムスタンプ(秒)
parent_comment_idUUID?親コメント(返信の場合)

関連エンティティ:

  • Reaction: コメントへのリアクション(emoji)
  • Attachment: コメントに添付された画像やスクリーンショット

Access Control

Manager Token

Media Group に対する完全な管理権限を持つトークン。

Manager Token → Media Group (1:1)

できること:

  • グループ情報の取得・更新・削除
  • Share の作成・更新・無効化
  • Media Source の削除
  • すべてのコメント操作

Viewer Token

共有リンクを通じたアクセス権限。権限は設定可能。

Viewer Token → Media Group (N:1)

権限マトリクス:

操作基本can_downloadcan_view_commentcan_post_comment
グループ情報取得
メディア再生
ダウンロード
コメント閲覧
コメント投稿

Lifecycle

メディアのライフサイクル

コメントのライフサイクル

API Endpoint Mapping

EntityCreateReadUpdateDelete
Media GroupPOST /user/groupsGET /managerPATCH /managerDELETE /manager
Media SourcePOST /user/upload/*(via Group)-DELETE /manager/source/{id}
SharePOST /manager/shareGET /manager/sharesPATCH /manager/share/{id}DELETE /manager/share/{id}
CommentPOST /viewer/{id}/commentGET /viewer/{id}/commentPATCH /viewer/{id}/comment/{cid}DELETE /viewer/{id}/comment/{cid}

drop.mov ― a kumo™ product