Show HN: CineCLI – Browse and torrent movies directly from your terminal
github.com288 points by samsep10l 18 hours ago
288 points by samsep10l 18 hours ago
Hi HN
I built CineCLI — a cross-platform terminal app to browse movies, view details, and open torrents directly in your system torrent client.
Features: - Search movies from the terminal - Rich UI with ratings, runtime, genres - Interactive & non-interactive modes - Magnet handling via system default client - Linux/macOS/Windows support - No ads, no tracking
GitHub: https://github.com/eyeblech/cinecli PyPI: https://pypi.org/project/cinecli/
Would love feedback from terminal + Python folks
Great job! I've achieved comparable results on my Android TV with Stremio[1] and the Torrentio[2] plugin. Being able to use the terminal for streaming would be a nice thing to have in Linux. It would also be cool to check for malicious files before downloading. So torrentio provides the metadata and downloads the video on-demand. And stremio handles UI and playback. That's a pretty neat way to keep the storage reqs minimal. This got me thinking if jellyfin could be configured for something similar (I don't feel like migrating to yet-another-media-library) and turns out it supports .strm files [0], which are literally just urls in a text file (much like .m3u8 playlists) [1]. My use case is private trackers so I would have to write a custom scraper to replace the torrentio functionality anyways. So it probably wouldn't be too hard to have it generate .strm placeholders at the same time. Hopefully there aren't any performance / transcoding issues ... [0] - https://github.com/search?q=repo%3Ajellyfin%2Fjellyfin+strm&... An echo of Popcorn Time can he heard bouncing around the software cathedral… The takedown notices will start coming in if CineCLI is too easy to use! Though looks like it doesn't play anything itself – _might_ be safe RIP Popcorn Time. It was fucking amazing. could we not bring back popcorn time if it goes over to decentralized github : https://radicle.xyz/ its strange how we can't just build software that then works for ever. The emulation boys got something going but netowkred software unlikley If you know how to use a CLI tool then you could also know how to download proper high quality releases without much effort. No private tracker and interview shenanigans. YTS is a bottom of the barrel quality. I actually don't even see who is the target audience of this unless you just made as an exercise to build an app on top of an API. Where’s good these days? I’m feeling my old Napster ways bubbling back up from the deep… First of all this the ground 0 for everything piracy (and more, generally free stuff) https://fmhy.net/ Here are the recommended film sites https://fmhy.net/video#torrent-sites I generally download from https://rutracker.org/ (need an account to search not for downloading). They have pretty much everything that you can imagine (not just films) and in proper quality too (BD Remuxes etc). There will be no scene releases here because they add russian/ukrainian dubs and subs to almost all films but that's a small problem. The other one is Heartive which lists torrents from the DHT network with Magnet links https://heartiveloves.pages.dev/ You just click on the torrent icon in the middle top of the selected film and all the available releases will be listed in plain text. The only downside that you need to be familiar with the release tags Last but not least https://nyaa.si/ if you have a slight interest in anything japanese from manga to anime to much more Thanks for the links. I'm so out of it these days, I only knew of btdig.com for DHT searches. I just use ye old faithful of piratebay, through the tor browser so my ISP doesn't do shenanigans to it, then ffmpeg to get only the streams I care about (video, english audio / japanese audio + english subtitles) and reencode it to h264 mp4 so the files aren't gigantic and are compatible with everything. A bit old-school maybe but it generally works fine for me. I live in the UK so I'll also sometimes pull stuff from iPlayer, which yt-dlp works perfectly for, and also off youtube Can you please reconsider using TOR for piracy? It strains the Tor Network and makes life harder for exit node providers. The Tor Project has advised against it as well[0]. There are many cheap VPN Providers that allow port forwarding and will give you an even better torrenting experience. Using the Tor-Browser to get the links on ThePirateBay et. al. is of course fine, torrenting the content though is where it becomes a problem. [0] https://support.torproject.org/about-tor/using-and-sharing/t... I don't torrent through tor, I just use it to get the links. I've found that if I use TPB on the normal internet, my ISP (or someone who can see my connections) seems to be poisoning the results, since all my torrents result in a 1.89gb executable file that I'm sure as hell not opening. Getting the links through tor doesn't have the same issue, and then I download them over the normal internet, and everything works fine There is an uptick of isos and exes masqueraded to look like episodes of popular shows. Impossible. How would your ISP (or VPN provider or anyone) be MITMing the TLS connection to TPB? > 1.89gb executable file Add me to the list of people curious about this. It feels more like some sort of bug than a real attack, it would be odd to use such a huge file for every torrent. If you're connecting through a VPN there is no way for your ISP to know that you're using TPB or any other website. They can if you let DNS leak to their servers so make sure you really firewall your ship off Can you share the magnet link that they send you and maybe the name of your ISP? I'd be super interested in analysing this! On the other hand, the system would be doomed if it relied on 1:1 message board scolding the few good actors to be viable. that seems like a lot of work compared to click click watch that one can achieve with *arr stack. Sure, but this way I know what I'm getting, rather than just hoping I get the right thing. I don't mind doing a little bit of cleanup to make sure I'm getting what I want Just to be fair, the *arr stack can filter by various things so you only grab the releases that meet your requirements. And if you don't want to torrent at all, there are recent tools (nzbdav) to build a large *arr library that streams directly from usenet, without need for self-storage in several countries it's fully legal to download anything for personal use, so I don't care :P I highly recommend setting up a kodi combo: real-debrid/fen/seren/coco scrapers/tmdb helper with your trakt account/arctic fuse 2 (netflix like skin). It is a complete "stream everything" netflix interface. It takes quite a while to understand how to set everything up and needs tons of customization (which is also a positive), but reddit is your friend. For example this is a good guide (although bit dated, some info may be older but generally it still fits https://www.reddit.com/r/Addons4Kodi/comments/zzfdtb/allincl... ) I know people also use *arr stack and jellyfin to setup their own library but my problem is that i never /know/ what to watch. With this setup, i just turn it on, get to browse customized/recommended and random lists like in netflix and it streams directly via real-debrid or premiumize Oh; if you decide to have a dedicated raspberry pi for this thing (so you can use it with tv easilly), use a regular raspbian os or something, do NOT use libreelec. It is trying to be heavily customized, but in the end is just worse, buggy, bad wifi support, slow releases from small team, and unability to manually update packages > I know people also use *arr stack and jellyfin to setup their own library but my problem is that i never /know/ what to watch. For people like me, knowing what to watch is never a problem. Getting time to actually watch it is. I suggest finding a way to do your own curation. For movies, you could just start with the IMDB Top 250 (pick at random). They used to have other lists (e.g. top non-English movies, etc), but I can't seem to find them any more. I have been using realdebrid with POV on kodi and it works like a charm. Saving a bunch by not needing to subscribe to what seems like a million OTT’s > I know people also use *arr stack ... i never /know/ what to watch For discoverability you should check overseerr, which is pluggable via API to sonarr and radarr for public torrents, skip the trackers and just run a DHT crawler like bitmagnet. it'll take a month to "catch up", but after that you'll have more indexed content than any individual tracker & it'll be way snappier. This is neat. I didn't realize this was possible with the protocol. Thanks! Same, I know how to use a terminal quite well but don’t know the latest best way to “sail the seas” as they say. built something similar but a webapp where you can search using any tracker supported by jackett and stream in your browser, can have a look here https://github.com/hauxir/rapidbay Assuming we could uv run/tool install this or whatever is the best quick/easy way with uv? What I'd like - a tool to stream to timestamps and then stream out between two timestamps to a local file. This would really improve various workflows. in fact I will point out that if this were possible and people had a lot of data of people using streaming out sections of torrents instead of the whole stream it would be another bit of evidence for torrents being used for fair use. How do you stream a timestamp? I'm not sure if you're being facetious and making fun of my saying stream a timestamp instead of stream to a particular time in the video, but if so I guess https://news.ycombinator.com/item?id=46364765 suggested a way. I just expected you would stream to point X in the stream that would be to the timestamp set to start and then to point y which would be the end. Obviously it would have to be able to figure out how the streamed file would map to time, which I don't know how to do which is why I said I would like a tool that did it other than announcing I made a tool that did it myself. Of course obviously some tools like yt-dlp etc. have this capability with the --download-sections property but I want something for torrents. You negotiate the header to find the video length, to then issue http get requests with the offset to the timestamp. Sometimes there’s an API that cuts with ffmpeg and returns the buffer. Sometimes you just need to fetch the raw bytes between offset+0 and offset+n. Terrarium TV Was OG which gave rise to forks like corn Time, Cinema APK, TeaTV, BeeTv I honestly couldn't tell if the GIF was lagging or if that's the actual typing speed. I give lessons to help reach double digit WPM if you're interested Yes, this seems something that would be so easy to get right. Not to take away from the achievement of this repo but no one benefits from a recording where the person doing it hasn't decided up front what they're going to demo and then ponders if they type magnet or just delete it and go with the default. If someone has gone to this much effort with a project, surely they can do a few fun throughs, till they can demo it smoothly. Sure, leave pauses, for people to follow what's actually happening but don't draw out the typing, that's just painful! Ironically their GitHub profile links to their monkeytype profile. But really, they just need to learn some basic ffmpeg... Came here for this comment, that was the slowest video ever hah. Couldn't watch till the end. Also OP, you have a pip update! Torrenting without seeding should be a crime. Depending on the content you are torrenting it might be a crime. That goes for Torrenting while seeding too though YSK there is a (seemingly famous) subreddit named eyeblech that is pretty graphic/NFSW. This community was banned for repeatedly violating Reddit's Moderator Code of Conduct. So people cant name their project in a way cuz of some reddit gooners? Fuck reddit lol leave a feedback folks:| Perhaps consider a public domain film for the demo? https://en.wikipedia.org/wiki/List_of_films_in_the_public_do... looks cool! one bit of feedback: make your demo gif get to the point faster. either practice typing a bit quicker or speed it up 2x for the typing section Might want to add a disclaimer/warning and/or add additional confirmation/wording before downloading. You don't want your user to go to jail because of a mistake that could be avoided: https://news.ycombinator.com/item?id=46364645 Great tool I would have loved back when I watched movies :) Could the same be done for music ? >Use it. Fork it. Improve it. These———LLM———slop———READMEs———make———me———vomit. The emoji everywhere is what does it for me. Emoji on every title. Emoji on every item of a list. The same ones over and over. So much visual noise. They’re used like a deficient visual crutch. I always tell my LLMs: "Try not to sound like an LLM. And no emojis!" Works alright. Most boring part of developing is writing docs. I see it as boilerplate. If you don't like it, you're free to open a PR. Get used to it. Nobody will write readmes by hand. I've always hated it and now I'll just let the LLM write it. It's certainly a sign of something. Not positive at best neutral. As you say it's at best an indication that the author doesn't like writing. Could it be an indication that the author didn't write the actual code? Is it a sign that the author doesn't really care that much about their project and furthermore could that be a sign that the project is also be be valued by us as much as the author? Maybe the code quality and documentation is less important than the utility. After all many of us don't like writing tests for code! Perhaps but perhaps we just need to get used to these signs too and get over it. Then get some freaking taste in READMEs. We can guide the LLMs to better results. This argument is getting old. Just because you don’t like something, it doesn’t mean everyone agrees and will take the same shortcuts you do. Fortunately not everyone in the world has the same disregard for their own work, and many of us understand the signal it sends when you’re unwilling to even write your own instructions. If you want your READMEs sloppily written by LLMs, that’s your prerogative. Just like it’s the prerogative of everyone visiting your repo and bumping into a slop README to decide if they want to even give your tool a second look before abandoning it. Slop READMEs suggest slop code. Soon everyone who’ll even look at your code are other sloppers and (if it ever gets popular) malicious actors who’ll exploit it in an afternoon because no users understand anything the code does. It used to be "don't try to outsmart the compiler", I'm waiting for the time people start saying the same thing about LLMs. does it violate ISP terms (like at&t)? how to make it less obvious to them? the tool itself doesn’t change anything from the ISP’s perspective. It just fetches metadata and opens magnet links. What matters is what you download, where you live, and how your torrent client behaves, not whether you clicked the magnet in a browser or a terminal. I think the issue is the lack of disclaimer/warnings in the CLI, unlike what most torrent sites do. These sites are very considerate, e.g. for YTS > Warning!
>
> If you are not using a VPΝ already: Accessing and Playing Torrents on a Smartphone is risky and dangerous. You may be in [City, Country] and using: () . Your IP is [IP] . We strongly recommend all users protecting their device with a VPΝ. I couldn't find anything in the CLI, at least from that gif. Someone who is new or less "experienced" in this might not be aware that they need to use a VPN or similar, since the CLI makes it so easy to search and download. Even you are an experienced user, you may misread and start torrenting by mistake before connecting to VPN. One could argue this is a serious bug. The subject is movies (cough copyrighted), not Linux distros. This is an important caveat to raise for someone experimenting. To your point, it's the upload that gets you in trouble in the US (assuming possession is not illegal in itself) Yes, it’s just a plain CLI access to YTS torrents That depends entirely on what you download, the country you are in and your ISP. Standard precautions apply when using the internet while under authoritarian jurisdictions. >authoritarian Copyright is widely adopted even in the most liberal democracies. Looks vibe coded. Probably is, nice that people who do other things apart from learning to code all day can get their ideas out of their heads.
pedromoss - 15 hours ago
Frotag - 9 hours ago
Twixes - 13 hours ago
japborst - 13 hours ago
scirob - 28 minutes ago
scirob - 32 minutes ago
unpopularopp - 15 hours ago
flave - 15 hours ago
unpopularopp - 15 hours ago
thijson - 11 hours ago
voidUpdate - 15 hours ago
IlikeKitties - 11 hours ago
voidUpdate - 11 hours ago
OptionOfT - 6 hours ago
meindnoch - 7 hours ago
gs17 - 7 hours ago
bigmadshoe - 10 hours ago
hypercube33 - 9 hours ago
IlikeKitties - 8 hours ago
hombre_fatal - 10 hours ago
_zoltan_ - 14 hours ago
voidUpdate - 14 hours ago
squigz - 11 hours ago
throwaway98753 - 11 hours ago
_zoltan_ - 5 hours ago
cantalopes - 14 hours ago
BeetleB - 2 hours ago
rochansinha - 5 hours ago
hambos22 - 13 hours ago
colinsane - 14 hours ago
tomtomtom777 - 12 hours ago
elliotec - 15 hours ago
hauxir - 14 hours ago
indigodaddy - 6 hours ago
bryanrasmussen - 15 hours ago
bryanrasmussen - 4 hours ago
cbluth - 14 hours ago
bryanrasmussen - 5 hours ago
reactordev - 11 hours ago
G_o_D - 8 hours ago
seyz - 13 hours ago
nmstoker - 12 hours ago
godelski - 11 hours ago
mlrtime - 11 hours ago
0x457 - 5 hours ago
jklein11 - 5 hours ago
tinuviel - 14 hours ago
cachius - 14 hours ago
zwnow - 14 hours ago
samsep10l - 18 hours ago
cfcfcf - 16 hours ago
brrrrrm - 16 hours ago
g947o - 11 hours ago
shlip - 16 hours ago
vibesareoff - 15 hours ago
latexr - 13 hours ago
mr_mitm - 13 hours ago
shaky-carrousel - 11 hours ago
_zoltan_ - 14 hours ago
thinkingemote - 14 hours ago
KeplerBoy - 13 hours ago
latexr - 13 hours ago
nurettin - 14 hours ago
behnamoh - 16 hours ago
Barathkanna - 16 hours ago
g947o - 11 hours ago
caminante - 13 hours ago
haunter - 16 hours ago
BASE_URL = "https://yts.lt/api/v2"
dewey - 16 hours ago
welferkj - 16 hours ago
caminante - 13 hours ago
dcreater - 11 hours ago
backtogeek - 11 hours ago