Code Monkey home page Code Monkey logo

debrid-media-manager's Introduction

ChatGPT made this logo

Debrid Media Manager

Start building your media library with truly unlimited storage size!

What is this?

Do you want a movie and TV show library that has unlimited size? Consider using a Debrid service, like Real-Debrid or AllDebrid. These services work like a shared storage space for downloading torrents. You can download as much as you want without worrying about storage limits, because the files are shared among all users. You only "own" the file when you download it to your account.

These Debrid services also offer a feature called a WebDAV API. Think of it as a special tool that lets you connect your media library to different devices or software. It's like your Windows Samba share but better.

You can use this WebDAV API to connect your media library to different media players that support it, like Infuse, which works on Apple devices like Mac, iPhone, Apple TV, and iPad. You can also connect it to your server and use it with media server software like Plex, Emby, or Jellyfin. This way, your media library can be accessed and played from anywhere!

To make this process even easier, I've developed this free and open source website called Debrid Media Manager. With this app, you can easily download movies and TV shows directly to your Debrid library. You can build and curate your media collection without ever worrying about storage limits.

Features

This builds on top of the amazing service brought by Real-Debrid and AllDebrid.

Library management

You can see all your torrents in one page, sort them by name, by size, by "quality score", etc. It groups all your torrents by title and delete duplicate files. It can show you failed or slow downloads and delete them.

Torrent search

You can add more content to your library by searching the DHT (powered by BtDigg). It detects what you already have downloaded and currently downloading in your library too.

Share your library and mirror other libraries

You can share your whole collection or select specific items you want to share. Head over to r/debridmediamanager and see other people's media collections and easily mirror their content to yours.

