Media Streaming Backend REST API Reference
새로운 사용자를 생성합니다.
Name
Type
Description
Required
username
String
사용자 이름
TRUE
password
String
비밀번호
TRUE
email
String
사용자 이메일
TRUE
Status Code
Description
201
성공
Name
Type
Description
message
String
회원가입 성공 메시지
사용자의 로그인 상태를 확인하고 토큰을 발급합니다.
Name
Type
Description
Required
email
String
사용자 이메일
TRUE
password
String
비밀번호
TRUE
Status Code
Description
200
성공
Name
Type
Description
id
Number
사용자 ID
username
String
사용자 이름
email
String
사용자 이메일
accountType
String
계정 유형
role
String
사용자 권한
사용자의 로그인 상태를 종료하고 로그아웃 처리합니다.
Status Code
Description
200
성공
Name
Type
Description
message
String
로그아웃 완료 메시지
현재 로그인한 사용자의 정보를 조회합니다.
Status Code
Description
200
성공
Name
Type
Description
id
Number
사용자 ID
username
String
사용자 이름
email
String
사용자 이메일
accountType
String
계정 유형
role
String
사용자 권한
JWT 토큰의 유효성을 확인합니다.
Status Code
Description
200
유효 토큰
401
유효하지 않은 토큰
미디어 목록을 페이징으로 조회하며 태그 또는 제목+내용 검색 기능을 지원합니다.
Name
Type
Description
Required
page
String
페이지 번호 (0부터 시작)
FALSE
size
String
페이지 크기
FALSE
sort
String
정렬 기준 (e.g., view,desc)
FALSE
searchTags
String
태그 검색 여부 (true/false)
FALSE
keywords
String
검색 키워드 (여러 개 가능)
FALSE
Status Code
Description
200
성공
Name
Type
Description
content
Array
미디어 목록
- id
Number
미디어 ID
- title
String
미디어 제목
- duration
Number
동영상 길이 (초 단위)
- thumbnail
String
썸네일 URL
- view
Number
조회수
- userId
Number
작성자 ID
- userName
String
작성자 이름
- userType
String
작성자 유형 (black/white)
number
Number
현재 페이지 번호
size
Number
페이지 크기
totalPages
Number
전체 페이지 수
totalElements
Number
총 요소 수
업로드된 영상을 공개하여 게시글을 생성합니다.
Name
Type
Description
Required
title
String
미디어 제목
TRUE
description
String
미디어 설명
TRUE
tags
String[]
미디어 태그
FALSE
stoppoints
Array
정지점 리스트
FALSE
- stop_time
Number
정지점 시간 (초 단위)
TRUE
- description
String
정지점 설명
TRUE
Status Code
Description
200
성공
Name
Type
Description
id
Number
생성된 미디어 ID
title
String
미디어 제목
description
String
미디어 설명
duration
Number
동영상 길이 (초 단위)
videoUrl
String
동영상 URL
thumbnailUrl
String
썸네일 URL
tags
String[]
미디어 태그
createdAt
String
생성일
updatedAt
String
수정일
view
Number
조회수
userId
Number
작성자 ID
userName
String
작성자 이름
userType
String
작성자 유형 (black/white)
현재 로그인한 사용자가 업로드한 영상 목록을 조회합니다.
Name
Type
Description
Required
page
String
페이지 번호 (0부터 시작)
FALSE
size
String
페이지 크기
FALSE
sort
String
정렬 기준
FALSE
Status Code
Description
200
성공
Name
Type
Description
content
Array
사용자가 업로드한 미디어 목록
- id
Number
미디어 ID
- title
String
미디어 제목
- duration
Number
동영상 길이 (초 단위)
- thumbnail
String
썸네일 URL
- view
Number
조회수
- createdAt
String
생성일
number
Number
현재 페이지 번호
size
Number
페이지 크기
totalPages
Number
전체 페이지 수
totalElements
Number
총 요소 수
미디어 품질 데이터를 저장합니다.
Name
Type
Description
Required
mediaId
Number
미디어 ID
TRUE
userId
Number
사용자 ID
TRUE
downloadBitrate
Number
다운로드 비트레이트
TRUE
selectedBitrate
Number
선택된 비트레이트
TRUE
bufferingStart
Number
버퍼링 시작 시간 (초)
TRUE
bufferingEnd
Number
버퍼링 종료 시간 (초)
TRUE
Status Code
Description
200
성공
특정 미디어 ID를 통해 상세 정보를 조회합니다.
Name
Type
Description
Required
id
String
조회할 미디어 ID
TRUE
Status Code
Description
200
성공
Name
Type
Description
id
Number
미디어 ID
title
String
미디어 제목
description
String
미디어 설명
duration
Number
동영상 길이 (초 단위)
videoUrl
String
동영상 URL
thumbnailUrl
String
썸네일 URL
tags
String[]
미디어 태그
createdAt
String
생성일
updatedAt
String
수정일
view
Number
조회수
userId
Number
작성자 ID
userName
String
작성자 이름
userType
String
작성자 유형 (black/white)
특정 미디어에 작성된 댓글 목록을 조회합니다.
Name
Type
Description
Required
mediaId
String
조회할 미디어 ID
TRUE
Status Code
Description
200
성공
Name
Type
Description
content
Object[]
댓글 목록
- id
Number
댓글 ID
- content
String
댓글 내용
- userId
Number
댓글 작성자 ID
- username
String
댓글 작성자 이름
- userType
String
댓글 작성자 계정 유형
- mediaId
Number
댓글이 작성된 미디어 ID
- replyCount
Number
댓글에 달린 답글 수
number
Number
현재 페이지 번호
size
Number
페이지 크기
totalPages
Number
총 페이지 수
totalElements
Number
총 댓글 수
특정 미디어에 댓글을 추가합니다.
Name
Type
Description
Required
mediaId
String
댓글을 추가할 미디어 ID
TRUE
Name
Type
Description
Required
content
String
댓글 내용
TRUE
Status Code
Description
201
성공
Name
Type
Description
id
Number
생성된 댓글 ID
content
String
댓글 내용
userId
Number
작성자 ID
username
String
작성자 이름
userType
String
작성자 유형 (black/white)
mediaId
Number
댓글이 추가된 미디어 ID
특정 미디어의 좋아요 개수를 조회합니다.
Name
Type
Description
Required
mediaId
String
좋아요 개수를 조회할 미디어 ID
TRUE
Status Code
Description
200
성공
Name
Type
Description
mediaId
Number
미디어 ID
likeCount
Number
좋아요 개수
특정 미디어에 좋아요를 추가합니다.
Name
Type
Description
Required
mediaId
String
좋아요를 추가할 미디어 ID
TRUE
Status Code
Description
201
성공
특정 미디어에서 좋아요를 삭제합니다.
Name
Type
Description
Required
mediaId
String
좋아요를 삭제할 미디어 ID
TRUE
Status Code
Description
204
성공
특정 미디어의 정지점 목록을 조회합니다.
Name
Type
Description
Required
mediaId
String
조회할 미디어 ID
TRUE
Status Code
Description
200
성공
Name
Type
Description
id
Number
정지점 ID
stop_time
Number
정지점 시간 (초)
description
String
정지점 설명
특정 미디어에 새로운 정지점을 생성합니다.
Name
Type
Description
Required
mediaId
String
정지점을 추가할 미디어 ID
TRUE
Name
Type
Description
Required
stop_time
Number
정지점 시간 (초 단위)
TRUE
description
String
정지점 설명
TRUE
Status Code
Description
201
성공
Name
Type
Description
id
Number
정지점 ID
stop_time
Number
정지점 시간 (초)
description
String
정지점 설명
특정 미디어의 정지점을 삭제합니다.
Name
Type
Description
Required
mediaId
String
정지점을 삭제할 미디어 ID
TRUE
stoppointId
String
삭제할 정지점 ID
TRUE
Status Code
Description
204
성공
댓글 또는 답글을 삭제합니다.
Name
Type
Description
Required
commentId
String
삭제할 댓글 ID
TRUE
Status Code
Description
204
성공
특정 상위 댓글의 답글 목록을 조회합니다.
Name
Type
Description
Required
parentId
String
상위 댓글 ID
TRUE
page
String
페이지 번호
TRUE
size
String
페이지 크기
TRUE
Status Code
Description
200
성공
Name
Type
Description
content
Array
답글 목록
- id
Number
답글 ID
- content
String
답글 내용
- userId
Number
답글 작성자 ID
- username
String
답글 작성자 이름
- userType
String
작성자 유형 (black/white)
- mediaId
Number
연결된 미디어 ID
특정 상위 댓글에 답글을 추가합니다.
Name
Type
Description
Required
parentId
String
답글 추가 대상 댓글 ID
TRUE
Name
Type
Description
Required
content
String
답글 내용
TRUE
Status Code
Description
201
성공
Name
Type
Description
id
Number
답글 ID
content
String
답글 내용
userId
Number
답글 작성자 ID
username
String
답글 작성자 이름
userType
String
작성자 유형 (black/white)
mediaId
Number
연결된 미디어 ID
사용자의 모든 재생 기록을 조회합니다.
Status Code
Description
200
성공
Name
Type
Description
mediaId
Number
재생 기록이 있는 미디어 ID
mediaTitle
String
미디어 제목
thumbnailUrl
String
미디어 썸네일 URL
lastPlayedTime
Number
마지막 재생 시간 (초 단위)
createdat
String
재생 기록 생성 시간
특정 미디어의 재생 기록을 삭제합니다.
Name
Type
Description
Required
mediaId
String
재생 기록을 삭제할 미디어 ID
TRUE
Status Code
Description
204
성공
특정 미디어의 재생 기록을 저장하거나 갱신합니다.
Name
Type
Description
Required
mediaId
String
재생 기록을 저장할 미디어 ID
TRUE
Name
Type
Description
Required
lastPlayedTime
Number
마지막 재생 시간 (초 단위)
TRUE
Status Code
Description
201
성공
Name
Type
Description
mediaId
Number
재생 기록이 있는 미디어 ID
mediaTitle
String
미디어 제목
thumbnailUrl
String
미디어 썸네일 URL
lastPlayedTime
Number
마지막 재생 시간 (초 단위)
createdat
String
재생 기록 생성 시간
사용자의 모든 재생 기록을 삭제합니다.
Status Code
Description
200
성공
사용자가 생성한 재생목록의 목록을 조회합니다.
Status Code
Description
200
성공
Name
Type
Description
content
Object[]
재생목록 목록
- id
Number
재생목록 ID
- title
String
재생목록 제목
- description
String
재생목록 설명
number
Number
현재 페이지 번호
size
Number
페이지 크기
totalPages
Number
총 페이지 수
totalElements
Number
총 재생목록 수
새로운 재생목록을 생성합니다.
Name
Type
Description
Required
title
String
재생목록 제목
TRUE
description
String
재생목록 설명
FALSE
Status Code
Description
201
성공
Name
Type
Description
id
Number
생성된 재생목록 ID
title
String
재생목록 제목
description
String
재생목록 설명
특정 재생목록을 삭제합니다.
Name
Type
Description
Required
playlistId
String
삭제할 재생목록 ID
TRUE
Status Code
Description
204
성공
특정 재생목록에 포함된 동영상 목록을 조회합니다.
Name
Type
Description
Required
playlistId
String
조회할 재생목록의 ID
TRUE
Status Code
Description
200
성공
Name
Type
Description
content
Object[]
재생목록 동영상 목록
- id
Number
재생목록 아이템 ID
- playlistId
Number
재생목록 ID
- mediaId
Number
미디어 ID
- mediaTitle
String
미디어 제목
- mediaThumbnailUrl
String
미디어 썸네일 URL
- orderIndex
Number
동영상 순서
특정 재생목록에 동영상을 추가합니다.
Name
Type
Description
Required
playlistId
String
동영상을 추가할 재생목록 ID
TRUE
Name
Type
Description
Required
mediaId
Number
추가할 미디어 ID
TRUE
orderIndex
Number
동영상 추가 순서
TRUE
Status Code
Description
201
성공
Name
Type
Description
id
Number
생성된 아이템 ID
playlistId
Number
재생목록 ID
mediaId
Number
미디어 ID
mediaTitle
String
미디어 제목
mediaThumbnailUrl
String
미디어 썸네일 URL
orderIndex
Number
동영상 순서
재생목록 내 동영상의 순서를 변경합니다.
Name
Type
Description
Required
playlistId
String
순서를 변경할 재생목록 ID
TRUE
Name
Type
Description
Required
mediaId
Number
동영상 ID
TRUE
orderIndex
Number
변경할 동영상 순서
TRUE
Status Code
Description
200
성공
상위 20명의 사용자 랭킹 정보를 조회합니다.
Status Code
Description
200
성공
Name
Type
Description
userId
Number
사용자 ID
username
String
사용자 이름
score
Number
사용자 점수
관리자가 랭킹 정보를 수동으로 갱신할 수 있습니다.
Status Code
Description
200
"Ranking updated successfully!"
동영상 업로드 시 추천 태그 목록을 제공합니다.
Status Code
Description
200
성공
Name
Type
Description
recommended_tags
String[]
추천 태그 목록
썸네일 이미지(jpg, 10mb 이하)을 업로드한 후, 업로드된 썸네일의 url을 반환한다.
Name
Type
Description
Required
image
File
업로드할 이미지 파일 (jpg)
TRUE
Status Code
Description
200
성공
Name
Type
Description
thumbnailUrl
String
업로드된 이미지의 URL
8.2 비디오 업로드 Presigned URL 생성
AWS S3에 비디오를 업로드하기 위한 presigned URL을 생성합니다.
Name
Type
Description
Required
fileName
String
업로드할 비디오 파일 이름
TRUE
fileSize
Number
업로드할 비디오 파일 크기 (5MB~1GB)
TRUE
key
String
사용자 고유 키
TRUE
Status Code
Description
200
성공
Name
Type
Description
uploadId
String
Presigned URL 업로드 ID
url
String[]
Presigned URL 리스트
chunkSize
Number
업로드할 비디오의 청크 크기
AWS S3 비디오 업로드가 완료되었음을 서버에 알립니다.
Name
Type
Description
Required
uploadId
String
업로드한 Presigned URL의 ID
TRUE
key
String
사용자 고유 키
TRUE
results
Object[]
업로드한 비디오 청크의 eTag 정보
TRUE
- partNumber
Number
청크 번호
TRUE
- eTag
String
업로드된 비디오 청크의 eTag
TRUE
Status Code
Description
200
성공
사용자가 영상을 업로드할 수 있는 10분 동안 유효한 고유키를 생성합니다.
없음
Status Code
Description
200
성공
Name
Type
Description
key
String
생성된 업로드 고유키
업로드된 비디오의 처리 상태를 조회합니다.
Status Code
Description
200
성공
Name
Type
Description
fileName
String
업로드된 비디오 파일 이름 (없으면 null)
isAvailable
Boolean
비디오 처리 완료 여부
fileProcessState
String
비디오 처리 상태 (UPLOADED, FINISH)
videoUrl
String
비디오 URL (처리 완료된 경우)
duration
Number
비디오 길이 (초 단위)
thumbnailUrl
String
비디오 썸네일 URL