PHPackages                             dmlogic/photo-indexer - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. dmlogic/photo-indexer

ActiveLibrary

dmlogic/photo-indexer
=====================

Lookup albums from a Google Photos account and download them to local storage

v2.0.2(3y ago)121MITPHPPHP ^8.0

Since Oct 24Pushed 2y ago1 watchersCompare

[ Source](https://github.com/dmlogic/photo-indexer)[ Packagist](https://packagist.org/packages/dmlogic/photo-indexer)[ RSS](/packages/dmlogic-photo-indexer/feed)WikiDiscussions master Synced 1mo ago

READMEChangelog (4)Dependencies (6)Versions (6)Used By (0)

Google Photos Indexer
=====================

[](#google-photos-indexer)

A Laravel package providing console commands to maintain a local copy of a Google Photos account. Also has endpoints for setting up OAuth access via a couple of localhost routes.

This can serve as both a backup and, by using the [Slideshow](https://github.com/dmlogic/photo-slideshow) tool, a rolling randomised display on your TV or photo frame.

The indexer is only interested in photos you have placed in an album. The intention is that you have to denote the image as "special" enough to copy down. That way random phone shots that get sync'd don't make the cut.

Installation
------------

[](#installation)

As a package, this requires a host Laravel app. I *really* hate dealing with [laravel/laravel](https://github.com/laravel/laravel) as a container for my code, so there is a build script to quickly consume this package from a functioning App based on the latest available Laravel skeleton. This keeps the codebase clean and makes life massively easier at upgrade time.

1. Create suitable host hardware and OS. A Raspberry PI with a large storage card is perfect
2. Clone this repo
3. Copy `.env.template` to `.env` and adjust as required - particularly the full path to photo storage (which should really be totally separate from this code)
4. Setup OAuth access to your App and download credentials to `credentials.json` in this folder
5. Run `./build.sh`
6. `cd` into `build` and run `php artisan serve`
7. In your browser visit `http://127.0.0.1/oauth/start` and complete the oauth process
8. Setup a CRON command to index daily. e.g. `0 1 * * * cd /full/path/to/project/build && php artisan photos:index`

Upgrade and maintenance
-----------------------

[](#upgrade-and-maintenance)

You can pretty much follow the above providing you don't trash your data. Recommended process:

- Copy `database/database.sqlite` somewhere safe
- If your photo storage is not outside of the built app, copy it somewhere safe
- Delete the built app
- Complete the installation steps
- Copy back `database/database.sqlite` and your photos if necessary

License
-------

[](#license)

This code is open-sourced software licensed under the [MIT license](https://opensource.org/licenses/MIT).

###  Health Score

28

—

LowBetter than 54% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity5

Limited adoption so far

Community8

Small or concentrated contributor base

Maturity66

Established project with proven stability

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~312 days

Total

4

Last Release

1453d ago

Major Versions

v1.0 → v2.0.02022-05-19

PHP version history (2 changes)v1.0PHP ^7.1.3

v2.0.0PHP ^8.0

### Community

Maintainers

![](https://www.gravatar.com/avatar/edd812a055e10338da34ba719c228245d153d57762c428f24ca3c4f74b3685b0?d=identicon)[dmlogic](/maintainers/dmlogic)

---

Top Contributors

[![dmlogic](https://avatars.githubusercontent.com/u/1250252?v=4)](https://github.com/dmlogic "dmlogic (10 commits)")

---

Tags

google-photoslaravel-packagephplaravelgoogle photos

###  Code Quality

Static AnalysisPHPStan

Code StylePHP CS Fixer

Type Coverage Yes

### Embed Badge

![Health badge](/badges/dmlogic-photo-indexer/health.svg)

```
[![Health](https://phpackages.com/badges/dmlogic-photo-indexer/health.svg)](https://phpackages.com/packages/dmlogic-photo-indexer)
```

###  Alternatives

[laravolt/avatar

Turn name, email, and any other string into initial-based avatar or gravatar.

2.0k5.4M31](/packages/laravolt-avatar)[intervention/image-laravel

Laravel Integration of Intervention Image

1496.5M101](/packages/intervention-image-laravel)[bkwld/croppa

Image thumbnail creation through specially formatted URLs for Laravel

510496.0k23](/packages/bkwld-croppa)[kompo/kompo

Laravel &amp; Vue.js FullStack Components for Rapid Application Development

11812.4k21](/packages/kompo-kompo)[danihidayatx/image-optimizer

Optimize your Filament images before they reach your database. Forked from joshembling/image-optimizer for Filament v4 &amp; v5 support.

254.4k](/packages/danihidayatx-image-optimizer)[weblabormx/laravel-front

Front is a administration panel for Laravel. It allows you to create CRUD easily in minutes. It allows to fully customize any part of the code.

1111.1k](/packages/weblabormx-laravel-front)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
