PHPackages                             skaras/skvideo - 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. [Caching](/categories/caching)
4. /
5. skaras/skvideo

ActiveTypo3-cms-extension[Caching](/categories/caching)

skaras/skvideo
==============

TYPO3 content element to cache thumbnails of Youtube &amp; Vimeo videos and play them after user confirmation. Options to remember user decision via cookie. Responsive display. Works with and without fluid\_styled\_content. No other dependencies.

3.0.1(1y ago)31552GPL-2.0-or-laterPHP

Since Oct 23Pushed 1y ago1 watchersCompare

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

READMEChangelogDependencies (1)Versions (11)Used By (0)

skvideo
=======

[](#skvideo)

TYPO3 content element to cache thumbnails of youtube/vimeo videos and play them after user confirmation. Responsive display. Works with or without fluid\_styled\_content. No other dependencies (no jquery etc).

How it works
------------

[](#how-it-works)

The **editor** inserts a skvideo content element into a page. He needs to specify

- the youtube/vimeo video code
- the type of the video (youtube or vimeo)
- whether to include the video title embedded in the preview image
- the width vs height ratio (16:9 or 4:3)
- optionally set a maximum width of the video on the page (otherwise it defaults to full width display)

The **end user** visits the page. The plugin fetches and stores a copy of the video thumbnail on the server. So the user's browser downloads the thumbnail from the site server, and not from the video provider.

If the user presses the play button of the video, he is being presented with a customizable notice and is asked to confirm that he wants to play the video. Optionally, the user can check a checkbox to store his decision via a cookie for 30 days. Separate cookies for Youtube and Vimeo are used.

If the user confirms, the video is played. In case the user had checked the checkbox to store his decission, the video is played without the notice.

How to install
--------------

[](#how-to-install)

**Prerequisites:** The content element needs css\_styled\_content or fluid\_styled\_content in order to work. So one of these extensions must be enabled on your site.

- Install the extension in you extension manager or vie composer.
- In the module menu to the left navigate to Admin Tools &gt; Maintanance, then click on Analyze database and create all. This will create additional database tables needed by the extension.
- Add the SK Video static template into your site template.

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

[](#configuration)

### Preview Image size

[](#preview-image-size)

Preview images that are retrieved from Youtube or Vimeo are resized to a max of 500x500 pixel. You can change this size via constants. For example, to resize to 700x600 pixel:

`plugin.tx_skvideo.settings.max_preview_width = 700`

`plugin.tx_skvideo.settings.max_preview_height = 600`

### CSS

[](#css)

The extension comes with a default css file located at Resources/Public/Css/styles.css. If you want to adapt it, you copy it and include your changed version in your site. In this case, you can instruct the extension to not include it's own css file via a constant:

`plugin.tx_skvideo.settings.nocss = 1`

### Texts

[](#texts)

You can adapt the text of the confirmation modal dialog displayed to the user.

#### Using Typoscript in setup section

[](#using-typoscript-in-setup-section)

There are 5 keys that you can adapt:

`message`: This is the text the user is asked to agree before viewing the video. You can use HTML markup in here. You can also use a placeholder VIDEOPROVIDER which will be replaced with YOUTUBE or VIMEO according to the current video.

`rememberme`: The text for the remember my decision checkbox (only if the remember me option is not disabled via constant)

`remembermesession`: The text for the remember my decision checkbox in case the cookie is set be stored only for the current session (only if the remember me option is not disabled via constant)

`cancel`: The text for the cancel button

`continue`: The text for the agree button

To change these texts, use one or more of these keys in your setup section

`plugin.tx_skvideo._LOCAL_LANG.default.message` = New custom text VIDEOPROVIDER for default language

`plugin.tx_skvideo._LOCAL_LANG.en.message` = New custom text custom text for en

`plugin.tx_skvideo._LOCAL_LANG.de.message` = New custom text custom text for de

#### Using constants

[](#using-constants)

You can also change these texts via constants, which makes sense only for single language sites:

`plugin.tx_skvideo.settings.message`: This is the text the user is asked to agree before viewing the video. You can use HTML markup in here.

`plugin.tx_skvideo.settings.rememberme`: The text for the remember my decision checkbox. The number of days to store the cookies must be specified manually

`plugin.tx_skvideo.settings.remembermesession`: The text for the remember my decision checkbox for session only storage

`plugin.tx_skvideo.settings.cancel`: The text for the cancel button

`plugin.tx_skvideo.settings.continue`: The text for the agree button

### Other settings

[](#other-settings)

To disable the "remember my decision" option, set the constant `plugin.tx_skvideo.settings.disablerememberme = 1`

To change the number of days the remember cookie is stored e.g. to 5 days, set `plugin.tx_skvideo.settings.remembermedays = 5`

Default is 30 days. Set it to 0 to remember it only for the current session. Maximum is 180 days.

To add an additional class name to the cancel and/or the continue button, you can use these constants

`plugin.tx_skvideo.settings.cancelbutton_additionalclass = btn`

`plugin.tx_skvideo.settings.continuebutton_additionalclass = btn danger`

### Thumbnail cache lifetime and youtube playlists API key

[](#thumbnail-cache-lifetime-and-youtube-playlists-api-key)

The extension has 2 options to control the lifetime of the preview images and the associated video texts (title etc). Essentially they control how long these should be cached. Currently both values default to 1209600 seconds which is 2 weeks.

Since version 1.1.0, you can also embed youtube playlists. But for playlists you need a valid Google API key for YouTube Data API v3.

You can change these options under Settings, Extension Configuration for skvideo.

### Overriding the template

[](#overriding-the-template)

You can override the provided fluid template. It uses only the Templates folder. For fluid\_styled\_content, create a new folder anywhere you want (e.g. fileadmin/skvideo/Templates) and in there put a file named `Skvideofsc.html`

Then add to your setup section the following

`tt_content.skvideo_ce.partialRootPaths.20 = fileadmin/skvideo/Partials/`

For the content of the `Skvideo.html` file, have a look into the file provided by the extension.

Overriding the template makes not much sense though. The markup, the used classnames and the data-\* attributes have to be in the way they are already used. The only thing that might interest you is the way the preview image is rendered (e.g., in case you want to provide multiple versions of the image via srcset).

In case you just want to override some of the styling (e.g. the play icon or the colors) you should just change the css.

###  Health Score

32

—

LowBetter than 72% of packages

Maintenance36

Infrequent updates — may be unmaintained

Popularity16

Limited adoption so far

Community9

Small or concentrated contributor base

Maturity56

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

Recently: every ~71 days

Total

10

Last Release

580d ago

Major Versions

1.4.4 → 2.0.02023-04-30

1.4.5 → 2.1.12024-03-02

2.1.1 → 3.0.02024-09-21

### Community

Maintainers

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

---

Top Contributors

[![heisenbol](https://avatars.githubusercontent.com/u/3510901?v=4)](https://github.com/heisenbol "heisenbol (112 commits)")

### Embed Badge

![Health badge](/badges/skaras-skvideo/health.svg)

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

###  Alternatives

[lochmueller/staticfilecache

Transparent static file cache solution using mod\_rewrite and mod\_expires. Increase performance for static pages by a factor of 230!!

1311.3M3](/packages/lochmueller-staticfilecache)[eliashaeussler/typo3-warming

Warming - Warms up Frontend caches based on an XML sitemap. Cache warmup can be triggered via TYPO3 backend or using a console command. Supports multiple languages and custom crawler implementations.

20229.9k](/packages/eliashaeussler-typo3-warming)[b13/distributed-locks

Adds a Redis Locking Strategy for TYPO3 frontend page generation, useful on distributed systems with NFS.

13248.2k](/packages/b13-distributed-locks)[bnf/nginx-cache

NGINX Cache Manager for TYPO3

243.7k](/packages/bnf-nginx-cache)

PHPackages © 2026

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