ytcollector 1.0.1__py3-none-any.whl → 1.0.3__py3-none-any.whl

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/__init__.py CHANGED
@@ -3,7 +3,7 @@ SBS Dataset Collector - YouTube 영상 수집 및 YOLO-World 검증 파이프라
3
3
  """
4
4
  from pathlib import Path
5
5
 
6
- __version__ = "1.0.1"
6
+ __version__ = "1.0.3"
7
7
  __author__ = "SBS Dataset Team"
8
8
 
9
9
  # Package root directory
ytcollector/config.py CHANGED
@@ -23,7 +23,7 @@ def get_paths(base_dir: Path = None):
23
23
 
24
24
  # 사용자 지정 출력 경로 (네트워크 드라이브 등)
25
25
  # macOS에서는 "/Volumes/Data/..." 등으로 마운트된 경로를 사용해야 함
26
- NAS_PATH_WINDOWS = r"\\192.168.100.192\Data\Private Dataset\SBS_De-Identification_YouTube"
26
+ NAS_PATH_WINDOWS = r"\\NAS_SERVER_IP\Data\Private Dataset\SBS_De-Identification_YouTube"
27
27
  NAS_PATH_MAC = "/Volumes/Data/Private Dataset/SBS_De-Identification_YouTube"
28
28
 
29
29
  if platform.system() == 'Windows':
ytcollector/downloader.py CHANGED
@@ -85,6 +85,15 @@ class VideoDownloader:
85
85
  'download_ranges': download_range_func(None, [(start_sec, end_sec)]),
86
86
  'force_keyframes_at_cuts': True,
87
87
  }
88
+
89
+ # Use ffmpeg from imageio-ffmpeg
90
+ try:
91
+ import imageio_ffmpeg
92
+ ffmpeg_path = imageio_ffmpeg.get_ffmpeg_exe()
93
+ ydl_opts['ffmpeg_location'] = ffmpeg_path
94
+ logger.debug(f"Using ffmpeg from: {ffmpeg_path}")
95
+ except ImportError:
96
+ logger.warning("imageio-ffmpeg not found, relying on system ffmpeg")
88
97
 
89
98
  logger.info(f"Downloading segment [{start_sec}s - {end_sec}s] from: {url}")
90
99
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: ytcollector
3
- Version: 1.0.1
3
+ Version: 1.0.3
4
4
  Summary: SBS 데이터셋 수집기
5
5
  Requires-Python: >=3.9
6
6
  Description-Content-Type: text/markdown
@@ -8,6 +8,7 @@ Requires-Dist: yt-dlp>=2024.1.0
8
8
  Requires-Dist: ultralytics>=8.1.0
9
9
  Requires-Dist: opencv-python>=4.9.0
10
10
  Requires-Dist: tqdm>=4.66.0
11
+ Requires-Dist: imageio-ffmpeg>=0.4.9
11
12
 
12
13
  # Downloader: SBS 데이터셋 수집기
13
14
 
@@ -17,7 +18,7 @@ YouTube 영상에서 얼굴, 자동차 번호판, 타투, 텍스트 자막을
17
18
 
18
19
  **필수 요구사항:**
19
20
  - Python 3.8 이상
20
- - FFmpeg (Mac: `brew install ffmpeg`)
21
+ - FFmpeg (Mac: `brew install ffmpeg`) **👈 필수 설치! (영상 자르기에 필요)**
21
22
 
22
23
  **설치:**
23
24
  ```bash
@@ -28,7 +29,7 @@ pip install -e .
28
29
  **프로젝트 초기화 (최초 1회):**
29
30
  필요한 폴더(`urls/`, `video/`)를 생성합니다.
30
31
  ```bash
31
- downloader init
32
+ ytcollector init
32
33
  ```
33
34
 
34
35
  ---
@@ -54,13 +55,13 @@ face,https://www.youtube.com/watch?v=VIDEO_ID,2,30,설명
54
55
  ### 기본 다운로드 (순차 실행)
55
56
  안정적으로 하나씩 다운로드하고 검증합니다.
56
57
  ```bash
57
- downloader download --task face
58
+ ytcollector download --task face
58
59
  ```
59
60
 
60
61
  ### 🚀 Fast 모드 (병렬 다운로드)
61
62
  대량의 영상을 빠르게 수집할 때 사용합니다. (4개 스레드 동시 실행)
62
63
  ```bash
63
- downloader download --task face --fast
64
+ ytcollector download --task face --fast
64
65
  ```
65
66
  * **방화벽 우회**: 랜덤 딜레이(1~3초)가 적용되어 차단을 방지합니다.
66
67
  * **에러 무시**: 중간에 에러가 나도 멈추지 않고 다음 영상으로 넘어갑니다.
@@ -73,13 +74,13 @@ downloader download --task face --fast
73
74
 
74
75
  ## 4. NAS / 네트워크 저장 설정
75
76
 
76
- 영상을 로컬이 아닌 NAS(`\\192.168.100.192...`)에 저장하려면 설정을 수정하세요.
77
+ 영상을 로컬이 아닌 NAS에 저장하려면 설정을 수정하세요.
77
78
  OS(Windows/Mac)를 자동 감지하여 적절한 경로를 사용합니다.
78
79
 
79
- **설정 파일 수정:** `downloader/config.py`
80
+ **설정 파일 수정:** `ytcollector/config.py`
80
81
  ```python
81
82
  # Windows 예시
82
- NAS_PATH_WINDOWS = r"\\192.168.100.192\Data\Private Dataset\..."
83
+ NAS_PATH_WINDOWS = r"\\NAS_SERVER_IP\Data\Private Dataset\..."
83
84
 
84
85
  # Mac 예시 (/Volumes로 마운트된 경로 확인 필요)
85
86
  NAS_PATH_MAC = "/Volumes/Data/Private Dataset/..."
@@ -91,11 +92,11 @@ NAS_PATH_MAC = "/Volumes/Data/Private Dataset/..."
91
92
 
92
93
  | 명령어 | 설명 | 예시 |
93
94
  |--------|------|------|
94
- | `init` | 프로젝트 초기화 | `downloader init` |
95
- | `download` | 텍스트 파일 목록 대량 다운로드 | `downloader download --task face --fast` |
96
- | `download-single` | URL 1개만 테스트 다운로드 | `downloader download-single --task face ...` |
97
- | `verify` | 수동 YOLO 검증 (기존 파일) | `downloader verify --task face` |
98
- | `list-tasks` | 지원하는 태스크 목록 확인 | `downloader list-tasks` |
95
+ | `init` | 프로젝트 초기화 | `ytcollector init` |
96
+ | `download` | 텍스트 파일 목록 대량 다운로드 | `ytcollector download --task face --fast` |
97
+ | `download-single` | URL 1개만 테스트 다운로드 | `ytcollector download-single --task face ...` |
98
+ | `verify` | 수동 YOLO 검증 (기존 파일) | `ytcollector verify --task face` |
99
+ | `list-tasks` | 지원하는 태스크 목록 확인 | `ytcollector list-tasks` |
99
100
 
100
101
  ## 6. 문제 해결
101
102
  * **검증 실패가 너무 많음**: `config.py`에서 `CONFIDENCE_THRESHOLD` (기본 0.25) 값을 낮춰보세요.
@@ -0,0 +1,12 @@
1
+ config/settings.py,sha256=RcK41kaUC0zam5SsdXfb7u_qjM_TlJDa0a8hC_MGacQ,1197
2
+ ytcollector/__init__.py,sha256=_8OQMfsVmKuF_bE2yzu9G63znAORYbljmSH_hLRiXS4,365
3
+ ytcollector/cli.py,sha256=lhWIraLdPIXS1c35jakPULGuSwzslNA3sOnY8pOWfuM,7570
4
+ ytcollector/config.py,sha256=FrRXle52EP-0OExt4QFuwaPps7ewXe9FC9oobSd1ZWE,2393
5
+ ytcollector/downloader.py,sha256=2pZFFU2mcdELNIH2VC14Ndoq6LYx8uL5ENhQ_kLf5TU,13556
6
+ ytcollector/utils.py,sha256=gInDx6adV-SfQ2SH5_i8w1gvYL-Nsmz1e1W__gCdVH8,4654
7
+ ytcollector/verifier.py,sha256=8Nn3b6fTQYxCGPt01kJMDSZ2hy8gk54deSayOpBuY48,6286
8
+ ytcollector-1.0.3.dist-info/METADATA,sha256=8bOkHNTS2wBwpToauXWK5uqS8dPPWKYrjO4YFOQi0AU,3543
9
+ ytcollector-1.0.3.dist-info/WHEEL,sha256=wUyA8OaulRlbfwMtmQsvNngGrxQHAvkKcvRmdizlJi0,92
10
+ ytcollector-1.0.3.dist-info/entry_points.txt,sha256=PoanZbxogGnV4tLcZZkla0Yh7OvPtqcukDYr563w5RA,53
11
+ ytcollector-1.0.3.dist-info/top_level.txt,sha256=TVfBZHJgYRfSSTgLJELvOoMA55qR8kWuxtiIaItwzIQ,19
12
+ ytcollector-1.0.3.dist-info/RECORD,,
@@ -1,12 +0,0 @@
1
- config/settings.py,sha256=RcK41kaUC0zam5SsdXfb7u_qjM_TlJDa0a8hC_MGacQ,1197
2
- ytcollector/__init__.py,sha256=EKsxEpFheA3CPDMu5by4zxbd0DdLlus_t8Ac7quzxG4,365
3
- ytcollector/cli.py,sha256=lhWIraLdPIXS1c35jakPULGuSwzslNA3sOnY8pOWfuM,7570
4
- ytcollector/config.py,sha256=QAZ2USv3jrXA1xk1SOyTpbig7SIA9ZhI4ObI7qRX1pw,2395
5
- ytcollector/downloader.py,sha256=gFw8tYkpiTK3aJibto15jdWM3UsdQSLRKuIK5dlEFck,13184
6
- ytcollector/utils.py,sha256=gInDx6adV-SfQ2SH5_i8w1gvYL-Nsmz1e1W__gCdVH8,4654
7
- ytcollector/verifier.py,sha256=8Nn3b6fTQYxCGPt01kJMDSZ2hy8gk54deSayOpBuY48,6286
8
- ytcollector-1.0.1.dist-info/METADATA,sha256=nZI0a3Y0bonUmd4pazk2Ys3n7uJwGB4NtHD9bGrzPAU,3470
9
- ytcollector-1.0.1.dist-info/WHEEL,sha256=wUyA8OaulRlbfwMtmQsvNngGrxQHAvkKcvRmdizlJi0,92
10
- ytcollector-1.0.1.dist-info/entry_points.txt,sha256=PoanZbxogGnV4tLcZZkla0Yh7OvPtqcukDYr563w5RA,53
11
- ytcollector-1.0.1.dist-info/top_level.txt,sha256=TVfBZHJgYRfSSTgLJELvOoMA55qR8kWuxtiIaItwzIQ,19
12
- ytcollector-1.0.1.dist-info/RECORD,,