2025-11-28 16:05:05 +09:00
2025-11-28 15:58:57 +09:00
2025-11-28 15:58:57 +09:00
2025-11-28 16:05:05 +09:00
2025-11-28 15:58:57 +09:00
2025-11-28 15:58:57 +09:00
2025-11-28 15:58:57 +09:00
2025-11-28 15:58:57 +09:00
2025-11-28 15:58:57 +09:00
2025-11-28 15:58:57 +09:00
2025-11-28 15:58:57 +09:00
2025-11-28 15:58:57 +09:00
2025-11-28 15:58:57 +09:00

📹 Video URL Analyzer

비디오 URL의 재생 가능 여부를 분석하는 Java 라이브러리입니다.

Java License

주요 기능

  • 다양한 플랫폼 지원: 네이버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

🔍 분석 기준

재생 가능 조건 (모두 충족 시)

  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 분석 기능을 제공합니다.

메소드

/**
 * 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
No description provided
Readme 3.9 MiB
Languages
Java 100%