# 터미널에서 직접 영화 검색 및 토렌트 실행이 가능한 CineCLI

> Clean Markdown view of GeekNews topic #25309. Use the original source for factual precision when an external source URL is present.

## Metadata

- GeekNews HTML: [https://news.hada.io/topic?id=25309](https://news.hada.io/topic?id=25309)
- GeekNews Markdown: [https://news.hada.io/topic/25309.md](https://news.hada.io/topic/25309.md)
- Type: GN+
- Author: [neo](https://news.hada.io/@neo)
- Published: 2025-12-25T03:34:09+09:00
- Updated: 2025-12-25T03:34:09+09:00
- Original source: [github.com/eyeblech](https://github.com/eyeblech/cinecli)
- Points: 3
- Comments: 1

## Topic Body

- **CineCLI**는 터미널 환경에서 영화 정보를 검색하고 토렌트를 직접 실행할 수 있는 **크로스플랫폼 CLI 도구**  
- **YTS API**를 통해 영화 데이터를 불러오며, **최고 품질과 건강한 시드**를 자동으로 선택  
- **Python 3.11+** 기반으로 제작되었으며, **Typer**와 **Rich**를 사용해 직관적인 인터페이스 제공  
- **Nix/NixOS** 환경에서는 별도 설치 없이 실행 가능하며, **magnet 링크**를 OS 기본 토렌트 클라이언트로 전달  
- 단순한 명령형 검색부터 **대화형 모드**까지 지원해, 개발자와 영화 애호가 모두에게 유용한 도구  

---

### CineCLI 개요
- **CineCLI**는 터미널에서 영화 토렌트를 탐색, 확인, 실행할 수 있는 **빠르고 미니멀한 CLI 애플리케이션**  
  - Linux, macOS, Windows에서 모두 작동  
  - `rich` 기반의 **시각적으로 깔끔한 터미널 UI** 제공  
- **YTS API**를 사용해 영화 정보를 검색하고, 결과를 ID·제목·연도·평점 형태로 표시  
- 사용자는 영화 ID를 선택해 세부 정보를 확인하고, 원하는 토렌트를 선택하거나 자동 선택 기능을 이용 가능  

### 주요 기능
- **영화 검색**: `cinecli search <제목>` 명령으로 YTS에서 영화 검색  
- **세부 정보 보기**: 선택한 영화의 상세 정보와 이용 가능한 토렌트 목록 표시  
- **자동 토렌트 선택**: 최고 화질과 건강한 시드를 기준으로 자동 선택  
- **토렌트 실행**: magnet 링크를 OS에 등록된 기본 클라이언트(`qBittorrent`, `Transmission` 등)로 전달  
- **.torrent 파일 다운로드** 옵션 제공  
- **대화형 모드(interactive)** 지원으로, 검색→선택→다운로드 과정을 단계적으로 수행  

### 설치 및 실행
- **pip 설치**:  
  ```bash
  pip install cinecli
  ```  
  - Python 3.11 이상 필요  
- **Nix/NixOS 지원**:  
  - flake 기반으로 Python이나 pip 설치 없이 실행 가능  
  - `nix run github:eyeblech/cinecli` 명령으로 바로 실행  
  - `nix profile add github:eyeblech/cinecli`로 프로필에 추가 가능  
- **소스 코드 설치(개발자용)** :  
  ```bash
  git clone https://github.com/eyeblech/cinecli.git
  cd cinecli
  pip install -e .
  ```

### 사용 예시
- **검색 예시**  
  ```bash
  cinecli search matrix
  ```  
  결과 예시:  
  ```
  ID     Title                 Year   Rating
  3525   The Matrix            1999   8.7
  3526   The Matrix Reloaded   2003   7.2
  ```
- **영화 시청 명령**  
  ```bash
  cinecli watch 3525
  ```  
  - 영화 세부 정보 표시  
  - 이용 가능한 토렌트 목록 출력  
  - 자동 또는 수동 선택 후 magnet 실행 또는 `.torrent` 다운로드  

### 기술 스택
- **Python** 기반  
- **Typer**: CLI 프레임워크  
- **Rich**: 터미널 UI 구성  
- **Requests**: API 통신  
- **YTS API**: 영화 데이터 소스  

### 기타 정보
- **MIT 라이선스**로 공개되어 자유로운 사용 및 수정 가능  
- **YTS API 상태**는 15분마다 자동 모니터링되며, 정상(🟢) 또는 장애(🔴) 상태로 표시  
- **오픈소스 프로젝트**로, PR과 별표(⭐) 참여를 환영  
- 제작자: **eyeblech** (이메일: 0x1123@proton.me)

## Comments



### Comment 48222

- Author: neo
- Created: 2025-12-25T03:34:09+09:00
- Points: 1

###### [Hacker News 의견들](https://news.ycombinator.com/item?id=46362655) 
- Android TV에서 **Stremio**([stremio.com](https://www.stremio.com))와 **Torrentio**([torrentio.org](https://torrentio.org/)) 플러그인을 이용해 비슷한 결과를 얻었음  
  Linux에서도 터미널로 스트리밍할 수 있다면 좋겠고, 다운로드 전에 **악성 파일 검사** 기능이 있으면 더 완벽할 것 같음
  - Torrentio는 메타데이터를 제공하고, Stremio가 UI와 재생을 담당함  
    이렇게 하면 저장 공간 요구량을 최소화할 수 있음  
    문득 **Jellyfin**에서도 비슷한 구성이 가능한지 궁금해서 찾아보니 `.strm` 파일을 지원함  
    `.strm`은 단순히 URL이 들어 있는 텍스트 파일로, [관련 문서](https://emby.media/support/articles/Strm-Files.html)와 [이슈 검색](https://github.com/search?q=repo%3Ajellyfin%2Fjellyfin+strm&type=issues)을 참고했음  
    개인 트래커를 쓰기 때문에 Torrentio 기능을 대체할 **커스텀 스크레이퍼**를 직접 만들어야 하지만, `.strm` 파일을 자동 생성하는 건 어렵지 않을 듯함  
    다만 성능이나 트랜스코딩 문제는 좀 더 확인이 필요함
  - (짧은 반응) 쉿...

- **Popcorn Time**의 메아리가 다시 들리는 듯한 느낌임  
  CineCLI가 너무 사용하기 쉬워지면 **저작권 경고**가 날아올 수도 있겠지만, 직접 재생 기능이 없는 것 같아 그나마 안전할지도 모르겠음
  - Popcorn Time은 정말 **전설적인 앱**이었음. RIP

- CLI 도구를 쓸 줄 아는 사람이라면 고품질 릴리스를 직접 다운로드하는 것도 어렵지 않음  
  개인 트래커 인터뷰 같은 절차도 필요 없음  
  **YTS**는 품질이 너무 낮아서, 이 프로젝트의 타깃이 누구인지 잘 모르겠음 — 단순히 API 위에 앱을 만들어보는 **실험용 프로젝트**라면 이해됨
  - 요즘 쓸 만한 곳이 어디인지 궁금함. 예전 **Napster 감성**이 다시 올라오는 중임

- 나도 비슷한 걸 만들어봤는데, **Jackett**이 지원하는 어떤 트래커든 검색해서 브라우저에서 바로 스트리밍할 수 있는 웹앱임  
  코드 공개되어 있으니 [GitHub - rapidbay](https://github.com/hauxir/rapidbay)에서 볼 수 있음

- 이걸 **uv**로 빠르게 설치하거나 실행하려면 어떤 명령을 쓰면 좋을지 궁금함
  - `uvx cinecli search "star wars"` 명령으로 바로 실행 가능함

- 내가 원하는 건 특정 **타임스탬프 구간만 스트리밍**하고, 그 구간을 로컬 파일로 저장할 수 있는 도구임  
  이런 기능이 있으면 여러 작업 흐름이 훨씬 효율적일 것 같음
  - 만약 사람들이 전체 스트림 대신 특정 구간만 다운로드하는 데이터를 모을 수 있다면, **토렌트의 공정 이용(fair use)** 근거로도 활용될 수 있을 것 같음
  - 타임스탬프를 어떻게 스트리밍하는지 궁금함
  - 나도 같은 질문임 — 타임스탬프 스트리밍이 가능한가?

- **Terrarium TV**가 원조였고, 이후 **Corn Time**, **Cinema APK**, **TeaTV**, **BeeTV** 같은 포크들이 나왔음

- 이건 단순히 **YTS API 래퍼**에 불과함

- 꽤 멋져 보임. 테스트 목록에 추가해둘 예정임

- GIF가 버벅이는 건지, 아니면 실제 **타이핑 속도**가 그런 건지 구분이 안 됐음  
  원한다면 WPM 두 자릿수로 올리는 **타이핑 레슨**도 가능함
  - 이런 건 조금만 준비하면 훨씬 매끄럽게 만들 수 있을 것 같음  
    프로젝트 자체는 훌륭하지만, 데모 영상은 미리 어떤 걸 보여줄지 정하고 몇 번 연습해서 **자연스러운 흐름**으로 녹화하는 게 좋음  
    시청자가 따라가기 쉽게 잠깐 멈추는 건 괜찮지만, 느린 타이핑은 보기 힘듦
  - 아이러니하게도 작성자의 GitHub 프로필에 **monkeytype** 링크가 있음  
    사실 기본적인 **ffmpeg 편집**만 배워도 훨씬 나아질 듯함
  - 나도 그 느린 영상 때문에 댓글 보러 왔음  
    끝까지 볼 수 없었고, 참고로 **pip 업데이트**도 필요해 보였음
