Show HN: CineCLI – Browse and torrent movies directly from your terminal

346 pointsposted 7 days ago
by samsep10l

107 Comments

pedromoss

7 days ago

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.

[1]: https://www.stremio.com [2]: https://torrentio.org/

Frotag

6 days ago

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&...

[1] - https://emby.media/support/articles/Strm-Files.html

Twixes

7 days ago

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

japborst

7 days ago

RIP Popcorn Time. It was fucking amazing.

squibonpig

6 days ago

Is it actually gone? I found official looking sites on a quick Google.

scirob

6 days ago

its strange how we can't just build software that then works for ever. The emulation boys got something going but netowkred software unlikley

unpopularopp

7 days ago

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.

flave

7 days ago

Where’s good these days? I’m feeling my old Napster ways bubbling back up from the deep…

unpopularopp

7 days ago

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

thijson

6 days ago

Thanks for the links. I'm so out of it these days, I only knew of btdig.com for DHT searches.

voidUpdate

7 days ago

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

IlikeKitties

6 days ago

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...

voidUpdate

6 days ago

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

OptionOfT

6 days ago

There is an uptick of isos and exes masqueraded to look like episodes of popular shows.

IlikeKitties

6 days ago

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!

voidUpdate

6 days ago

I'll try to remember to but it'll be about 16 hours away

meindnoch

6 days ago

Impossible. How would your ISP (or VPN provider or anyone) be MITMing the TLS connection to TPB?

gs17

6 days ago

> 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.

bigmadshoe

6 days ago

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.

hypercube33

6 days ago

They can if you let DNS leak to their servers so make sure you really firewall your ship off

voidUpdate

6 days ago

I know, that's why I use tor to get the links

hombre_fatal

6 days ago

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.

_zoltan_

7 days ago

that seems like a lot of work compared to click click watch that one can achieve with *arr stack.

voidUpdate

7 days ago

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

squigz

6 days ago

Just to be fair, the *arr stack can filter by various things so you only grab the releases that meet your requirements.

throwaway98753

6 days ago

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

_zoltan_

6 days ago

in several countries it's fully legal to download anything for personal use, so I don't care :P

cantalopes

7 days ago

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

BeetleB

6 days ago

> 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.

hambos22

7 days ago

> 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

rochansinha

6 days ago

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

colinsane

7 days ago

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.

tomtomtom777

6 days ago

This is neat. I didn't realize this was possible with the protocol. Thanks!

elliotec

7 days ago

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.

g947o

6 days ago

For old content I often spin up the old RARBG database.

Too bad it's gone.

bryanrasmussen

7 days ago

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.

bryanrasmussen

6 days ago

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.

cbluth

7 days ago

How do you stream a timestamp?

bryanrasmussen

6 days ago

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.

cbluth

5 days ago

No, I totally misunderstood.

I vibe coded a little tool [0] that can stream range requests from torrents.

It's a little buggy and super rough around the edges, but it's definitely possible because your torrent client can prioritize piece requests and http standards support http range requests, just requesting parts of a document. I lightly tested it with VLC and seeking the playback to the middle of a video

[0] https://github.com/cbluth/bittorrent

reactordev

6 days ago

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.

indigodaddy

6 days ago

Assuming we could uv run/tool install this or whatever is the best quick/easy way with uv?

nemoniac

6 days ago

uvx cinecli search "star wars"

philonoist

7 days ago

Hopefully there is a Libgen version of this.

G_o_D

6 days ago

Terrarium TV Was OG which gave rise to forks like corn Time, Cinema APK, TeaTV, BeeTv

backtogeek

6 days ago

looks pretty cool, will add it to the never ending list of stuff to test

samsep10l

7 days ago

leave a feedback folks:|

shlip

7 days ago

Great tool I would have loved back when I watched movies :) Could the same be done for music ?

vibesareoff

7 days ago

>Use it. Fork it. Improve it.

These———LLM———slop———READMEs———make———me———vomit.

latexr

7 days ago

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.

mr_mitm

7 days ago

I always tell my LLMs: "Try not to sound like an LLM. And no emojis!"

Works alright.

shaky-carrousel

6 days ago

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.

vibesareoff

6 days ago

The whole repo is fucking boilerplate.

_zoltan_

7 days ago

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.

thinkingemote

7 days ago

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.

nurettin

7 days ago

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.

rvz

7 days ago

"you're absolutely right!"

KeplerBoy

7 days ago

Then get some freaking taste in READMEs. We can guide the LLMs to better results.

latexr

7 days ago

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.

_zoltan_

6 days ago

the world is moving towards this, so all the naysayers will be dinosaurs :-)

seyz

7 days ago

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

mlrtime

6 days ago

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!

nmstoker

6 days ago

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!

samsep10l

5 days ago

wow , you tryna fck me or what!

nmstoker

3 days ago

>> Would love feedback from terminal + Python folks

godelski

6 days ago

Ironically their GitHub profile links to their monkeytype profile. But really, they just need to learn some basic ffmpeg...

0nabilbk

6 days ago

Great Job, Love the idea

tinuviel

7 days ago

YSK there is a (seemingly famous) subreddit named eyeblech that is pretty graphic/NFSW.

notachatbot123

7 days ago

PSA: It is NSFL, don't be curious and ruin your day.

Dilettante_

6 days ago

I assume OP knows what the word they use as their alias means?

g947o

6 days ago

I'm confused -- how is that related to the topic here?

herghost

6 days ago

the linked Github repo shares the name

cachius

7 days ago

This community was banned for repeatedly violating Reddit's Moderator Code of Conduct.

zwnow

7 days ago

So people cant name their project in a way cuz of some reddit gooners? Fuck reddit lol

kiddico

7 days ago

Not that kind of nsfw.

zwnow

7 days ago

Maybe nsfl would have been more fitting then

0x457

6 days ago

Torrenting without seeding should be a crime.

jklein11

6 days ago

Depending on the content you are torrenting it might be a crime. That goes for Torrenting while seeding too though

dcreater

6 days ago

Looks vibe coded.

backtogeek

6 days ago

Probably is, nice that people who do other things apart from learning to code all day can get their ideas out of their heads.

dcreater

5 days ago

Not so nice that those ideas are not production ready i.e. well tested and validated. Leading to all sorts of issues and headaches for the unsuspecting customer

theshrike79

2 hours ago

Do you expect every public github repo to be "production ready"?

I think I have to take every single of mine down then, they're all made for me and do what I need them to do. There's zero consideration for "production" of any kind. It works on my machine and might work on yours.

behnamoh

7 days ago

does it violate ISP terms (like at&t)? how to make it less obvious to them?

Barathkanna

7 days ago

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.

g947o

6 days ago

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.

caminante

7 days ago

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)

haunter

7 days ago

Yes, it’s just a plain CLI access to YTS torrents

    BASE_URL = "https://yts.lt/api/v2"

welferkj

7 days ago

Standard precautions apply when using the internet while under authoritarian jurisdictions.

caminante

7 days ago

>authoritarian

Copyright is widely adopted even in the most liberal democracies.

dewey

7 days ago

That depends entirely on what you download, the country you are in and your ISP.