Index your Google Drive Easily and Free.

Overview

Google Personal/Shared Drive Index

Hits

Full White label and Customizable Index | One of a kind

Screenshot

Screenshot

Note: The Changes in your workers config can effect later due to cache. Use incognito mode every time to open the worker URL to overcome that issue.

How to

  • Stable Release 2.0.21
  • Beta Version (Latest) - dl.connectvip (For Dark Theme use darkly)
  • If you want to deploy main drive leave the option ROOT as it is.
  • If you want to deploy your Team Drive/Shared Drive/Folder then copy the ID and replace it with ROOT.
  • Eg. if you open this shared drive https://drive.google.com/drive/u/0/folders/0AOM2i7MQiuWIUk9PVA - 0AOM2i7MQiuWIUk9PVA is its ID.
  • Authenticate and copy the code from Google and paste it into Authorization Code Box.
  • Click on Get Code to Generate Code and Copy it for later use.
  • Now Create Cloud flare account and verify email or login with existing account.
  • Find Workers and Open it.
  • Create your sub-domain or continue if already done.
  • Select the Free Plan.
  • Click on Create a Worker.
  • You can rename the workers at top of the page.
  • Now paste the code you copied before.
  • Click on Save and Deploy.
  • Done. (May take time for some users due to new account or cache issues)

Basic Config

    "roots":[
      {
          "id": "root",
          "name": "Drive One",
          "protect_file_link": false,
         // "auth": {"username":"password"} /* Remove double slash before "auth" to activate id password protection */
      },
    ]};

Multiple ID Config

  • Add this code for each drive. see cloud flare workers code for more info. (requires common sense)
    "roots":[
      {
          "id": "root",
          "name": "Drive One",
          "protect_file_link": false,
         // "auth": {"username":"password"} /* Remove double slash before "auth" to activate id password protection */
      },
      {
          "id": "root",
          "name": "Drive Two",
          "protect_file_link": false,
         // "auth": {"username":"password", "username1":"password1"} /* Remove double slash before "auth" to activate id password protection */
      },
    ]};

Service Account

  • Multiple Service Accounts are supported.
  • set "service_account": false to "service_account": true
  • Replace {} with data from service account file.json

Multiple Users Password

  • For single user
            // "auth": {"username":"password"} /** remove double slash at starting of this line to use password. */
  • For multiple users (unlimited users)
      {
          "id": "",
          "name": "Drive Two",
          "protect_file_link": false,
          // "auth": { "user1":"pass1", "user2":"pass2", }  /** remove double slash at starting of this line to use password. */
      },
  • where "user1":"pass1" and "user2":"pass2" are combinations.
  • if users adds "auth":{"":""} empty values then the site will ask for authentication but user can enter without entering any data by clicking submit.

Use of .password File

  • This is directory encryption added by the original author.
  • Add a .password file your required password in your folder which you want to protect, each folder should have its own .password file.
  • The password is stored inside the Google Drive Folder, not the index and the .password file is hidden an cannot be accessed using Index.
  • Example use https://bit.ly/3tBxXJN and password is thispassword

Brand Customization

  • In Latest Release, you can rebrand the Index as per your needs.
  • Each line has its own custom feature. Edit as per your needs.
  • You can remove credit option but we request you not to.
  • See Below code to understand Customization.
