PHPackages                             unikka/filepreviews - 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. [Image &amp; Media](/categories/media)
4. /
5. unikka/filepreviews

ActiveNeos-package[Image &amp; Media](/categories/media)

unikka/filepreviews
===================

Neos CMS integration of filepreviews.io to generate thumbnails

v2.1.0(5y ago)2231[4 issues](https://github.com/Unikka/FilePreviews/issues)GPL-3.0-or-laterPHP

Since Mar 12Pushed 4y agoCompare

[ Source](https://github.com/Unikka/FilePreviews)[ Packagist](https://packagist.org/packages/unikka/filepreviews)[ GitHub Sponsors](https://github.com/markusguenther)[ Patreon](https://www.patreon.com/unikka)[ RSS](/packages/unikka-filepreviews/feed)WikiDiscussions master Synced today

READMEChangelog (3)Dependencies (5)Versions (6)Used By (0)

 [![](https://camo.githubusercontent.com/63cdbe11628399f4564ae03d9985774c1bd110e532b547b909ff862601dec168/68747470733a2f2f63646e2e6a7364656c6976722e6e65742f67682f756e696b6b612f756e696b6b612e64652f7372632f6173736574732f756e696b6b615f776974685f6261636b67726f756e642e737667)](https://camo.githubusercontent.com/63cdbe11628399f4564ae03d9985774c1bd110e532b547b909ff862601dec168/68747470733a2f2f63646e2e6a7364656c6976722e6e65742f67682f756e696b6b612f756e696b6b612e64652f7372632f6173736574732f756e696b6b615f776974685f6261636b67726f756e642e737667)

[![Packagist](https://camo.githubusercontent.com/970dc88ca572c5c98f3aee297d66f7d523af78ba75a753d5f7aaa5065dde83a0/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f6c2f756e696b6b612f66696c6570726576696577732e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/unikka/filepreviews)[![Code Climate maintainability](https://camo.githubusercontent.com/d865d5aa63c66f0c07ad915e463d6badb87373155580338ced61257e0affd379/68747470733a2f2f696d672e736869656c64732e696f2f636f6465636c696d6174652f6d61696e7461696e6162696c6974792d70657263656e746167652f556e696b6b612f46696c655072657669657773)](https://camo.githubusercontent.com/d865d5aa63c66f0c07ad915e463d6badb87373155580338ced61257e0affd379/68747470733a2f2f696d672e736869656c64732e696f2f636f6465636c696d6174652f6d61696e7461696e6162696c6974792d70657263656e746167652f556e696b6b612f46696c655072657669657773)[![Packagist](https://camo.githubusercontent.com/808be8adf2e6b42a296bd0ed0b580f2a9f8eda972a1d12aa2656adbf35f073d4/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f756e696b6b612f66696c6570726576696577732e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/unikka/filepreviews)[![semantic-release](https://camo.githubusercontent.com/5f3b57745af83409bc673dec57e3eb360e1ec53b37ac29f81a319e347fa351c6/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f2532302532302546302539462539332541362546302539462539412538302d73656d616e7469632d2d72656c656173652d6531303037392e737667)](https://github.com/semantic-release/semantic-release)

Neos CMS filepreviews.io integration
====================================

[](#neos-cms-filepreviewsio-integration)

This package generate thumbnail and extract metadata from different type of document based on the API of [filepreviews.io](http://filepreviews.io/).

How it work ?
-------------

[](#how-it-work-)

This Generator call the FilePreviews.io API to generate Thumbnail for many different file formats. Check [filepreviews.io](http://filepreviews.io/)website for more informations.

Getting started
---------------

[](#getting-started)

To use this package you need an account at \[filepreview.io\]. Create an account if you do not have one yet. Otherwise you can not use this package.

If you already have an account you only have to look up your `API Key` and the corresponding `Secret`.

Install the package via composer:

```
composer require unikka/filepreviews

```

Configure the API credentials:

```
Unikka:
  FilePreviews:
    apiKey: 'your-key'
    apiSecret: 'your-secret'
```

To get the preview images via filepreview.io we use a queue. This means that when you upload a new file to Neos we first create a standard preview image and then request it from the service. When the preview image is available for your website we download it and update the previous preview image.

For the queue to work you need to set it up initially. This is done with the command:

```
./flow queue:setup filepreview-queue
```

The command before initializes everything and we get an additional database table `flowpack_jobqueue_messages_filepreview-queue` where we list all our thumbnail requests to [filepreviews.io](http://filepreviews.io/). Now we just have to make sure that a worker is running and processing all our jobs. If an error occurs or a file is not yet ready, the file is put back and queried again.

```
./flow flowpack.jobqueue.common:job:work filepreview-queue
```

Configuration
-------------

[](#configuration)

Like any other Thumbnail Generator, you can change default settings. First step, like mentioned before in the getting stated section, you need to configure your API keys.

```
Unikka:
  FilePreviews:
    apiKey: 'key'
    apiSecret: 'secret'
    defaultOptions:
      format: 'jpg'
```

- `apiKey`: check [filepreviews.io](http://filepreviews.io/)
- `apiSecret`: check [filepreviews.io](http://filepreviews.io/)
- `defaultOptions`: check the [API endpoint](https://filepreviews.io/docs/endpoints/) documentation

We use our own thumbnail generator and accordingly different options can be assigned. You can use the FilePreviewThumbnailGenerator with features like the supportedExtensions selectiv for only some specific file formats. For example, it is not very useful to use the generator for images, because Neos can process them itself. [Supported Formats](https://filepreviews.io/docs/features/) from filepreviews.io

```
Neos:
  Media:
    thumbnailGenerators:
      'Unikka\FilePreviews\Domain\Model\ThumbnailGenerator\FilePreviewsThumbnailGenerator':
        maximumFileSize: 2000000
        supportedExtensions: [ 'doc', 'docx', 'ppt', 'pptx', 'xls', 'xlxs', 'odt', 'ott', 'odp', 'txt', 'rtf', 'eps', 'psd', 'ai' ]
```

- `supportedExtensions`: check the official documentation of FilePreviews [Supported Formats](https://filepreviews.io/docs/features/) and enjoy.
- `maximumFileSize`: Default is 2000000

We use the packages [Flowpack.JobQueue.Common](https://github.com/Flowpack/jobqueue-common "Common queue package") and [Flowpack.JobQueue.Doctrine](https://github.com/Flowpack/jobqueue-doctrine "A job queue backend for the Flowpack.JobQueue.Common package")and these packages come with a lot of own configurations. See the docs of the packages. We use the doctrine backend to have error handling out of the box. But if you want to use redis for instance you can configure that and just replace the className.

```
Flowpack:
  JobQueue:
    Common:
      queues:
        'filepreview-queue':
          className: 'Flowpack\JobQueue\Doctrine\Queue\DoctrineQueue'
          maximumNumberOfReleases: 3
          executeIsolated: true
          options:
            defaultTimeout: 30
          releaseOptions:
            priority: 512
            delay: 15
```

Contribution
------------

[](#contribution)

We'd love you to contribute to FilePreviews. We try to make it as easy as possible. We are using semantic versioning to have more time to concentrate on important stuff instead of struggling in the dependency or release hell.

Therefore the first rule is to follow the [eslint commit message guideline](https://github.com/conventional-changelog-archived-repos/conventional-changelog-eslint/blob/master/convention.md). It is really easy if you always commit via `yarn commit`. Commitizen will guide you.

All PRs will be merged into the master branch. Travis and semantic release will check the commit messages and start building a new release when the analysis of the latest commits will trigger that.

If you have questions just ping us on Twitter or Github.

About
-----

[](#about)

The package is based on the `Ttree\FilePreviews` package. We thank the [ttree team](https://ttree.ch) for all the efforts and initial development.

License
-------

[](#license)

The GNU GENERAL PUBLIC LICENSE (Version 3). Please see [License File](LICENSE) for more information.

###  Health Score

25

—

LowBetter than 35% of packages

Maintenance0

Infrequent updates — may be unmaintained

Popularity10

Limited adoption so far

Community12

Small or concentrated contributor base

Maturity67

Established project with proven stability

 Bus Factor2

2 contributors hold 50%+ of commits

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 ~528 days

Total

4

Last Release

2181d ago

Major Versions

0.1.0 → v2.0.02020-07-14

v1.0.0 → v2.1.02020-07-14

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/12020496?v=4)[unikka](/maintainers/unikka)[@Unikka](https://github.com/Unikka)

---

Top Contributors

[![markusguenther](https://avatars.githubusercontent.com/u/1014126?v=4)](https://github.com/markusguenther "markusguenther (17 commits)")[![dfeyer](https://avatars.githubusercontent.com/u/221173?v=4)](https://github.com/dfeyer "dfeyer (12 commits)")[![semantic-release-bot](https://avatars.githubusercontent.com/u/32174276?v=4)](https://github.com/semantic-release-bot "semantic-release-bot (4 commits)")[![aertmann](https://avatars.githubusercontent.com/u/903567?v=4)](https://github.com/aertmann "aertmann (3 commits)")[![jonnitto](https://avatars.githubusercontent.com/u/4510166?v=4)](https://github.com/jonnitto "jonnitto (1 commits)")

---

Tags

hacktoberfestneosneos-pluginneoscms

### Embed Badge

![Health badge](/badges/unikka-filepreviews/health.svg)

```
[![Health](https://phpackages.com/badges/unikka-filepreviews/health.svg)](https://phpackages.com/packages/unikka-filepreviews)
```

###  Alternatives

[aws/aws-sdk-php

AWS SDK for PHP - Use Amazon Web Services in your PHP project

6.3k543.5M2.6k](/packages/aws-aws-sdk-php)[neuron-core/neuron-ai

The PHP Agentic Framework.

2.0k656.1k38](/packages/neuron-core-neuron-ai)[tencentcloud/tencentcloud-sdk-php

TencentCloudApi php sdk

3741.3M46](/packages/tencentcloud-tencentcloud-sdk-php)[tempest/framework

The PHP framework that gets out of your way.

2.2k34.4k15](/packages/tempest-framework)[neos/neos

An open source Content Application Platform based on Flow. A set of core Content Management features is resting within a larger context that allows you to build a perfectly customized experience for your users.

1151.0M777](/packages/neos-neos)[eslazarev/wildberries-sdk

Wildberries OpenAPI clients (generated).

273.0k](/packages/eslazarev-wildberries-sdk)

PHPackages © 2026

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