Setup

  1. Signup for a free tier plan at PlanetScale - this is a serverless MySQL database hosted in the cloud
  2. Have Tor running at 127.0.0.1:9050 (needed for DHT search; if you don't need your own search database then refer to the secion External Search API)
  3. Clone this repository and go to the directory
  4. Create a copy of the .env file cp .env .env.local and fill in the details
  5. Fill in required settings in .env.local (e.g. PROXY=socks5h://127.0.0.1:9050 if tor is running on your host machine)
  6. Get your Prisma database connection string from PlanetScale console and put that in your .env.local file
  7. Install the dependencies npm i
  8. This is a Next.js project so either go with npm run dev or npm run build && npm run start
  9. Head to localhost:3000 and login

External Search API

If you don't want to build your own library, edit the config EXTERNAL_SEARCH_API_HOSTNAME in your .env.local and set it to https://corsproxy.org/?https://debridmediamanager.com

Docker Swarm

cp .env .env.local
docker swarm init
docker stack deploy -c docker-compose.yml

The website will be accessible at http://localhost:3000

FAQ

I just don't know where to start or why do I need this?

Read the guide here. I highlighted my tested setup in green.

But with Kodi and FEN and Stremio being available, why would I ever need this?

If you want some level of curation on your library. I personally prefer watching only 100+ GB remux release. Don't ask me about -arr apps and/or Usenet. I also came from that setup and found it too much time consuming to maintain.

How does it monitor what's in your library?

It doesn't do any sort of monitoring. It gets that information when you open the Library page and caches it in your browser's local storage.

When I share my library, is it linked to my account's identity?

No. It's completely anonymous. What's only shared are 3 things: filename, magnet hash, file size. It's not even stored in any database. The way it works is that all these data are compressed and stored in the URL. A "webpage" is then created over at https://hashlists.debridmediamanager.com that loads via iframe this (usually very long) list of magnet hashes.

debrid-media-manager's People

Contributors

yowmamasita avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

debrid-media-manager's Issues

Application error: a client-side exception has occurred (see the browser console for more information)

Hi!

Just setup a self-hosted instance using Docker and I absolutely love it! However, I am having an issue with the search function. It appears to be the same issue referenced in a Reddit post from a few days ago.

No matter the search term, the search throws this error in the browser:
Application error: a client-side exception has occurred (see the browser console for more information).

Docker logs:

encountered a search issue PrismaClientKnownRequestError: 

Invalid prisma.search.findUnique() invocation:

The table (not available) does not exist in the current database.

    at si.handleRequestError (/app/node_modules/@prisma/client/runtime/library.js:125:6817)

    at si.handleAndLogRequestError (/app/node_modules/@prisma/client/runtime/library.js:125:6151)

    at si.request (/app/node_modules/@prisma/client/runtime/library.js:125:5859)

    at async l (/app/node_modules/@prisma/client/runtime/library.js:130:10025)

    at async PlanetScaleCache.getSearchResults (/app/.next/server/chunks/9432.js:1:3819)

    at async handler (/app/.next/server/pages/api/search/title.js:1:1226) {

  code: 'P2021',

  clientVersion: '5.7.0',

  meta: { modelName: 'Search', table: '(not available)' }

}

Firefox inspect:

Source Map URL: purify.min.js.map
TypeError: d is undefined
    NextJS 30
framework-0c7baedefba6b077.js:9:69878
TypeError: d is undefined
    NextJS 30
main-c379b48138cf9870.js:1:10882
A client-side exception has occurred, see here for more info: https://nextjs.org/docs/messages/client-side-exception-occurred main-c379b48138cf9870.js:1:10899

If you need more info to debug, just let me know!

Stuck on loading on iOS

I'm trying to use DMM on iOS and always get stuck on "Debrid Media Manager is loading...". Tried bunch of movies and shows on different browsers (Edge, Chrome and Safari).

Home page works fine, login, settings, search, etc... But the moment I click on any movie or show it get stuck on loading.

Everything works as expected on any browser on Android or Windows PC.

Docker, error when searching and recent

I'm trying to run a local instance of debridmediamanager (in docker). Most lists work, i.e. browse/today, browse/best etc but I get this errors when I try recent:

Error: JSON.parse: unexpected character at line 1 column 1 of the JSON data

Also when I try use the search feature I get the following error:

Error: Invalid prisma.search.findUnique()invocation: error: Error validating datasourcedb: the URL must start with the protocol mysql://. --> schema.prisma:10 | 9 | provider = "mysql" 10 | url = env("DATABASE_URL") | Validation Error Count: 1

I believe I've set up the database correctly on PlanetScale as described on the setup instructions. I've also entered keys for TMDB, MDBLIST, OMDB and Jackett

Am I missing something else that's required ?

error deleting torrent in AD

Floating bubble error "error deleting torrent in AD .. " while attempting to delete from main panel.

Win10x64
Chrome
AllDebrid

Local Instance: Error serializing `.title` returned from `getServerSideProps`

Hi
First up, excellent work on this project and can't thank you enough for this.
I was trying to setup a local instance on a ubuntu 20.04 server
The code compiles fine and works as expected up .
However when I try to search for something , the results load up fine.
However clicking on a search entry throws the following error.

Not sure what I am doing wrong - any pointers would be really appreciated

 q [Error]: Error serializing `.title` returned from `getServerSideProps` in "/show/[imdbid]/[seasonNum]".
Reason: `undefined` cannot be serialized as JSON. Please use `null` or omit this value.
    at r (/home/abhinav/debrid-media-manager/node_modules/next/dist/compiled/next-server/pages.runtime.dev.js:30:446)
    at /home/abhinav/debrid-media-manager/node_modules/next/dist/compiled/next-server/pages.runtime.dev.js:30:683
    at Array.every (<anonymous>)
    at r (/home/abhinav/debrid-media-manager/node_modules/next/dist/compiled/next-server/pages.runtime.dev.js:30:580)
    at H (/home/abhinav/debrid-media-manager/node_modules/next/dist/compiled/next-server/pages.runtime.dev.js:30:1117)
    at eZ (/home/abhinav/debrid-media-manager/node_modules/next/dist/compiled/next-server/pages.runtime.dev.js:47:1510)
    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
    at async doRender (/home/abhinav/debrid-media-manager/node_modules/next/dist/server/base-server.js:1266:26)
    at async cacheEntry.responseCache.get.incrementalCache.incrementalCache (/home/abhinav/debrid-media-manager/node_modules/next/dist/server/base-server.js:1446:28)
    at async DevServer.renderToResponseWithComponentsImpl (/home/abhinav/debrid-media-manager/node_modules/next/dist/server/base-server.js:1361:28)
    at async DevServer.renderPageComponent (/home/abhinav/debrid-media-manager/node_modules/next/dist/server/base-server.js:1600:24)
    at async DevServer.renderToResponseImpl (/home/abhinav/debrid-media-manager/node_modules/next/dist/server/base-server.js:1638:32)
    at async DevServer.pipeImpl (/home/abhinav/debrid-media-manager/node_modules/next/dist/server/base-server.js:826:25)
    at async DevServer.handleCatchallRenderRequest (/home/abhinav/debrid-media-manager/node_modules/next/dist/server/next-server.js:623:13)
    at async DevServer.handleRequestImpl (/home/abhinav/debrid-media-manager/node_modules/next/dist/server/base-server.js:728:17) {
  page: '/show/tt7772588/1'

Checkmark if media is in library

Would be super helpful to have a checkmark or tag on the poster image to see if i have that media in my library.
Somewhat like what Overseer has on their end.

image

That could be added to all browse funcion, as well as in the search mode.

Integration Radarr

Hello,

Have you thought about integrating Radarr, so that you can search for films using DMM's search function? That sounds like an excellent idea. :)

Thanks a lot!

Premiumize support

Surprised this isn't supported here, they have a very good api and awesome speeds. They were the original provider to start the cached torrent as a feature on debrid services.

Wont show RD Contents

I've been trying to use the site but having no luck

I've linked it to my RD and when i go to the main page to view my torrents all im getting is Error fetching user torrents list

But i can add torrents to RD By hashtages

How do i go about fixing the Error fetching user torrents list and it get it to show my torrents from my RD Account,

Also tried to install via Docker, But cant seem to get it to even install, Tried the instructions on the github but i dont know them commands

Anyway easy way for a new person to get this installed?

Thanks

[Question] Torrent Sources

Hi, I wanted to ask,

What torrent websites does DMM search to find cached torrents on AD/RD services?

Feature request: torbox

I think adding Torbox as a provider for DMM would be game-changing.
DMM has a list of hashes from private sites, but if no one downloads them on real debrid (due to bans and no seed), then we won't be able to use it.
Torbox as an additional provider fills this missing piece: torrents are seeded back for 30 days, in a seedbox-like environment, then go into caching depending on requests of that file (just like RD).
I'm sure if we get the community onboard we would get thousands of torrents cached pretty quickly.

[Request] Allow filtering

Add filtering based on amount of results for given quality, included subtitles, maximum size (kinda like jackett) per hour. Quality options, etc.

Possible filtering of extras/BluRay Included Content Through DMM Web

This could be a great option especially for those managing a library with WebDAV rather than Zurg and filtering through config files. I know that when a torrent magnet is added through RD, it auto selects the main vid file and allows you to click process, but I don't believe that same process is available through the API!

Still it could be a great feature to have as most BluRay rips contain these files that mess with library organization!

Time-Error when searching

When trying to search i always get the message "Please check the time in your device. If it is correct, please try again." - this happens on every device i own, on different networks and browsers.

Help would be appreciated.

add debrid-link

Hi, can you add debrid-link?
Excellent stable service with seedbox, useful to many people.

Also for zurg, can you add this site?

Thank you

Can not login via RealDebrid

The login page for realdebrid can not be accessed. I have tested this both on Windows 11 with Floorp (Firefox fork) and Edge. I have also tested this with Firefox on Zorin OS (Ubuntu fork).

Unique Titles Filter

I tend to add both HD and UHD releases to my account. Would you consider adding an additional filter button that does the inverse of the "Duplicate Titles" button, showing titles which only have 1 (no duplicate) downloads. It would be useful to see which titles in my library may only have an HD release added, or which may have an UHD release and are missing their HD version.

Well done on your creation! It is quite cool, and has proven very useful coming from the *arr world and testing the debrid waters ๐Ÿ™‚

[Request] Collapsible Lists

I have a large number of lists on Trakt containing literally thousands of films. It would be great if there was the ability to collapse each list by clicking on the list name. Ideally, if there is a way to permanently select which lists show that would be ideal. I have lists for studios and don't see much of a need for using those lists in DMM.

Stremio casting addon

I think a good idea would be adding "Cast" button in Library so you can choose whatever torrent you want to cast. It would work also with tv shows, and you could just pick an episode from batch.

[Feature Request] Auto scheduling Reinsert

The reinsert feature is great but it would be nice if we could possibly set up a schedule so it can automatically reinsert certain links to prevent it from expiring after X amount of time.

Are there any current plans to implement such a feature?

"Error selecting files" when attempting to "Add to RD library"

I'm seeing

Error selecting files (rd:WHTUKF3BEKJES)

When trying to add almost anything to rd library.

In dev tools, I see I'm getting a 503 from this request https://debridmediamanager.com/api/anticors?url=https://api.real-debrid.com/rest/1.0/torrents/selectFiles/6FKAOZAFTA6JO

Response body:

{
	"error": "service_unavailable",
	"error_code": 25
}

Can't login to Trakt

Can not login with Trakt to see lists. I have tried to clear data and logout with no help. This issue is occurring in Firefox based browsers on Windows 11.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.