const uiConfig = {
  "theme": "slate", // switch between themes, default set to vapor, select from https://www.npmjs.com/package/@googledrive/index
  "version": "2.0.20", // don't touch this one. get latest code using generator at https://bdi-generator.hashhackers.com
  // If you're using Image then set to true, If you want text then set it to false
  "logo_image": true, // true if you're using image link in next option.
  "logo_height": "", // only if logo_image is true
  "logo_width": "100px", // only if logo_image is true
  "favicon": "https://cdn.jsdelivr.net/npm/@googledrive/[email protected]/images/favicon.ico",
  // if logo is true then link otherwise just text for name
  "logo_link_name": "https://cdn.jsdelivr.net/npm/@googledrive/[email protected]/images/bhadoo-cloud-logo-white.svg",
  "fixed_header": true, // If you want the footer to be flexible or fixed.
  "header_padding": "60", // Value 60 for fixed header, Value 20 for flexible header. Required to be changed accordingly in some themes.
  "nav_link_1": "Home", // change navigation link name
  "nav_link_3": "Current Path", // change navigation link name
  "nav_link_4": "Contact", // change navigation link name
  "fixed_footer": false, // If you want the footer to be flexible or fixed.
  "hide_footer": true, // hides the footer from site entirely.
  "header_style_class": "navbar-dark bg-primary", // navbar-dark bg-primary || navbar-dark bg-dark || navbar-light bg-light
  "footer_style_class": "bg-primary", // bg-primary || bg-dark || bg-light
  "css_a_tag_color": "white", // Color Name or Hex Code eg. #ffffff
  "css_p_tag_color": "white", // Color Name or Hex Code eg. #ffffff
  "folder_text_color": "white", // Color Name or Hex Code eg. #ffffff
  "loading_spinner_class": "text-light", // https://getbootstrap.com/docs/5.0/components/spinners/#colors
  "search_button_class": "btn btn-danger", // https://getbootstrap.com/docs/5.0/components/buttons/#examples
  "path_nav_alert_class": "alert alert-primary", // https://getbootstrap.com/docs/4.0/components/alerts/#examples
  "file_view_alert_class": "alert alert-danger", // https://getbootstrap.com/docs/4.0/components/alerts/#examples
  "file_count_alert_class": "alert alert-secondary", // https://getbootstrap.com/docs/4.0/components/alerts/#examples
  "contact_link": "https://telegram.dog/Telegram", // Link to Contact Button on Menu
  "copyright_year": "2021", // year of copyright, can be anything like 2015 - 2020 or just 2020
  "company_name": "Oshekher", // Name next to copyright
  "company_link": "https://telegram.dog/Telegram", // link of copyright name
  "credit": false, // Set this to true to give us credit
  "display_size": true, // Set this to false to hide display file size
  "display_time": false, // Set this to false to hide display modified time for folder and files
  "display_download": true, // Set this to false to hide download icon for folder and files on main index
  "disable_player": false, // Set this to true to hide audio and video players
  "custom_srt_lang": "", // Subtitle Language Code for Custom .vtt language.
  "disable_video_download": false, // Remove Download, Copy Button on Videos
  "second_domain_for_dl": false, // If you want to display other URL for Downloading to protect your main domain.
  "downloaddomain": "https://testing.fetchgoogleapi.workers.dev", // If "second_domain_for_dl": true then enter downloaddomain otherwise keep empty. eg. https://workers.workersname.workers.dev No Trailing '/'
  "poster": "https://cdn.jsdelivr.net/npm/@googledrive/[email protected]/images/poster.jpg", // Video poster URL or see Readme to how to load from Drive
  "audioposter": "https://cdn.jsdelivr.net/npm/@googledrive/[email protected]/images/music.jpg", // Video poster URL or see Readme to how to load from Drive
  "jsdelivr_cdn_src": "https://cdn.jsdelivr.net/npm/@googledrive/index", // If Project is Forked, then enter your GitHub repo
  "render_head_md": true, // Render Head.md
  "render_readme_md": true, // Render Readme.md
  "display_drive_link": false, // This will add a Link Button to Google Drive of that particular file.
  "plyr_io_version": "3.6.8", // Change plyr.io version in future when needed.
  "plyr_io_video_resolution": "16:9", // For reference, visit: https://github.com/sampotts/plyr#options
  "unauthorized_owner_link": "https://telegram.dog/Telegram", // Unauthorized Error Page Link to Owner
  "unauthorized_owner_email": "[email protected]", // Unauthorized Error Page Owner Email
  "arc_code": "xxxxxxxx", // arc.io Integration Code, get yours from https://portal.arc.io
  "search_all_drives": false // turn this on to switch this to gdrive search application
};

Second Domain Systems

  • set second_domain_for_dl to true first.
  • set downloaddomain to ur new index you're going to make below.
  • then make separate index on different cloudflare account with worker-beta-second-domain.js code.
  • change only refresh_token or SA and Drive IDs, don't touch anything else.
  • It's done.

arc.io Integration

  • arc.io is embedded in code to support gdi.js.org
  • if you have approved arc.io account, use your code.
  • incase you don't have arc account and want to support us, please keep our arc.io code in your index.
  • if anyone doesn't want to support us and want to remove arc, remove L133 line from the workers code.

Themes

  • There are 25 Themes from bootswatch official Bootstrap Themes.
  • You can check Theme from bootswatch.com before selecting.
  • To Change theme, first generate the code, paste in Cloud flare Workers and then select one theme code from below and paste it in line 56 of worker script.
Themes
cerulean cosmo cyborg darkly flatly journal
litera lumen lux materia minty pulse
sandstone simplex sketchy slate solar spacelab
superhero united yeti vapor morph quartz
zephyr

Audio and Video

  • Poster for Video is added as default.
  • Fetch Video Poster from Google Drive, uses default if none available.

Search Limitations

  • Search only works if you use Shared Drive ID or root.
  • Search won't work or the bar won't appear if you're using Folder ID inside from root or Shared Drive.

Sorting by Name or Modified Time

  • Find params.orderBy in workers code L623 and L710.
  • use params.orderBy = 'folder,name,modifiedTime desc'; to sort by File and Folder Name.
  • use params.orderBy = 'folder,modifiedTime desc,name'; to sort by Modified Time.
  • A comma-separated list of sort keys. Valid keys are 'createdTime', 'folder', 'modifiedByMeTime', 'modifiedTime', 'name', 'name_natural', 'quotaBytesUsed', 'recency', 'sharedWithMeTime', 'starred', and 'viewedByMeTime'. Each key sorts ascending by default, but may be reversed with the 'desc' modifier. Example usage: ?orderBy=folder,modifiedTime desc,name. Please note that there is a current limitation for users with approximately one million files in which the requested sort order is ignored.

Making your own repo, editing and making changes

  • Fork this Repo or Import.
  • Make your changes in app.js and workers-beta.js files.
  • Make a new release in GitHub.
  • Change jsDelivr CDN URL and version code in workers-beta.js.
  • Deploy in Cloud flare Workers.

Get Google_Client_ID and Secret and Generate Token

  • Open Google Dev Credentials Site.
  • Create a Project, name as you like.
  • Enable Drive API
  • In Credentials Page Click Create Credentials and then Click OAuth Client ID.
  • Click Configure Consent Screen.
  • Select External.
  • Fill your APP Details
  • Select Scope as https://www.googleapis.com/auth/drive (wait few hours if Google Drive is not showing up if you've just enabled the scope) or
  • You can also enter manual scope https://www.googleapis.com/auth/drive and click on add to table and then save or update.
  • Proceed with Save and Continue.
  • Add your email id you want to use as test user, up to 100 emails maximum. (Because you are not verified)
  • In Credentials Page Click Create Credentials and then Click OAuth Client ID.
  • Select Desktop App.
  • Now you have your own CLIENT ID and CLIENT SECRET.
  • Copy your details and save for future use.
  • Copy worker-generator.js code.
  • Replace Line 6 and 7 with your own CLIENT ID and CLIENT SECRET.
  • Paste this code in Cloud flare Workers and follow the site.

Upcoming Changes

  • Adding More Features from other Indexes.

Other Indexes

Credits

Disclaimer

  • This project is not associated with Google, this project uses Google Drive API to Index Files and Folders.
  • These Index's are written by someone else, possibly by donva and maple3142.
  • Beta Version is redesigned using Bootstrap from Alpha Version by Parveen Bhadoo.
  • This Repo was imported from yanzai and then modified for personal use.
You might also like...

Useful for managing a wrapping index for an array of items.

use-wrapping-index Useful for managing a wrapping index for an array of items. Usage import useWrappingIndex from "@alexcarpenter/use-wrapping-index";

Dec 9, 2022

Create a self-maintaining index via proxy

proxy-indexer Proxy-indexer allows you to easily index collections of mutable objects based on their own mutable properties. While this is relatively

Nov 18, 2022

Obsidian plugin that allows user to create a glossary of files, an index of files or both.

Obsidian Auto Glossary Auto Glossary is an Obsidian plugin to create a glossary, an index or a glossary with an index from the files you want. Feature

Dec 30, 2022

Google Clone using NEXT JS ,SSR, Tailwind and Google API's to search data.

