Skip to main content
Advanced Search
Search Terms
Content Type

Exact Matches
Tag Searches
Date Options
Updated after
Updated before
Created after
Created before

Search Results

457 total results found

Implementing a thumbnail generator

Media Transcoding Videos: Serverless Code

Prerequisites Make sure you've read the previous page on implementing video transcoding with serverless code here. You will need the same setup in AWS Lambda to do this, and many of the concepts carry over. Generating thumbnails with ffmpeg The basic comman...

Head HTML

Code Standards: Backend Pre-page loading

Head HTML for every page is loaded in two places: The core HeadHtml.php file, which loads the core libraries and CSS stylesheets needed for all pages, and inserts the CSRF token. Each page's own <head> tag, where page-specific content is loaded. In prod...

Media Submission Flow

Code Standards: Backend Artwork Submissions

Image Submissions When submitting an image, the following steps occur: User image is uploaded via flow.js to the webserver Image is uploaded to private S3 bucket, and upon successful upload, it is resized to 480p with a Lambda function, and this 480p prev...

Internal Credentials

Code Standards: Backend Redis: Cached Items and Rate Limits

Various development credentials are cached in the main cache server. A full list can be found in the Systems Manager -> Parameter Store console.  When acquiring credentials, webservers first check the cache servers, and if the credential is not present there,...

Overview

Media Transcoding Videos: Dedicated Services

Most cloud providers have some form of dedicated transcoding service that is specifically designed for that purpose. AWS has Elemental MediaConvert, which lets you run "jobs" to transcode videos to different sizes, and provides an absolute ton of options. Use...

Implementation: EventBridge & Lambda

Media Transcoding Videos: Dedicated Services

Getting the result of the MediaConvert job Since creating the job command doesn't tell us anything about the result of the job, we need to use AWS EventBridge to notify us about the job results, and we need an AWS Lambda function to receive the notification a...

Configuring SNS

Media Transcoding Videos: Dedicated Services

Moving S3 files after job completion

Infrastructure (AWS) MediaConvert

Beware that, if you use EventBridge to send a notification somewhere after a MediaConvert job completes (to e.g. invoke a Lambda function) - the notification may arrive before the finished files are actually accessible in S3. Attempting to copy the newly-tran...

Using a pre-built CDN image transcoding solution

Media Transcoding Image Transcoding

When transcoding images, you have two options: use a prebuilt solution, or make one. Most CDN providers have services that will automatically resize images for you, to display them to your users, so that you don't have to code anything: you just add a query s...

Using a pre-built video transcoding solution

Media Transcoding Videos: Overview

A lot of cloud providers, particularly CDN providers, offer some form of video streaming service, that takes care of transcoding and serving videos for you. These can seem like easy, convenient solutions - which to be fair, they are - but they have specific ad...

March 14

Development Updates, pre-launch 2024

Hi all, hope you're doing well ^^ updates below! I'm still having a rough time atm, but trying to get stuff done, nonetheless. Gallery SQL fix: now includes reblogs from follows I realised the current stored procedure for retrieving galleries (a huge beast ...

JSON.stringify

Language pitfalls JavaScript

Certain objects (like Maps) can't be stringified directly - you'll get an empty object as the result, as they don't have any properties. Example: let map = new Map(); map.set("key1", "value1"); // '{}' JSON.stringify(map); // '[["key1","value1"]]' JS...

Uploading videos to Bunny Stream

Infrastructure (Non-AWS) Bunny Stream

The Bunny Stream documentation is a little vague, so here are instructions for using the API in PHP. Create Video Before actually uploading a video, you need to create a video using the video_createvideo endpoint. In PHP the code to do so looks like this: $...

Creating and configuring a video library

Infrastructure (Non-AWS) Bunny Stream

To use Bunny Stream, you need to create a video library, and you'll want to configure various parts of it to work nicely. In the Bunny dashboard, go to Stream and create a new library. The API menu for the library you created has the API key you need to progr...

Bunny Stream webhooks

Infrastructure (Non-AWS) Bunny Stream

The Bunny stream webhooks do not have a set list of IPs they originate from, making it hard to utilise in a test environment unless your test environment is open to the internet. There is no specific authentication method; you can use a unique query string or...

hls.js

Third-party libraries Frontend libraries

Homepage https://github.com/video-dev/hls.js What is it? A JavaScript library for enabling HLS video support in browsers. Why did we choose it? HLS (HTTP Live Streaming) videos aren't natively supported by a lot of browsers, but is the most common format ...

Bunny Stream

Third-party service providers Bunny

Homepage https://bunny.net/stream/ What is it? A service for uploading and managing videos to be sent to website users. Why did we choose it? Price and data privacy. Amazon Web Services has various separated services that would enable us to do this, but t...

Server-side loading

Code Standards: Frontend Site Themes Implementation

Text

Client-side loading and updating

Code Standards: Frontend Site Themes Implementation

Text

Lightsail IPv6 addresses

Infrastructure (AWS) Lightsail

While Lightsail supports IPv6, you can't assign static IPv6 addresses. They'll remain the same for a given instance, even if you stop and start it, but if you delete an instance and recreate it for example, you'll have to use a new IPv6 address and change your...