Because Degoo does not provide a way to use their application as a virtual drive, like Google Drive, I have created a project to make this possible, thanks to pyfuse3 and Degoo CLI. This will not work on Windows, only available in unix environments
- pyfuse3 requires the libfuse3-dev and fuse3 libraries to run. These can be installed via
apt install -y libfuse3-dev fuse3
(Available from Ubuntu 20.04) - Degoo CLI requires python 3.8 and dependencies included in requirements.txt
- And this project requires both of the above
apt update
apt install -y --no-install-recommends git
apt install -y libfuse3-dev fuse3
apt install -y python3.8
apt install -y python3-pip
apt install -y pkg-config
apt install -y python3.8-dev
python3.8 -m pip install appdirs wget python-magic humanize humanfriendly python-dateutil requests clint requests_toolbelt pyfuse3 pyjwt
All in one:
apt update && apt install -y --no-install-recommends git libfuse3-dev fuse3 python3.8 python3-pip pkg-config && python3.8 -m pip install appdirs wget python-magic humanize humanfriendly python-dateutil requests clint requests_toolbelt pyfuse3
You must clone this repository git clone https://github.com/MDKPredator/degoo_drive
. Ensure you have installed git: apt install git
Run degoo_login to create the directory with the configuration to access Degoo. Normally it will be created in ~/.config/degoo
. In this path you should have the following files:
- default_properties.txt
- schedule.json
- credentials.json
- keys.json
- overlay4.txt
Edit file credentials.json to enter your credentials (email and password)
IMPORTANT: If you log in with Google (Sign in with Google button) this method does not work. You will have to change it to login with your email and a password.
First you must clone this project with git clone https://github.com/MDKPredator/degoo_drive
. You can then mount your unit by running the command python3 fuse_degoo.py
. By default, drive is mounted in /home/degoo
The following options are available:
--mountpoint
Path where drive will be mounted. Default is/home/degoo
--degoo-email
Email to login in Degoo--degoo-pass
Password to login in Degoo--degoo-refresh-token
Used when token expires. Alternative if login fails--degoo-path
Degoo base path to mount the drive. Default is root/
--cache-size
Size of downloaded chunk--debug
Displays logs--debug-fuse
Displays the filesystem logs--allow-other
Allows other users to access files--refresh-interval
Time, in minutes, that Degoo information is refreshed. Default is 10 minutes--disable-refresh
Disables the refresh--flood-sleep-time
Waiting time, in seconds, before resuming requests once the maximum has been reached--flood-max-requests
Maximum number of requests in the period--flood-time-to-check
Request control period, in minutes--change-hostname
Disable change domain for media files. Default is false--mode
How to read the content. Lazy (default) reads as browsing (recommended for large content). Eager to read all content the first time--config-path
Path to the configuration files. Default is ~/.config/degoo/--plex-split-file
(Experimental) Check if there are split files to cache the first part
This project includes a Dockerfile to mount the virtual drive. You will only need to modify the credentials.json file before creating the image:
- Clone this repository:
git clone https://github.com/MDKPredator/degoo_drive
- Modify
degoo_config/credentials.json
- Create the image
docker build -t degoo_drive .
- Run container
docker run -dit --privileged --name degoo degoo_drive
Here are some examples of how to pass arguments to the mounting drive
- Run container with debug:
docker run -dit --privileged --name degoo degoo_drive --debug
- Run container bypassing login (token and refrehs token):
docker run -dit --privileged --name degoo degoo_drive --debug --degoo-refresh-token myRefreshToken
- Change default mountpoint:
docker run -dit --privileged --name degoo degoo_drive --debug --mountpoint /degoo_drive
You can use the docker file (Dockerfile-plex) included in the project to mount the container with the latest version of plex, and the virtual drive. Just follow these steps:
- Modify the keys.json file to include RefreshToken
- Create the image:
docker build -f Dockerfile-plex -t plex_degoo_drive .
- Create the volumes in host
- Create the container:
docker create --name=plex --net=host --memory="2gb" --privileged --cap-add SYS_ADMIN --device /dev/fuse -e VERSION=latest -e PUID=1001 -e PGID=1001 -e TZ=Europe/Madrid -v /path/to/volume/plex/config:/config -v /path/to/volume/plex/tvshows:/data/tvshows -v /path/to/volume/plex/movies:/data/movies -v /path/to/volume/plex/transcode:/transcode plex_degoo_drive
- Go to http://localhost:32400/web/index.html
If login fails with a 429 Too Many Requests, or similar, you can bypass it by using directly refreshToken provided by Degoo once logged in. To do so, go to https://app.degoo.com/login and open the developer tools to see this data.
Uploading files to Degoo (cp and mv commands) does not work 100% of the time, so it is recommended to use the cp command to avoid losing files. In case the upload is unsuccessful, if you have enabled the logs, you will see the following message: WARN: file [name_of_file.ext] has not been uploaded successfully