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