Skip to content

Latest commit

 

History

58 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SoundHub

1. 서비스 개요

SoundCloud와 같이 누구나 자신이 만든 음악을 업로드하면, 검증·비동기 트랜스코딩·검수를 거쳐 배포되는 플랫폼

사용자

역할 주요 기능
크리에이터 음원 업로드, 처리 상태 확인, 반려 사유 확인 및 수정
일반 사용자 음원 검색·재생, AI 챗봇을 통한 음악 탐색
운영자 콘텐츠 검수, 파이프라인 관리, 크리에이터 제재, 신고 처리

MVP 1 — 운영자 백오피스

① 운영 대시보드

  • 오늘 업로드 수, 검수 대기·승인·반려 건수, 전체 작업 처리 수
  • 이상 상태·실패 작업 알림, 지표 클릭 시 관련 목록으로 이동

② 음원 검수 대기열

  • 필터: 음원명, 크리에이터명, 업로드일시, 검수상태, 부적절 콘텐츠 탐지 여부
  • 검수 정보: 미리듣기, 메타데이터, 커버 이미지, 파일 스펙, AI 분석 결과
  • 처리: 승인 / 반려(사유 기록) / 수정 요청 / 임시 보류

③ 파이프라인 대시보드

  • 처리 단계: 음원 등록 요청 →검증→트랜스코딩→AI분석→검수→배포

    ① 검증 (Validate)

    검사 항목 무엇을 확인하는지
    스펙 추출 재생시간, 코덱, 비트레이트
    최대 파일 크기 제한 너무 큰 파일 거부
    중복 업로드 검사 동일 파일 재업로드 방지
    파일 손상 여부 ffprobe로 열었을 때 에러 없이 메타데이터 추출되는지
    MIME 타입 검사(후순위) 확장자가 아니라 파일 실제 내용 기반으로 진짜 오디오인지
    매직바이트 검사(후순위) 파일 시그니처가 mp3/wav 포맷과 일치하는지

    ② 트랜스코딩 (Transcode)

    목적: 검증 통과한 원본을 실제 서비스에서 쓸 수 있는 형태(고음질 스트리밍용 + 미리듣기용)로 변환 + 앨범 커버 이미지도 이 단계에서 같이 처리 (WebP 변환 + 리사이징)

    구현 방법: FFmpeg를 서브프로세스로 직접 호출

    ③ AI 콘텐츠 분석 (AI Analyze)

    목적: 변환까지 끝난 곡의 가사가 정책상 문제없는지 판단, 부적절 콘텐츠 탐지

    구현 방법: STT(가사 추출) → LLM 분류

  • 진행상태, 작업 상태(WAITING/PROCESSING/COMPLETED/FAILED/RETRYING)

  • 실패 작업 단건/단계별 재처리, 멱등성 보장(작업 ID 기준 중복실행 방지)


MVP 2 — 사용자 웹 화면

크리에이터

  • 음원 업로드(파일+메타데이터+커버이미지)
  • 처리 상태 확인(진행 단계 실시간 조회)
  • 반려 사유 확인 및 재제출

일반 사용자

  • 음원 재생 (공개 상태 + 재생 권한 있는 음원만)
  • AI 음악 탐색 챗봇
    • 최신 음악, 장르 추천, 가사/크리에이터로 음원 찾기

공통 인증 (후순위)

  • JWT Access/Refresh Token, 역할 기반(일반 사용자/크리에이터/운영자) API 접근 제어

나중에 확장하면 좋을 것들

  • 크리에이터 관리: 활동 이력 조회, 경고/업로드제한/일시정지/영구정지/정지해제
  • 신고 관리: 신고 접수→검토→소명요청→처리, 음원 임시 비공개
  • AI 분석: 저작권 의심, AI 분석 위험도, 성인인증 필요 음악 판별
  • 감사 로그: 운영자 작업 이력(변경 전후 값, IP, 요청ID까지 포함한 상세 추적)
  • 운영 대시보드의 Kafka Consumer Lag/DLQ 실시간 지표, 기간별 통계
  • 파이프라인: Retry Topic/DLQ 상세 조회, Kafka 이벤트 이력 조회, SSE 기반 실시간 진행률
  • 음원 검색, 좋아요, 커뮤니티 기능, 나만의 음악 앨범
  • 챗봇: 청취이력 기반 검색(추천시스템)

ERD(변경 가능)

image

DFD

image

API 문서

노션 정리

https://stripe-caper-24c.notion.site/API-3a906564e6b88055b7bbf1fe6f0ef8ae?source=copy_link

Swagger UI

https://app.swaggerhub.com/apis/ybe1027organization/SoundHub/1.0.0

About

[개인 프로젝트]

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages