ytcollector 1.2.0__tar.gz → 1.2.3__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- ytcollector-1.2.3/MANIFEST.in +2 -0
- {ytcollector-1.2.0 → ytcollector-1.2.3}/PKG-INFO +1 -1
- {ytcollector-1.2.0 → ytcollector-1.2.3}/pyproject.toml +4 -1
- {ytcollector-1.2.0 → ytcollector-1.2.3}/ytcollector/__init__.py +3 -2
- {ytcollector-1.2.0 → ytcollector-1.2.3}/ytcollector/analyzer.py +2 -2
- {ytcollector-1.2.0 → ytcollector-1.2.3}/ytcollector/config.py +18 -4
- ytcollector-1.2.3/ytcollector/models/license_plate_detector.pt +0 -0
- {ytcollector-1.2.0 → ytcollector-1.2.3}/ytcollector.egg-info/PKG-INFO +1 -1
- {ytcollector-1.2.0 → ytcollector-1.2.3}/ytcollector.egg-info/SOURCES.txt +3 -1
- {ytcollector-1.2.0 → ytcollector-1.2.3}/README.md +0 -0
- {ytcollector-1.2.0 → ytcollector-1.2.3}/setup.cfg +0 -0
- {ytcollector-1.2.0 → ytcollector-1.2.3}/ytcollector/cli.py +0 -0
- {ytcollector-1.2.0 → ytcollector-1.2.3}/ytcollector/dataset_builder.py +0 -0
- {ytcollector-1.2.0 → ytcollector-1.2.3}/ytcollector/downloader.py +0 -0
- {ytcollector-1.2.0 → ytcollector-1.2.3}/ytcollector/utils.py +0 -0
- {ytcollector-1.2.0 → ytcollector-1.2.3}/ytcollector.egg-info/dependency_links.txt +0 -0
- {ytcollector-1.2.0 → ytcollector-1.2.3}/ytcollector.egg-info/entry_points.txt +0 -0
- {ytcollector-1.2.0 → ytcollector-1.2.3}/ytcollector.egg-info/requires.txt +0 -0
- {ytcollector-1.2.0 → ytcollector-1.2.3}/ytcollector.egg-info/top_level.txt +0 -0
|
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "ytcollector"
|
|
7
|
-
version = "1.2.
|
|
7
|
+
version = "1.2.3"
|
|
8
8
|
description = "YouTube 콘텐츠 수집기 - 얼굴, 번호판, 타투, 텍스트 감지"
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
requires-python = ">=3.8"
|
|
@@ -59,6 +59,9 @@ Repository = "https://github.com/yourusername/ytcollector"
|
|
|
59
59
|
where = ["."]
|
|
60
60
|
include = ["ytcollector*"]
|
|
61
61
|
|
|
62
|
+
[tool.setuptools.package-data]
|
|
63
|
+
ytcollector = ["models/*.pt"]
|
|
64
|
+
|
|
62
65
|
[tool.black]
|
|
63
66
|
line-length = 100
|
|
64
67
|
target-version = ['py38']
|
|
@@ -17,12 +17,12 @@ CLI 사용 예시:
|
|
|
17
17
|
ytc -c face text --fast
|
|
18
18
|
"""
|
|
19
19
|
|
|
20
|
-
from .config import CATEGORY_NAMES, CATEGORY_QUERIES, USER_AGENTS, LICENSE_PLATE_PATTERNS
|
|
20
|
+
from .config import CATEGORY_NAMES, CATEGORY_QUERIES, USER_AGENTS, LICENSE_PLATE_PATTERNS, LICENSE_PLATE_MODEL_PATH
|
|
21
21
|
from .analyzer import VideoAnalyzer, check_dependencies
|
|
22
22
|
from .downloader import YouTubeDownloader
|
|
23
23
|
from .cli import run, main as cli_main
|
|
24
24
|
|
|
25
|
-
__version__ = "1.
|
|
25
|
+
__version__ = "1.2.3"
|
|
26
26
|
__all__ = [
|
|
27
27
|
# 주요 클래스
|
|
28
28
|
"VideoAnalyzer",
|
|
@@ -32,6 +32,7 @@ __all__ = [
|
|
|
32
32
|
"CATEGORY_QUERIES",
|
|
33
33
|
"USER_AGENTS",
|
|
34
34
|
"LICENSE_PLATE_PATTERNS",
|
|
35
|
+
"LICENSE_PLATE_MODEL_PATH",
|
|
35
36
|
# 유틸리티
|
|
36
37
|
"check_dependencies",
|
|
37
38
|
"run",
|
|
@@ -32,7 +32,7 @@ try:
|
|
|
32
32
|
except ImportError:
|
|
33
33
|
USE_GPU = False
|
|
34
34
|
|
|
35
|
-
from .config import LICENSE_PLATE_PATTERNS,
|
|
35
|
+
from .config import LICENSE_PLATE_PATTERNS, LICENSE_PLATE_MODEL_PATH, YOLO_CONFIDENCE
|
|
36
36
|
|
|
37
37
|
|
|
38
38
|
class VideoAnalyzer:
|
|
@@ -65,7 +65,7 @@ class VideoAnalyzer:
|
|
|
65
65
|
if self.yolo_model is None:
|
|
66
66
|
device = "cuda" if USE_GPU else "cpu"
|
|
67
67
|
print(f" YOLO 모델 로딩 중... (Device: {device})")
|
|
68
|
-
self.yolo_model = YOLO(
|
|
68
|
+
self.yolo_model = YOLO(str(LICENSE_PLATE_MODEL_PATH))
|
|
69
69
|
self.yolo_model.to(device)
|
|
70
70
|
|
|
71
71
|
def extract_frames(self, video_path, num_frames=10):
|
|
@@ -1,4 +1,9 @@
|
|
|
1
1
|
# 설정 상수
|
|
2
|
+
from pathlib import Path
|
|
3
|
+
|
|
4
|
+
# 모델 경로 (패키지 내부)
|
|
5
|
+
MODEL_DIR = Path(__file__).parent / "models"
|
|
6
|
+
LICENSE_PLATE_MODEL_PATH = MODEL_DIR / "license_plate_detector.pt"
|
|
2
7
|
|
|
3
8
|
USER_AGENTS = [
|
|
4
9
|
'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36',
|
|
@@ -57,8 +62,18 @@ CATEGORY_NAMES = {
|
|
|
57
62
|
# 카테고리별 제외 키워드 (제목에 포함 시 스킵)
|
|
58
63
|
BLACKLIST_KEYWORDS = {
|
|
59
64
|
'tattoo': [
|
|
60
|
-
|
|
61
|
-
"
|
|
65
|
+
# 반영구 화장 (Semi-permanent makeup)
|
|
66
|
+
"눈썹", "입술", "두피", "헤어라인", "아이라인", "구렛나룻",
|
|
67
|
+
"반영구", "영구화장", "립타투", "헤어타투", "SMP",
|
|
68
|
+
"마이크로블레이딩", "microblading", "엠보", "콤보", "PMU",
|
|
69
|
+
# 임시/가짜 타투
|
|
70
|
+
"헤나", "henna", "스티커", "페이크", "fake", "임시", "붙이는",
|
|
71
|
+
# 타투 제거
|
|
72
|
+
"제거", "레이저", "지우기", "removal",
|
|
73
|
+
# 도안/디자인만 (실제 시술 아님)
|
|
74
|
+
"도안", "디자인", "스케치", "드로잉", "그리기",
|
|
75
|
+
# 의료/미용 시술
|
|
76
|
+
"유두", "유륜", "흉터", "점",
|
|
62
77
|
],
|
|
63
78
|
'face': [],
|
|
64
79
|
'license_plate': [],
|
|
@@ -66,8 +81,7 @@ BLACKLIST_KEYWORDS = {
|
|
|
66
81
|
}
|
|
67
82
|
|
|
68
83
|
# YOLO 설정
|
|
69
|
-
|
|
70
|
-
YOLO_CONFIDENCE = 0.5 # 오탐지 방지를 위해 신뢰도 상향
|
|
84
|
+
YOLO_CONFIDENCE = 0.5 # 오탐지 방지를 위해 신뢰도 상향
|
|
71
85
|
|
|
72
86
|
# 번호판 정규식 패턴 (한국 자동차 번호판 중심)
|
|
73
87
|
LICENSE_PLATE_PATTERNS = [
|
|
Binary file
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
MANIFEST.in
|
|
1
2
|
README.md
|
|
2
3
|
pyproject.toml
|
|
3
4
|
ytcollector/__init__.py
|
|
@@ -12,4 +13,5 @@ ytcollector.egg-info/SOURCES.txt
|
|
|
12
13
|
ytcollector.egg-info/dependency_links.txt
|
|
13
14
|
ytcollector.egg-info/entry_points.txt
|
|
14
15
|
ytcollector.egg-info/requires.txt
|
|
15
|
-
ytcollector.egg-info/top_level.txt
|
|
16
|
+
ytcollector.egg-info/top_level.txt
|
|
17
|
+
ytcollector/models/license_plate_detector.pt
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|