|
23 | 23 |
|
24 | 24 | # Castor |
25 | 25 |
|
26 | | -Imagine buying a very nice TV and figuring out it doesn't allow casting from random websites... |
| 26 | +Smart TVs won't cast arbitrary web video, and screen mirroring is laggy and drops resolution. Castor casts the real video stream instead, at full quality, from your terminal. |
27 | 27 |
|
28 | | -- Then you switch to the longest **HDMI cable** you can find. |
29 | | -- Then you start doing **screen mirroring**: your computer lags, resolution tanks, nothing feels right. |
| 28 | +Point Castor at a web page and it finds the video playing on it, extracts the stream, transcodes it to a format your TV can play, and casts in real time. It also takes a direct stream URL, or an IMDB/TMDB id it looks up on streaming sites you configure. Optionally it auto-generates subtitles and burns them into the picture. |
30 | 29 |
|
31 | | -Castor is a CLI that extracts video streams from websites, handles format compatibility, and casts to your TV in real time, with optional auto-generated subtitles burned directly into the video. |
| 30 | +Castor hosts nothing itself; it drives a headless browser to capture the stream a page is already serving. The id lookup uses whatever sources you set in `config.yaml`, and everything else works on any page or stream you give it. |
32 | 31 |
|
33 | 32 | <p align="center"> |
34 | | - <img src=".github/images/screen-selection.png" alt="Browsing TMDB titles in the castor TUI" width="640"/> |
| 33 | + <img src=".github/images/screen-selection.png" alt="Browsing titles in the castor TUI" width="640"/> |
35 | 34 | <br/> |
36 | | - <sub><em>Run <code>castor cast</code> to browse trending titles, search TMDB, inspect posters and metadata, then cast, without leaving the terminal.</em></sub> |
| 35 | + <sub><em>Run <code>castor cast</code> to browse and search titles, inspect posters and metadata, then cast, without leaving the terminal.</em></sub> |
37 | 36 | </p> |
38 | 37 |
|
39 | 38 | > [!NOTE] |
40 | | -> **How does extraction work?** |
| 39 | +> **How extraction works** |
41 | 40 | > |
42 | | -> Castor launches a headless Chrome with a randomized browser fingerprint and stealth scripts to hide automation. It listens to all network activity via Chrome DevTools Protocol, captures video streams, then runs an action pipeline: click the page, navigate into the largest iframe, solve Cloudflare Turnstile if detected, and click again as fallback. |
| 41 | +> Castor launches headless Chrome with a randomized fingerprint and stealth scripts to hide automation. It watches all network traffic over the Chrome DevTools Protocol to capture the video stream, then runs a short action pipeline: click the page, navigate into the largest iframe, solve a Cloudflare Turnstile if one appears, and click again as a fallback. |
43 | 42 | > |
44 | | -> This works on most streaming websites but won't beat sophisticated bot protection. |
| 43 | +> This works on most streaming sites but won't beat sophisticated bot protection. |
45 | 44 |
|
46 | 45 |
|
47 | 46 | ## Installation |
|
0 commit comments