GitHub

zhouxiaoka/autoclip — AutoClip : AI-powered video clipping and highlight generation · 一款智能高光提取与剪辑的二创工具

AutoClip — AI로 동영상 하이라이트를 추출하고 클립·모음집을 만드는 오픈소스 시스템

AutoClip은 YouTube·B站(Bilibili) 영상이나 로컬 파일을 받아 통의천문(Qwen)으로 개요·주제 시간대·하이라이트 점수를 분석하고 클립과 모음집을 생성합니다. FastAPI·Celery·Redis 기반 비동기 처리와 WebSocket 진행률 표시를 제공하며 Docker 배포를 지원합니다.

AI 요약

AutoClip은 YouTube와 B站(Bilibili) 영상 링크 또는 로컬 동영상 파일을 입력받아 하이라이트 클립을 자동으로 생성하는 오픈소스 시스템입니다. 영상과 자막을 준비한 뒤 AI로 내용과 시간대를 분석하고, 재미 점수와 제목을 계산해 개별 클립과 모음집을 만듭니다. AI 분석에는 알리바바의 통의천문(Qwen) 대규모 언어 모델을 사용하며, DashScope API 키와 모델 이름을 환경 변수로 설정합니다.

■ 처리 흐름과 AI 파이프라인

웹 화면에서 새 프로젝트를 만든 뒤 YouTube 링크, B站 링크, 파일 업로드 중 하나를 선택합니다. YouTube는 브라우저 Cookie를 선택적으로 지정할 수 있고, B站은 로그인 계정을 선택하는 흐름을 제공합니다. 로컬 파일은 자막 파일을 함께 업로드할 수 있습니다.

처리는 여섯 단계로 구성됩니다. 먼저 영상과 자막을 다운로드하거나 업로드 파일을 준비합니다. 다음으로 AI가 영상 개요와 주요 정보를 추출하고, 화제별 시간 구간을 찾습니다. 각 구간에는 하이라이트 점수를 매기며, 생성한 클립에 제목을 붙입니다. 마지막으로 AI가 여러 클립을 조합한 모음집을 추천하고 영상 파일을 생성합니다. 사용자는 프로젝트 상세 화면에서 결과를 확인하고 클립 제목과 설명을 수정한 뒤, 개별 영상이나 전체 모음집을 내려받습니다. 모음집은 AI 추천을 따르거나 직접 만들 수 있으며 드래그로 순서를 바꿉니다.

■ 백엔드와 비동기 처리

백엔드는 FastAPI로 구성하며 Pydantic으로 데이터 검증과 직렬화를 처리합니다. Celery가 영상 다운로드와 AI 분석, 영상 생성 작업을 비동기 태스크로 실행하고 Redis가 메시지 브로커와 캐시, 작업 상태 저장소 역할을 맡습니다. WebSocket은 처리 진행률을 웹 화면에 실시간으로 전달합니다. 데이터베이스는 기본값으로 SQLite를 사용하며 PostgreSQL로 전환하는 구성을 안내합니다. 파일은 프로젝트, 업로드, 임시 파일, 출력 디렉터리에 나누어 저장합니다.

처리 파이프라인 코드는 개요 추출, 타임라인 분석, 하이라이트 점수 계산, 영상 생성을 별도 단계로 나눕니다. Celery Worker를 직접 실행할 때는 작업 큐를 지정해야 합니다. 문서에는 celery,processing,video,notification,upload 큐를 함께 소비하는 실행 명령이 제시되어 있으며, 기본 큐만 소비하면 처리 작업이 processing 큐에 남을 수 있다고 설명합니다. Flower를 실행하면 작업 상태를 모니터링할 수 있습니다.

■ 프론트엔드와 API

프론트엔드는 React 18, TypeScript, Ant Design, Vite를 사용합니다. Zustand로 상태를 관리하고 React Router로 화면을 구성하며 Axios와 React Player를 사용합니다. 주요 화면은 홈페이지, 프로젝트 상세 페이지, 설정 페이지입니다. 백엔드에는 프로젝트 목록과 생성, 프로젝트 상세 조회, YouTube 정보 분석 및 다운로드, B站 다운로드, 프로젝트 처리 시작, 처리 상태 조회 API가 마련되어 있습니다. 개발 환경에서는 프론트엔드가 3000번 포트, 백엔드가 8000번 포트에서 실행되며 /docs/redoc에서 FastAPI 문서를 확인합니다.

■ 설치와 실행

Docker 환경에서는 저장소를 복제한 뒤 ./docker-start.sh를 실행하거나 docker-compose up -d로 서비스를 시작합니다. 개발 환경은 ./docker-start.sh dev 또는 개발용 Compose 설정을 사용합니다. 수동 설치에는 Python 3.8 이상, Node.js 16 이상, Redis 6.0 이상, FFmpeg가 필요합니다. 메모리는 최소 4GB, 권장 8GB 이상이며 저장 공간은 최소 10GB를 요구합니다. .env 파일에는 SQLite 데이터베이스 경로, Redis URL, DashScope API 키, qwen-plus 모델 이름, 업로드·프로젝트 저장 경로를 지정합니다.

백엔드와 프론트엔드를 각각 개발 서버로 실행할 수 있고, Redis와 Celery Worker, Beat 스케줄러를 별도로 시작하는 방식도 문서에 포함되어 있습니다. Docker 실행 스크립트에는 시작·중지·상태 확인 명령이 제공됩니다. 운영 환경 설정 항목으로는 PostgreSQL 전환, Redis 메모리와 영속성 조정, Celery 동시성 설정, HTTPS와 CORS 제한, API 접근 제한, 민감 데이터 암호화와 백업이 제시되어 있습니다.

■ 현재 상태와 예정 기능

B站 영상 업로드, B站 다중 계정 관리, 시각적 자막 편집과 동기화, 모바일 환경 개선은 개발 중인 기능으로 표시되어 있습니다. 이후 계획에는 다국어 처리, 클라우드 저장소, 일괄 처리, 공개 API, 모바일 애플리케이션, 추가 AI 모델, 실시간 협업, 플러그인 시스템, 기업용 기능이 포함되어 있습니다. 저장소에는 Docker 설정, 개발 문서, API 모듈, Celery 태스크, 영상 처리 서비스, 프론트엔드 컴포넌트가 분리되어 있어 직접 실행하거나 기능을 확장하는 구조를 제공합니다.

원문: GitHub / 번역·요약: Trawling