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 ...
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
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.
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
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
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
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
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.
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
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.
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.
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.
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
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.
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.
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
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.
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!
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
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.
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.
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.
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
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.
[1]: https://www.stremio.com [2]: https://torrentio.org/
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
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
I live in the UK so I'll also sometimes pull stuff from iPlayer, which yt-dlp works perfectly for, and also off youtube
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...
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.
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
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.
For discoverability you should check overseerr, which is pluggable via API to sonarr and radarr
Too bad it's gone.
This would really improve various workflows.
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.
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
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!
Also OP, you have a pip update!
anyway i have updated my demo.gif
enjoy
don't you ever talk about my pip update, biitch!
https://en.wikipedia.org/wiki/List_of_films_in_the_public_do...
https://github.com/orangekame3/awesome-terminal-recorder
get outta here !
These———LLM———slop———READMEs———make———me———vomit.
Works alright.
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.
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.
> 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.
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)
Copyright is widely adopted even in the most liberal democracies.