transmission / transmission

Official Transmission BitTorrent client repository
https://transmissionbt.com
Other
11.81k stars 1.19k forks source link

After a torrent has finished downloading, make possible to (automatically) import its file/folder to a local IPFS node #4484

Open hollownights opened 1 year ago

hollownights commented 1 year ago

Following the idea of making Transmission more IPFS-friendly, I propose that it should be possible to import a downloaded file or folder directly from Transmission to the users’ local IPFS node, pinning it to the node, and even better if this can be set up to be done automatically. Such a behavior, combined with IPFS URLs used as webseeds (#4483), would make for a more decentralized and resilient web with better interoperability between a decentralized web protocol (IPFS) and a decentralized but “files-only protocol” like BitTorrent.

Relevant links:

https://docs.ipfs.tech/basics/desktop-app/

https://docs.ipfs.tech/reference/kubo/cli/

https://docs.ipfs.tech/reference/kubo/rpc/

P.S.: I am not a developer, so I’m here as a user to propose such a feature, discuss it and test it if it gets implemented.

robd003 commented 1 year ago

In the Preferences dialog under Transfers -> Management you can have Transmission call a script when a download completes.

I'd suggest writing a generic IPFS pinning script and sharing that with the community.

hollownights commented 1 year ago

I tried writing something, but IPFS command line and API aren't really straightforward to me. Plus, I do think this should be a native setting within Transmission with a checkbox for "on/off" and fields to inform the port used for the local API or the location to an executable.

hollownights commented 1 year ago

Here is a real situation when being able to easily import a downloaded file or folder from a BitTorrent client into a local IPFS node without duplicating the files or the need to use command line would be of great help: importing big dumps of files from a library repository. Below, two different posts from two different projects that describe this exact situation.

IPFS Free Library

mikedld commented 1 year ago

@hollownights, please we warned that posting links to content advertising copyright infringement is not welcome here.

hollownights commented 1 year ago

@mikedld My bad. That link (even the website, I think) wasn't pointing to any copyrighted protected content, so I thought it wouldn't be a problem. Let me know if I can at least leave the title of the post here so people know what to lookup for.

mikedld commented 1 year ago

Please don't. No one asked for any further proof to support your point, so none is necessary.

hollownights commented 1 year ago

Got it! Thanks!

ckerr commented 1 year ago

Related: https://github.com/BiglySoftware/BiglyBT/issues/2823

Related: https://github.com/qbittorrent/qBittorrent/issues/18308

ckerr commented 1 year ago

I tried writing something, but IPFS command line and API aren't really straightforward to me. Plus, I do think this should be a native setting within Transmission with a checkbox for "on/off" and fields to inform the port used for the local API or the location to an executable.

At first glance this feels like something that <1% of users would use; IDK how many people are using BitTorrent + IPFS in concert. (If I'm wrong about this, users feel free to emoji-vote this comment :smile_cat:) Why not use the IPFS cli tools in a script-torrent-done-filename script? That would be a lot less work and would get the job done.

Even if this should be in Transmission, it's unlikely to be prioritized in the near term because we've already got a pretty big wishlist lined up for Transmission 5.

So, in order of preference:

valcomm commented 1 year ago

I also see no point in backing this rare need into Transmission while it's achievable by script-torrent-done. I think this is the right place for the needed functionality. Now you just need to find someone (from the larger set - not just Transmission developers) who would do that. Would be great if you share the resulting script for others.

hollownights commented 1 year ago

At first glance this feels like something that <1% of users would use; IDK how many people are using BitTorrent + IPFS in concert. (If I'm wrong about this, users feel free to emoji-vote this comment 😸) Why not use the IPFS cli tools in a script-torrent-done-filename script? That would be a lot less work and would get the job done.

@ckerr As long as a solution (any solution) makes for a really easy way to use a functionality (any functionality), I don't oppose it.

This discussion is more advanced here: frostwire/frostwire#997