Year of the Tiger update: practical improvements, date-range queries in the contents API, and a customized Plus SEO site
Since the previous release of the APP-focused SEO PLUS cms, we have continued adding practical improvements roughly every two days. This update contains more than ten useful changes. Batch title replacement now supports regex matching, explained below. The list-data API, api2/getcontents, now supports date-range queries alongside other parameters to retrieve any content type in any order. Web resumable uploading now supports batch uploads of matching subtitles and posters. During transcoding, subtitles are burned in and posters become video covers: cover 1 is cropped to configured dimensions; cover 2 has width 600 and adaptive height, with its dimensions stored in the database. I also spent 3 days customizing a beautiful CMS for a client based on PLUS SEO CMS, demonstrating how quickly our open-source code can be adapted to many requirements.
Updates
- Added an automatic subtitle-extraction switch. When transcoding
mkvor other videos with subtitle streams, subtitles are extracted and burned in automatically, preferring detected Chinese subtitles. - Improved fast slicing for videos containing multiple audio, video or subtitle streams. Only the first audio and video streams are selected, improving compatibility with unusual files.
- Batch video-title replacement now supports regular expressions for consistently handling irregular strings in filenames.
- Publishing or deleting videos in administration automatically refreshes the
CMShomepage cache without waiting. - Added confirmation dialogs when deleting videos or series to prevent accidental deletion.
- Added default data when editing videos and series to prevent submission failures.
- The web resumable-upload component now supports batch uploading of matching posters and subtitles for automatic processing during transcoding.
- Added automatic categorization during administration uploads based on filenames, explained below.
- Added support for the
goodpaypayment system. Other systems using Alipay-style signature verification can use this integration with minor modifications. - Upgraded
API2/GETCONTENTSfor retrieving array data of all types, adding date-range queries explained below. - Added announcement management, creation, editing and deletion to administration, plus announcement
APIendpoints already used in the customizedcms. - Added batch category deletion.
- Voucher top-ups are now included in orders for easier order management and user promotion records.
- Imports now support cover 2 processing.
- Detailed administration editing displays covers 2 and 1. Uploading a new poster generates both cover 1 and cover 2. Cover 1 is cropped to configured dimensions; cover 2 is width 600 with adaptive height. Its dimensions are stored for use in different
CMSandAPPcontexts, particularly portrait posters. - Added cover display in administration video management to verify that covers match their videos.
Two updates in detail
First: api2/getcontents
This list API for audio, videos, series, galleries and articles has been enhanced again. A single API retrieves all related list data. Supported parameters now include size, page, category, tag, q, tags, user, type, order, start and end.
size: number of records per request.page: page number to retrieve.category: selected category.tag: a single selected tag.q: search query string.tags: multiple tags separated by an ASCII,. Matching scores are calculated and results sorted by score for intelligent recommendations.user: selected user'sid, returning their published content.type: content types to retrieve. Separate multiple types with an ASCII,. Options aremovie,tv,image,audio,articleandlive, corresponding to videos, series, galleries, audio, articles and live streams.order: sort order:createDescfor newest publication first,createAscfor oldest first,countDescfor highest view count first andcountAscfor lowest first. Combine with other parameters; for example, usestart,endandorder=countDescto retrieve the most-viewed content published within a time range.start: start date in1990-01-01format. Use withendfor a date range; ifendis omitted, results cover the start date through the present.end: end date in2000-01-01format. Must be used withstart; withoutstart,endhas no effect.
This single API can support many applications, especially within the APP.
Second: resumable administration uploads with automatic poster, subtitle and category processing
Resumable uploads now support batches of matching posters and subtitles, and even automatic video categorization.
Example one
Filenames: simple_name.mp4, simple_name.ass, simple_name.jpg.
Upload them together. During transcoding, simple_name.jpg generates cover one cropped to configured dimensions and cover two at width 600 with adaptive height; the latter's dimensions are stored in the database.
During transcoding, simple_name.ass is automatically burned into the output video as subtitles.
Example two
Filenames:
$纪录片.mp4 Another.ass
After resumable upload, the video is automatically assigned to the documentary category and renamed Another.mp4. During transcoding, Another.ass is burned in as subtitles.
Customized CMS showcase
Finally, using PLUS SEO CMS as a starting point, I spent about 3 days building a client's fully prerendered CMS dedicated to SEO. It supports the newly developed announcement API and is shown here to demonstrate how our open-source code can quickly become the application you need.
BeeACG: https://beeacg.net
Features: a carefully designed template, portrait posters throughout, mobile-first layout, fast initial rendering, full-page prerendering, and announcement and gallery support. It is sufficient for an anime-related video website.
Screenshots