This is a Next.js project bootstrapped with create-next-app. Getting Started First, run the development server: npm run dev # or yarn dev Open http://

Sep 23, 2022

Script to synchronize between a Notion database and Google Calendar both ways. Uses Google App Script.

Yet Another Two Way Notion-Google Calendar Sync Script A script to sync events between Google calendar and a Notion database. Features! Google App Scr

Jan 7, 2023

Google-reviews-crawler - A simple Playwright crawler that stores Google Maps Place/Business reviews to a JSON file.

google-reviews-crawler A simple Playwright crawler that stores Google Maps Place/Business reviews to a JSON file. Usage Clone the repo, install the de

Oct 26, 2022

simple jquery Plugin that utilizes Google API to get data from a Place on Google Maps

jQuery Plugin to display Google Reviews of a Place on Google Maps this will get the 5 reviews, google offers you. But I need more than 5 reviews! if y

Dec 14, 2022

A Geiger counter for Google emitting a sound for each request that goes to Google.

Google Teller This is a (Firefox) add-on (WebExtension) that emits a sound every time you connect to a service hosted by Google. It is inspired by @be

Nov 5, 2022
Releases(2.0.22)
Owner
Moto One Fusion +
Official Repository Of Liber.cf
Moto One Fusion +
This is a simple script to upload Multiple files into google drive using google drive API and Nodejs.

Welcome to gDrive Multiple File Upload ?? This is a simple script to upload Multiple files into google drive using google drive API and Nodejs Install

Jayamal Sanuka Hettiarachchi 1 Dec 29, 2021
Todas as aulas da Semana JS Expert 5.0 - Google Drive Clone

Google Drive Clone - Semana JS Expert 5.0 Seja bem vindo(a) à quinta Semana Javascript Expert. Este é o código inicial para iniciar nossa jornada. Mar

Erick Wendel 1.5k Dec 29, 2022
This extension injects a button to the Google Drive WebUI.

This extension injects a button to the Google Drive WebUI. When clicking on it the current folder id is send to your gogdl-ng instance. It was developed and tested on the latest version of Mozilla Firefox and Chrome.

null 5 Jul 13, 2022
🔻 Generate a Google Drive direct download link based on the URL or ID

Drive Link Generate a Google Drive direct download link based on the URL or ID. Usage The API is the same on all this platforms ✔️ Deno ?? import { dr

Eliaz Bobadilla 10 Nov 1, 2022
Вlockchain feed index Google Colab

blockchain-feed-index Run Google Colab https://colab.research.google.com/drive/1OShIMVcFZ_khsUIBOIV1lzrqAGo1gfm_?usp=sharing Installation Install node

DE MINING 1 Jun 25, 2022
A personal semantic search engine capable of surfacing relevant bookmarks, journal entries, notes, blogs, contacts, and more, built on an efficient document embedding algorithm and Monocle's personal search index.

Revery ?? Revery is a semantic search engine that operates on my Monocle search index. While Revery lets me search through the same database of tens o

Linus Lee 215 Dec 30, 2022
A helper to use immer as Solid.js Signal to drive state

Solid Immer A helper to use immer as Solid.js Signal to drive state. Installation $ npm install solid-immer Usage Use createImmerSignal to create a im

Shuaiqi Wang 67 Nov 22, 2022
Simple webpack plugin that generates VERSION and commitInfo insert index.html during build

Html commit version plugin Simple webpack plugin that generates CommitInfo and VERSION insert index.html during build. English | 简体中文 Usage Given a we

null 13 Mar 8, 2022
In this project, I built a simple HTML list of To-Do tasks. This simple web page was built using Webpack, creating everything from a JavaScript index file that imported all the modules and assets

To Do List In this project, I built a simple HTML list of To-Do tasks. This simple web page was built using Webpack, creating everything from a JavaSc

Andrés Felipe Arroyave Naranjo 10 Mar 31, 2022
Experimental URL->CID index using b trees (chunky-trees from @mikeal)

ipfs-url-index Experimental IPFS index for URL->CID, implemented using chunky-trees B-Tree implementation. API Server Run node main.js to start the ap

Ilya Kreymer 2 Mar 14, 2022