All Projects → plexdrive → Plexdrive

plexdrive / Plexdrive

Licence: mit
Plexdrive mounts your Google Drive FUSE filesystem (optimized for media playback)

Programming Languages

go
31211 projects - #10 most used programming language

Projects that are alternatives of or similar to Plexdrive

Holysheet
A program to store arbitrary files in Google Sheets
Stars: ✭ 59 (-95.54%)
Mutual labels:  hacktoberfest, google-drive
Google Drive Ocamlfuse
FUSE filesystem over Google Drive
Stars: ✭ 4,447 (+235.88%)
Mutual labels:  google-drive, fuse
Gcsf
a FUSE file system based on Google Drive
Stars: ✭ 2,251 (+70.02%)
Mutual labels:  google-drive, fuse
Fantasy Football Metrics Weekly Report
Command line application to create weekly reports (containing stats, metrics, and rankings) for Fantasy Football leagues on the following platforms: Yahoo, Fleaflicker, Sleeper, ESPN.
Stars: ✭ 62 (-95.32%)
Mutual labels:  hacktoberfest, google-drive
Bin
~/bin
Stars: ✭ 93 (-92.98%)
Mutual labels:  hacktoberfest
Binarykit
💾🔍🧮 BinaryKit helps you to break down binary data into bits and bytes, easily access specific parts and write data to binary.
Stars: ✭ 92 (-93.05%)
Mutual labels:  hacktoberfest
Music
Music player and library designed for elementary OS
Stars: ✭ 92 (-93.05%)
Mutual labels:  hacktoberfest
Dockerfile Image Update
A tool that helps you get security patches for Docker images into production as quickly as possible without breaking things
Stars: ✭ 92 (-93.05%)
Mutual labels:  hacktoberfest
Adyen Php Api Library
Adyen API Library for PHP
Stars: ✭ 93 (-92.98%)
Mutual labels:  hacktoberfest
Coteafs Appium
📱 Wrapper Appium Framework in Java which supports Automation of Mobile and Tablet apps.
Stars: ✭ 93 (-92.98%)
Mutual labels:  hacktoberfest
Tasklite
The CLI task manager for power users
Stars: ✭ 91 (-93.13%)
Mutual labels:  hacktoberfest
Content
Nuxt Content lets you write in a content/ directory and fetch your Markdown, JSON, YAML, XML and CSV files through a MongoDB like API, acting as a Git-based Headless CMS
Stars: ✭ 1,311 (-0.98%)
Mutual labels:  hacktoberfest
Bulma Toast
Bulma's pure JavaScript extension to display toasts
Stars: ✭ 93 (-92.98%)
Mutual labels:  hacktoberfest
Nifi Registry
Apache NiFi Registry
Stars: ✭ 91 (-93.13%)
Mutual labels:  hacktoberfest
Arduino Amiibo Tools
Arduino sketches to play with amiibo
Stars: ✭ 93 (-92.98%)
Mutual labels:  hacktoberfest
Editor
Editor/IDE for Vega and Vega-Lite
Stars: ✭ 92 (-93.05%)
Mutual labels:  hacktoberfest
Tutorialdb
A search 🔎 engine for programming/dev tutorials, See it in action 👉
Stars: ✭ 93 (-92.98%)
Mutual labels:  hacktoberfest
Deautherdroid
Additional android app for SpaceHunn's ESP8266 DeAuther.
Stars: ✭ 93 (-92.98%)
Mutual labels:  hacktoberfest
Pywizlight
A python connector for WiZ light bulbs (e.g SLV Play)
Stars: ✭ 92 (-93.05%)
Mutual labels:  hacktoberfest
Create Google Shared Drive
Cloudflare Redesigned Script for creating a Shared/Team Drive
Stars: ✭ 93 (-92.98%)
Mutual labels:  google-drive

Plexdrive Build Status

Plexdrive allows you to mount your Google Drive account as read-only fuse filesystem, with direct delete option on the filesystem.

The project is comparable to projects like rclone, google-drive-ocamlfuse or node-gdrive-fuse, but optimized for media streaming e.g. with plex ;)

