PHPackages                             mo3golom/wonder-stories - 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. mo3golom/wonder-stories

ActiveLibrary[Image &amp; Media](/categories/media)

mo3golom/wonder-stories
=======================

Service for generating stories from source data

1.0.3(4y ago)05MITPHPPHP ^8.0

Since Aug 30Pushed 4y ago1 watchersCompare

[ Source](https://github.com/mo3golom/wonder-stories)[ Packagist](https://packagist.org/packages/mo3golom/wonder-stories)[ Docs](https://github.com/mo3golom/wonder-stories)[ RSS](/packages/mo3golom-wonder-stories/feed)WikiDiscussions master Synced 1mo ago

READMEChangelog (4)Dependencies (10)Versions (5)Used By (0)

Wonder Stories
==============

[](#wonder-stories)

[![Latest Version on Packagist](https://camo.githubusercontent.com/87ead6e8d87d4da3dc60a1d533ead36074016b8aaf75d917a052d469d8f17a6b/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f6d6f33676f6c6f6d2f776f6e6465722d73746f726965732e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/mo3golom/wonder-stories)

Сервис для генерации видео креативов для instagram stroies / reels или тик-ток видео.

Требования:

- php:8.0
- ffmpeg
- gd
- imagick

Установка
---------

[](#установка)

Вы можете установить пакет с помощью composer:

```
composer require mo3golom/wonder-stories
```

Использование
-------------

[](#использование)

Базовое использование:

```
$background = (new \Mo3golom\WonderStories\DTO\Background())
    ->setWidth(576)
    ->setHeight(1024)
    ->setDuration(7)
    ->setPath('path_to_mp4_video')
;

$block =  (new \Mo3golom\WonderStories\DTO\Block())
        ->setType(
            (new \Mo3golom\WonderStories\DTO\Type())
                ->setId(\Mo3golom\WonderStories\Enum\BlockTypes::TYPE_TEXT)
                ->setSettings([
                    'text' => 'test',
                    'font_color' => '#ffffff',
                    'font_size' => 32,
                    'offset' => 16,
                    'background_enable' => true,
                    'background_color' => '#000000',
                ])
        )
        ->setDuration(5)
        ->setStartAt(0)
        ->setPosition(
            (new \Mo3golom\WonderStories\DTO\Position())
                ->setX(100)
                ->setY(100)
        )
    ;

$creative = (new \Mo3golom\WonderStories\DTO\Creative())
    ->setBlocks([$block])
    ->setBackground($background)
;

$wonderStories = \Mo3golom\WonderStories\Service\WonderStories::make();
echo $wonderStories->createFromCreative($creative);
```

Также при создании сервиса можно передать свою конфигурацию:

```
$wonderStories = \Mo3golom\WonderStories\Service\WonderStories::make([
     'filesystem' => [
        'local' => [
            'root' => './package'
        ],
     ],
     'block_types' => [
            \Mo3golom\WonderStories\Enum\BlockTypes::TYPE_TEXT => [
                'id' => \Mo3golom\WonderStories\Enum\BlockTypes::TYPE_TEXT,
                'name' => 'Текст',
                'processor' => \Mo3golom\WonderStories\Service\Block\TypeProcessors\Text::class,
            ],
            \Mo3golom\WonderStories\Enum\BlockTypes::TYPE_TIMER => [
                'id' => \Mo3golom\WonderStories\Enum\BlockTypes::TYPE_TIMER,
                'name' => 'Таймер',
                'processor' => \Mo3golom\WonderStories\Service\Block\TypeProcessors\Timer::class,
            ],
     ],
]);
echo $wonderStories->createFromCreative($creative);
```

Типы Блоков:
------------

[](#типы-блоков)

Есть несколько доступных типов блоков (устанавливается в DTO Type, метод setId)

- \\Mo3golom\\WonderStories\\Enum\\BlockTypes::TYPE\_TEXT - обычный многострочный текст. Имеет следующие настройки:

```
[
    'text' => 'test', // отображаемый текст
    'font_color' => '#ffffff', // цвет текста в HEX формате
    'font_size' => 32, // размер текста
    'font_path' => 'path_to_font.ttf', // путь до файла шрифта .ttf
    'offset' => 16, // отступ от краев фона (будет заметно, если отрисовать фон)
    'background_enable' => true, // включить отрисовку фона
    'background_color' => '#000000', // цвет фона
]
```

- \\Mo3golom\\WonderStories\\Enum\\BlockTypes::TYPE\_TIMER - таймер обратного отсчета. Стартовое число зависит от продолжительности блока (setDuration). Имеет следующие настройки:

```
[
    'font_color' => '#ffffff', // цвет текста в HEX формате
    'font_size' => 32, // размер текста
    'font_path' => 'path_to_font.ttf', // путь до файла шрифта .ttf
    'offset' => 16, // отступ от краев фона (будет заметно, если отрисовать фон)
    'background_enable' => true, // включить отрисовку фона
    'background_color' => '#000000', // цвет фона
]
```

License
-------

[](#license)

The MIT License (MIT). Please see [License File](LICENSE.md) for more information.

###  Health Score

25

—

LowBetter than 37% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity4

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity59

Maturing project, gaining track record

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

Total

4

Last Release

1717d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/0b22df503bc94b224b4f44b7177cc29b1d51a0d4ffff578b4e8ac3ceaa8c61fd?d=identicon)[mo3golom1](/maintainers/mo3golom1)

---

Top Contributors

[![mo3golom](https://avatars.githubusercontent.com/u/14938997?v=4)](https://github.com/mo3golom "mo3golom (17 commits)")

---

Tags

ffmpeggeneratorinstagramphptik-tokvideo

###  Code Quality

TestsPHPUnit

Static AnalysisPsalm

Code StylePHP\_CodeSniffer

Type Coverage Yes

### Embed Badge

![Health badge](/badges/mo3golom-wonder-stories/health.svg)

```
[![Health](https://phpackages.com/badges/mo3golom-wonder-stories/health.svg)](https://phpackages.com/packages/mo3golom-wonder-stories)
```

###  Alternatives

[league/glide

Wonderfully easy on-demand image manipulation library with an HTTP based API.

2.6k51.2M116](/packages/league-glide)[bkwld/croppa

Image thumbnail creation through specially formatted URLs for Laravel

510496.0k23](/packages/bkwld-croppa)[flarum/core

Delightfully simple forum software.

211.3M1.9k](/packages/flarum-core)[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)

PHPackages © 2026

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