PHPackages                             alchemy/embed-bundle - 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. [Utility &amp; Helpers](/categories/utility)
4. /
5. alchemy/embed-bundle

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

alchemy/embed-bundle
====================

Embed resources bundle

4.1.0(8y ago)26079[12 PRs](https://github.com/alchemy-fr/embed-bundle/pulls)1MITTypeScript

Since Dec 21Pushed 2y ago4 watchersCompare

[ Source](https://github.com/alchemy-fr/embed-bundle)[ Packagist](https://packagist.org/packages/alchemy/embed-bundle)[ RSS](/packages/alchemy-embed-bundle/feed)WikiDiscussions 2.0 Synced 2mo ago

READMEChangelog (10)Dependencies (4)Versions (67)Used By (1)

Alchemy Embed Bundle [![Bower version](https://camo.githubusercontent.com/8df0686a25be14ede48e73336ab0bd675316a91dbbecc02b429d20f1b19824d9/68747470733a2f2f62616467652e667572792e696f2f626f2f616c6368656d792d656d6265642d6d65646961732e737667)](https://badge.fury.io/bo/alchemy-embed-medias)
==============================================================================================================================================================================================================================================================================================

[](#alchemy-embed-bundle-)

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

[](#installation)

Add embed bundle to Phraseanet:

`composer require alchemy/embed-bundle:^2.0.0`

Deploy embed players in Phraseanet assets path:

`gulp build-alchemy-embed`

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

[](#configuration)

configuration options for phraseanet in `config/configuration.yml`

propertytypedescriptionvideo.playerstringactive player, embed bundle ship with `videojs` and `flowplayer`video.autoplaybooleanautoplay as default behaviorvideo.message\_startstringStartOfMessage as default behavior , where 'StartOfMessage' is a field created from Phraseanet adminvideo.cover\_subdefstringdefine a subdefinition for video cover, default is `thumbnail`video.available\_speedsnumber\[\]playback available speedsaudio.playerstringactive video player, embed bundle ship with `videojs`audio.autoplaybooleanautoplay as default behavioraudio.cover\_subdefstringdefine a subdefinition for audio cover, default is `thumbnail`document.enable\_pdfjsbooleanuse pdfjs instead of flexbox for pdf onlydocument.playerstringactive document player, embed bundle ship with `flexbox`yaml example:

```
embed_bundle:
    video:
        player: videojs
        autoplay: false
        message_start: StartOfMessage
        cover_subdef: previewx4
        available_speeds:
          - 1
          - '1.5'
          - 3
    audio:
        player: videojs
        autoplay: false
        cover_subdef: thumbnail
    document:
        player: flexpaper
        enable_pdfjs: true

```

Field mapping
-------------

[](#field-mapping)

Video captions (subtitles and chapters) can be added via Phraseanet Fields setup: field name matching table:

field namevtt kinddescriptionVideoTextTracksubtitlewill add a subtitle track with a label named `default`VideoTextTrackFRsubtitlewill add a subtitle track with a label named `fr`VideoTextTrack\*subtitlewill add a subtitle track with a label named with field name placeholderVideoTextTrackChapterschapterswill add a chapter track - require JSON content### VTT file formats

[](#vtt-file-formats)

#### Subtitles valid field content

[](#subtitles-valid-field-content)

```
WEBVTT

1
00:00:00.000 --> 00:00:04.000
This is a sample subtitle track with formating

Chapter 2
00:00:04.000 --> 00:00:08.000
As you can see, that's easy

```

#### Chapters valid field content

[](#chapters-valid-field-content)

```
WEBVTT

Chapter 1
00:00:00.000 --> 00:00:04.000
{
    "title":"Chapter 1",
    "image":"asset/img/chapter_1.png"
}

Chapter 2
00:00:04.000 --> 00:00:08.000
{
    "title":"Chapter 2",
    "image":"asset/img/chapter_2.png"
}

```

###  Health Score

38

—

LowBetter than 85% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity19

Limited adoption so far

Community24

Small or concentrated contributor base

Maturity78

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

Recently: every ~187 days

Total

49

Last Release

939d ago

Major Versions

1.0.1 → 2.0.32019-05-23

1.0.2 → 2.0.62019-07-11

1.0.3 → 2.0.72019-09-02

1.0.x-dev → 2.0.82019-10-09

2.0.12 → 3.0.x-dev2021-09-29

### Community

Maintainers

![](https://www.gravatar.com/avatar/58d21270e5d40f7ee05bb875b2442496ffd38cec041f7fdcc507b8b040f7e7f8?d=identicon)[thibaud-evaneos](/maintainers/thibaud-evaneos)

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

---

Top Contributors

[![lostdalek](https://avatars.githubusercontent.com/u/2403818?v=4)](https://github.com/lostdalek "lostdalek (44 commits)")[![mike-esokia](https://avatars.githubusercontent.com/u/16316721?v=4)](https://github.com/mike-esokia "mike-esokia (35 commits)")[![nmaillat](https://avatars.githubusercontent.com/u/1225962?v=4)](https://github.com/nmaillat "nmaillat (31 commits)")[![HRavalomanana](https://avatars.githubusercontent.com/u/45967274?v=4)](https://github.com/HRavalomanana "HRavalomanana (17 commits)")[![aynsix](https://avatars.githubusercontent.com/u/35221835?v=4)](https://github.com/aynsix "aynsix (8 commits)")[![xrousset78800](https://avatars.githubusercontent.com/u/3024133?v=4)](https://github.com/xrousset78800 "xrousset78800 (4 commits)")[![jygaulier](https://avatars.githubusercontent.com/u/1247618?v=4)](https://github.com/jygaulier "jygaulier (3 commits)")[![4rthem](https://avatars.githubusercontent.com/u/2180032?v=4)](https://github.com/4rthem "4rthem (3 commits)")[![bburnichon](https://avatars.githubusercontent.com/u/2437286?v=4)](https://github.com/bburnichon "bburnichon (2 commits)")[![dependabot[bot]](https://avatars.githubusercontent.com/in/29110?v=4)](https://github.com/dependabot[bot] "dependabot[bot] (1 commits)")

###  Code Quality

TestsPHPUnit

Code StylePHP\_CodeSniffer

### Embed Badge

![Health badge](/badges/alchemy-embed-bundle/health.svg)

```
[![Health](https://phpackages.com/badges/alchemy-embed-bundle/health.svg)](https://phpackages.com/packages/alchemy-embed-bundle)
```

PHPackages © 2026

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