Please note that plexdrive doesn't currently support writes (adding new files or modifications), it only supports reading existing files and deletion.

I tried using rclone for a long time, but got API Quota errors every day and/or multiple times per day, so I decided to try node-gdrive-fuse. The problem here was that it missed some of my media files, so as a result I started implementing my own file system library.

If you like the project, feel free to make a small donation via PayPal. Otherwise support the project by implementing new functions / bugfixes yourself and create pull requests :)

Installation

  1. First you need to install fuse on your system
  2. Then you should download the newest release from the GitHub release page.
  3. Create your own client id and client secret (see https://rclone.org/drive/#making-your-own-client-id).
  4. Sample command line for plexdrive
./plexdrive mount -c /root/.plexdrive -o allow_other /mnt/plexdrive

Installation from Source

  1. Install FUSE an Go 1.11.4 or newer on your system (use latest stable Go version if possible)
  2. Clone the project: git clone https://github.com/plexdrive/plexdrive
  3. Run GO111MODULE=on go install
  4. Run $GOPATH/bin/plexdrive to use the instaled version (eg. ~/go/bin/plexdrive)

Crypted mount with rclone

You can use this tutorial for instruction how to mount an encrypted rclone mount.

Usage

Usage of ./plexdrive mount:
  --cache-file string
    	Path of the cache file (default "~/.plexdrive/cache.bolt")
  --chunk-check-threads int
    	The number of threads to use for checking chunk existence (default 2)
  --chunk-load-ahead int
    	The number of chunks that should be read ahead (default 3)
  --chunk-load-threads int
    	The number of threads to use for downloading chunks (default 2)
  --chunk-size string
    	The size of each chunk that is downloaded (units: B, K, M, G) (default "10M")
  -c, --config string
    	The path to the configuration directory (default "~/.plexdrive")
  --drive-id string
    	The ID of the shared drive to mount (including team drives)
  -o, --fuse-options string
    	Fuse mount options (e.g. -fuse-options allow_other,...)
  --gid int
    	Set the mounts GID (-1 = default permissions) (default -1)
  --max-chunks int
    	The maximum number of chunks to be stored in memory (default 10)
  --refresh-interval duration
    	The time to wait till checking for changes (default 1m0s)
  --root-node-id string
    	The ID of the root node to mount (use this for only mount a sub directory) (default "root")
  --uid int
    	Set the mounts UID (-1 = default permissions) (default -1)
  --umask value
    	Override the default file permissions
  -v, --verbosity int
    	Set the log level (0 = error, 1 = warn, 2 = info, 3 = debug, 4 = trace)
  --version
    	Displays program's version information

Signals

  • HUP: Trigger checking for changes
  • INT (Ctrl+C): Unmount and exit

Support

Slack support is available on our Slack channel. Feel free to ask configuration and setup questions here.

Supported FUSE mount options

  • allow_other
  • allow_dev
  • allow_non_empty_mount
  • allow_suid
  • max_readahead=1234
  • default_permissions
  • excl_create
  • fs_name=myname
  • local_volume
  • writeback_cache
  • volume_name=myname
  • read_only
  • direct_io

Root-Node-ID

You can use the option root-node-id to specify a folder id that should be mounted as the root folder. This option will not prevent plexdrive from getting the changes for your whole Google Drive structure. It will only "display" another folder as root instead of the real root folder. Don't expect any performance improvement or something else. This option is only for your personal folder structuring.

Team Drive

You can pass the ID of a Team Drive as drive-id to get access to a Team drive, here's how:

Contribute

If you want to support the project by implementing functions / fixing bugs yourself feel free to do so!

  1. Fork the repository
  2. Clone it to your golang workspace $GOPATH/src/github.com/username/plexdrive
  3. Implement your changes
  4. Test your changes (e.g. go build && ./plexdrive -v3 /tmp/drive)
  5. Format everything with gofmt ( (I recommend working with VSCode and VSCode-Go)
  6. Create a pull request
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].