📹 Video URL Analyzer
비디오 URL의 재생 가능 여부를 분석하는 Java 라이브러리입니다.
✨ 주요 기능
- ✅ 다양한 플랫폼 지원: 네이버TV, 카카오TV, YouTube, Vimeo, TikTok, Twitter, 웨이보 등
- ✅ 결과: URL 확인 결과
🚀 빠른 시작
설치
Gradle
dependencies {
implementation 'com.caliverse.analyzer:video-url-analyzer:1.0.0'
}
Maven
<dependency>
<groupId>com.caliverse.analyzer</groupId>
<artifactId>video-url-analyzer</artifactId>
<version>1.0.0</version>
</dependency>
JAR 파일 직접 사용
./gradlew clean build
# build/libs/video-url-analyzer-1.0.0.jar 생성됨
기본 사용법
import com.caliverse.analyzer.VideoAnalyzer;
import com.caliverse.analyzer.model.VideoAnalysisResult;
// 1. VideoAnalyzer 인스턴스 생성
VideoAnalyzer analyzer = new VideoAnalyzer();
// 2. URL 분석
VideoAnalysisResult result = analyzer.analyzeUrl("https://tv.naver.com/v/84373511");
// 3. 결과 확인
if (result.isSuccess()) {
System.out.println("✅ 재생 가능: " + result.getReason());
} else {
System.out.println("❌ 재생 불가: " + result.getReason());
}
📖 상세 사용 예제
1. 다양한 플랫폼 URL 분석
VideoAnalyzer analyzer = new VideoAnalyzer();
// 네이버TV (VOD, Clip, Live)
VideoAnalysisResult result1 = analyzer.analyzeUrl("https://tv.naver.com/v/84373511");
VideoAnalysisResult result2 = analyzer.analyzeUrl("https://tv.naver.com/h/87349660");
// 카카오TV
VideoAnalysisResult result3 = analyzer.analyzeUrl("https://tv.kakao.com/channel/10210483/cliplink/459147379");
// YouTube
VideoAnalysisResult result4 = analyzer.analyzeUrl("https://www.youtube.com/watch?v=4dpreJ9wUs8");
// 웨이보
VideoAnalysisResult result5 = analyzer.analyzeUrl("https://weibo.com/tv/show/1034:4872947210436638");
2. 일반 비디오 URL 분석
VideoAnalysisResult result = analyzer.analyzeUrl("https://example.com/video.mp4");
if (!result.isSuccess()) {
// 실패 이유 상세 확인
System.out.println(result.getReason());
/* 출력 예시:
* 재생 불가 사유:
* - 보호된 URL: DRM 보호 키워드 감지: widevine
* - 3D 비디오: 3D 비디오 헤더 감지
*/
}
3. 지원 플랫폼 확인
VideoAnalyzer analyzer = new VideoAnalyzer();
String[] platforms = analyzer.getSupportedPlatforms();
System.out.println("지원 플랫폼: " + String.join(", ", platforms));
// 출력: 지원 플랫폼: 네이버TV, 카카오TV, YouTube, Vimeo, TikTok, Twitter, 웨이보, DirectURL
🔍 분석 기준
✅ 재생 가능 조건 (모두 충족 시)
- 보호되지 않음: DRM, 서명 없음
- AVPlayer 지원: mp4, m3u8, mov 등 지원 포맷
❌ 재생 불가 조건 (하나라도 해당 시)
- DRM으로 보호된 URL
- 서명된 URL (토큰/키 필요)
- 지원되지 않는 비디오 포맷
📊 지원 플랫폼
| 플랫폼 | 지원 여부 | 분석 방식 | 비고 |
|---|---|---|---|
| 네이버TV | ✅ | VOD, Clip, Live 지원 | |
| 카카오TV | ✅ | 클립 및 채널 지원 | |
| YouTube | ✅ | 일반 동영상 및 Shorts | |
| TikTok | ✅ | 동영상 공유 링크 | |
| 웨이보 | ✅ | TV Show | |
| 일반 URL | ✅ | mp4, m3u8, mov 등 |
🛠️ API 문서
VideoAnalyzer
메인 클래스로 비디오 URL 분석 기능을 제공합니다.
메소드
/**
* URL을 분석하여 재생 가능 여부를 판단합니다.
*
* @param url 분석할 비디오 URL
* @return VideoAnalysisResult 분석 결과
*/
public VideoAnalysisResult analyzeUrl(String url)
/**
* 지원하는 플랫폼 목록을 반환합니다.
*
* @return String[] 플랫폼 이름 배열
*/
public String[] getSupportedPlatforms()
VideoAnalysisResult
분석 결과를 담는 클래스입니다.
메소드
/**
* 전체 분석 결과가 성공인지 반환합니다.
*
* @return boolean 재생 가능 여부
*/
public boolean isSuccess()
/**
* 분석 결과의 이유를 반환합니다.
* 성공 시 "모든 검사 통과", 실패 시 상세 이유를 제공합니다.
*
* @return String 결과 이유
*/
public String getReason()
📋 요구사항
- Java: 17 이상
- Gradle: 7.0 이상 (빌드 시)
🤝 기여하기
프로젝트 개선에 참여하고 싶으신가요? CONTRIBUTING.md에서 기여 방법을 확인하세요!
📝 버전 히스토리
v1.0.0 (2025-01-XX)
- ✨ 초기 릴리즈
- ✅ 플랫폼 지원 (네이버TV, 카카오TV, YouTube, TikTok, 웨이보, DirectURL)
- ✅ DRM/보호 URL 감지
- ✅ AVPlayer 호환성 체크
Description
Languages
Java
100%