Content Repurpose Content Repurpose

0 likes

nr_repurpose / alpha

Turn a webpage or PDF into a podcast, a diagram, an Instagram story, documents and ready-to-use texts.

This version supports TYPO3

14 LTS

Older versions also support TYPO3

14 LTS


Tags

Get started

Download 0.11.3

Details

Author
Netresearch DTT GmbH
Company
Netresearch DTT GmbH
Last update
08. Oct 2026
First upload
07. Aug 2026
Downloads
520
Category
Backend Modules
Dependencies
  • PHP (>=8.3.0 <=8.99.99)
  • nr_llm (>=0.35.0 <=0.40.99)
  • nr_vault (>=1.1.0 <=1.99.99)
  • backend (>=14.3.0 <=14.99.99)
  • TYPO3 (>=14.3.0 <=14.99.99)
  • extbase (>=14.3.0 <=14.99.99)
  • fluid (>=14.3.0 <=14.99.99)
  • frontend (>=14.3.0 <=14.99.99)

Last upload comment

Changed:

• nr-llm 0.40 is supported. composer.json requires netresearch/nr-llm ^0.35 || ^0.36 || ^0.37 || ^0.38 || ^0.39 || ^0.40, ext_emconf.php declares 0.35.0-0.40.99. On a 0.x version ^0.39 does not admit 0.40.0. nr-llm 0.40 changes no signature of a class this extension calls or implements.

Security:

• composer.json accepts three enshrined/svg-sanitize advisories (GHSA-9rjx-3jch-6vjf, GHSA-m9xh-6747-9r6f, GHSA-v383-3rw5-q8rf) in config.policy.advisories.ignore-id. They are fixed only in 1.0.0, and typo3/cms-core 13.4 and 14.3 require ~0.22; each ignore says to remove it once core allows the fix.

For details see https://github.com/netresearch/t3x-nr-repurpose/releases


Downloads by month

Installation

  1. Download ZIP file
  2. Log into your TYPO3 backend
  3. Go to Extension Manager module
  4. Press the upload button on the top bar
  5. Select the ZIP file and upload it. If you want to overwrite an existing extension installation, activate the checkbox.
  1. Go to your folder where the root composer.json file is located
  2. Type: composer require netresearch/nr-repurpose to get the latest version that runs on your TYPO3 version.
  1. Download T3X file
  2. Log into your TYPO3 backend
  3. Go to Extension Manager module
  4. Press the upload button on the top bar
  5. Select the T3X file and upload it. If you want to overwrite an existing extension installation, activate the checkbox.

Other extensions by this user (20)


Version history

Filter for TYPO3 versions

0.11.3 alpha Latest
October 08, 2026
TYPO3: 14 LTS (>=14.3.0 <=14.99.99)
Changed:

• nr-llm 0.40 is supported. composer.json requires netresearch/nr-llm ^0.35 || ^0.36 || ^0.37 || ^0.38 || ^0.39 || ^0.40, ext_emconf.php declares 0.35.0-0.40.99. On a 0.x version ^0.39 does not admit 0.40.0. nr-llm 0.40 changes no signature of a class this extension calls or implements.

Security:

• composer.json accepts three enshrined/svg-sanitize advisories (GHSA-9rjx-3jch-6vjf, GHSA-m9xh-6747-9r6f, GHSA-v383-3rw5-q8rf) in config.policy.advisories.ignore-id. They are fixed only in 1.0.0, and typo3/cms-core 13.4 and 14.3 require ~0.22; each ignore says to remove it once core allows the fix.

For details see https://github.com/netresearch/t3x-nr-repurpose/releases
Download
0.11.2 alpha
October 08, 2026
TYPO3: 14 LTS (>=14.3.0 <=14.99.99)
Fixed:

• The chat names the menu path of the Repurpose module as the backend shows it. The result of the chat tool start_repurpose_job hard-coded Web > Repurpose, while TYPO3 14 labels the main module "Content", so the chat pointed to a menu entry that does not exist. The result now takes the path from the module registration and translates it into the acting user's backend language, for example "Content > Repurpose" or "Inhalt > Repurpose"; if the module or a label cannot be resolved, it names "Repurpose". The tool description, which the model receives for every user and language, no longer names a menu path. (#175)

For details see https://github.com/netresearch/t3x-nr-repurpose/releases
Download
0.11.1 alpha
October 08, 2026
TYPO3: 14 LTS (>=14.3.0 <=14.99.99)
Fixed:

• The chat tool start_repurpose_job is offered to runs against external providers. nr-llm's trust-zone gate ranked it as secret-adjacent, because it declared no data class and nr-llm has no default for its group nr_repurpose; with tools.dataClassEnforcement = enforce, the shipped setting, a provider without a trust zone (externalGlobal, ceiling editorContent) therefore never got the tool, even with the tool and its group switched on. The tool now declares editorContent: its result is the uid of the job it created, the source URL without query and fragment, and the artifact names (ADR-009). Every call still needs a person's approval. (#172)

For details see https://github.com/netresearch/t3x-nr-repurpose/releases
Download
0.11.0 alpha
October 07, 2026
TYPO3: 14 LTS (>=14.3.0 <=14.99.99)
Upgrade notes:

• Installations need no change. Code that subclasses a generator or DocumentAnalyzer, or calls ConfiguredCompletionService directly, has to follow the interface change described under Changed.

Changed:

• nr-llm 0.39 is supported, next to 0.38 (breaking for code that subclasses a generator or DocumentAnalyzer, or calls ConfiguredCompletionService directly). nr-llm 0.39 returns a StructuredCompletionResponse from completeStructured() instead of the decoded array (nr-llm ADR-211). Under 0.39, 0.10.0 stops at class load: ConfiguredCompletionService implemented nr-llm's CompletionServiceInterface with the 0.38 return types, and no class can declare that method for both versions. The extension now has its own TextCompletionInterface (completeJson(), completeStructured(), completeMarkdown()), which ConfiguredCompletionService implements while calling nr-llm's interface; it returns the decoded answer of a structured completion on both versions. The generators and DocumentAnalyzer take TextCompletionInterface in their constructors instead of nr-llm's interface, and ConfiguredCompletionService drops the nine methods only nr-llm's interface required. Code that subclasses a generator or DocumentAnalyzer and passes nr-llm's completion service to its constructor has to pass a TextCompletionInterface instead; code that calls complete(), completeFactual(), completeCreative() or a *ForConfiguration() method on ConfiguredCompletionService has to call nr-llm's CompletionServiceInterface instead. The composer constraint is ^0.35 || ^0.36 || ^0.37 || ^0.38 || ^0.39; ext_emconf.php allows 0.35.0-0.39.99.
• TER, TYPO3 and docs.typo3.org show one title, "Content Repurpose", and one description. The ext_emconf.php title, the composer.json description, the manual's title and the guides.xml project title

For details see https://github.com/netresearch/t3x-nr-repurpose/releases
Download
0.10.0 alpha
October 07, 2026
TYPO3: 14 LTS (>=14.3.0 <=14.99.99)
Upgrade notes:

• Installations that sign their social posts move the signing secret to nr-vault. 0.10.0 no longer reads the extension setting socialWebhookSecret; while it still holds a value, no post is sent and every due post fails. Before updating: 1. store the secret in nr-vault through its backend module; on the command line vault:store works only with --as-provisioner and nr-vault's provisioningBeUserUid set, or with nr-vault's CLI access switched on; 2. make sure nr_repurpose:publish-due can read it: with technicalBeUserUid set, it reads as that backend user, who needs read access to the secret (administrator, owner, or a group the secret is shared with); with technicalBeUserUid at 0, it reads as TYPO3's command-line backend user, an administrator, when scheduler:run starts it, and needs nr-vault's CLI access when started directly from cron. After updating: 3. enter the identifier in the new extension setting socialWebhookSecretIdentifier; 4. clear socialWebhookSecret. Posts that fall due between the update and step 4 fail instead of being sent unsigned. Installations without a webhook secret need no change.
• The social webhook URL must point to a host on the public internet. A socialWebhookUrl whose host resolves to a private, loopback or other non-public address is now refused, and the post fails.
• 0.10.0 contains the fixes of 0.9.1.

Security:

• The social webhook is sent only to a host on the public internet. The socialWebhookUrl passes the same address check as a source URL, the request connects to the checked addresses, follows no redirect and has 15 seconds to complete. A refused URL fails the post with Webhook URL refused: only http and https to a host on the public internet are allowed; a post that cannot be encoded as JSON fails with a fixed message instead of staying in the publishing state.
• **The S

For details see https://github.com/netresearch/t3x-nr-repurpose/releases
Download
0.9.2 alpha
October 07, 2026
TYPO3: 14 LTS (>=14.3.0 <=14.99.99)
0.9.2 contains the same code as 0.9.1 and publishes its fixes to TER, where 0.9.1 could not be uploaded.

Security:

• A remote source is fetched from the addresses its host was checked with. The worker resolves the host of a url or pdf_url source once, checks every address, and the transfer then connects to exactly those addresses; the request keeps the host name, so the Host header, TLS SNI and certificate verification are unchanged. With an HTTP proxy configured in TYPO3, the proxy resolves the name instead. Fetching needs the PHP extension curl, which composer.json requires.
• The module shows a user the jobs they created. Administrators and users whose backend group grants Approve artifacts still see every job; any other user sees only the jobs they created, and opening the result view of another user's job returns to the list with an error message. Jobs that were created without a backend user are visible to administrators and reviewers only.
• A PDF source and the analysis have an upper bound. A PDF with more pages than the extension setting maxPdfPages (default 200) fails right after parsing, before any page's text is read. The analysis fails before its first completion call when the source text splits into more than 100 sections of about 12,000 characters. Both failures name the limit in the job's error.

For details see https://github.com/netresearch/t3x-nr-repurpose/releases
Download
0.9.0 alpha
September 30, 2026
TYPO3: 14 LTS (>=14.3.0 <=14.99.99)
Added:

• LICENSE with the GPL-2.0 text. composer.json and ext_emconf.php declare GPL-2.0-or-later; the repository did not ship the licence text.
• A developer chapter and a troubleshooting page in the documentation: running the test suites, adding a generator, swapping the image or speech adapter; and the error messages a job or artifact shows when the worker, nr-vault, Chromium, ffmpeg, poppler, a permission or the budget stops it.
• The README explains how to verify a release: gh attestation verify with --signer-repo netresearch/typo3-ci-workflows, because the shared release workflow signs the build provenance.
• ADR-008 records the capability-permission gate that 0.5.2 introduced: generate_audio and generate_vision are checked for the job's creator, once per run, before the budget.
• The usage chapter shows the backend module. Six screenshots in Documentation/Images/Usage/: the job list with its pager, the New job form, the top of a result view, the story strip, social posts in the approval step, and the social planning view.

Changed:

• nr-vault 1.1 or later is required (^1.1, was ^0.16). nr-llm accepts it from 0.38.2, so an installation resolves nr-llm 0.38.2 or later. nr-vault 1.x refuses a provider host that DNS does not resolve, so a host reached through /etc/hosts or a container runtime's resolver needs a literal entry in $GLOBALS['TYPO3_CONF_VARS']['HTTP']['allowed_hosts'].
• The Netresearch-theme Schaubild, story slides, slide deck and handout carry the [n] logo and a linked company footer. The four Nr.html output templates had the brand colours and fonts but no logo, and only the Schaubild linked to netresearch.de. Each now shows the symbol-only [n] logo in its header — once per Schaubild, story slide and handout, once per slide of the deck, since each slide is its own PDF page — and names "

For details see https://github.com/netresearch/t3x-nr-repurpose/releases
Download
0.8.2 alpha
September 27, 2026
TYPO3: 14 LTS (>=14.3.0 <=14.99.99)
Fixed:

• The "Create & queue" button gives its feedback again. Its script sat inline in the new-job template, and the TYPO3 backend Content Security Policy refuses an inline <script> without a nonce, so the browser never ran it: the button was never disabled and never showed the spinner, and a double click could queue the same job twice. The script is now the ES module Resources/Public/JavaScript/job-new.js, registered under the import-map prefix @netresearch/nr-repurpose/ (Configuration/JavaScriptModules.php) and loaded by the new-job action only.
• An alt-text generator no longer fails every PNG artifact with "Invalid base64 image_url." (#78). JobFileStorage created each file empty and wrote the bytes afterwards, but FAL indexes the file when it is created and dispatches AfterFileMetaDataCreatedEvent then. A listener of that event which reads the file — an extension generating alt text on upload, here through nr-llm's vision service — got 0 bytes and sent data:image/jpeg;base64, with nothing after it, which OpenAI rejects. The exception left the slide, the Schaubild renders and the KI image failed, and a 0-byte file behind in fileadmin/repurpose/. Files are now written with ResourceStorage::addFile() from a temporary file, so the bytes are in place when FAL indexes them. A file whose indexing fails is removed again, empty content is refused with the file name in the message instead of being stored, and the PDF vision OCR refuses an empty page image before the vision call. Stored files now pass the same extension and MIME-type check as an upload; ext_localconf.php adds vtt to textfile_ext for the podcast subtitles, because a fresh TYPO3 14 installation enforces that list and does not contain it.

For details see https://github.com/netresearch/t3x-nr-repurpose/releases
Download
0.4.0 alpha
August 07, 2026
TYPO3: 14 LTS (>=14.3.0 <=14.99.99)
Changed:

• Require netresearch/nr-llm ^0.26.0 (was ^0.25).

Removed:

• The public alias for nr-llm's CapabilityPermissionServiceInterface. nr-llm 0.26 removed that service and its interface outright — ADR-117 withdrew the backend capability permissions rather than deferring them again — so the alias, which existed only to expose them "once capability gating is added", now fails the container compile. Nothing in this extension consumed it.

For details see https://github.com/netresearch/t3x-nr-repurpose/releases
Download

Get started

Download 0.11.3

Details

Author
Netresearch DTT GmbH
Company
Netresearch DTT GmbH
Last update
08. Oct 2026
First upload
07. Aug 2026
Downloads
520
Category
Backend Modules
Dependencies
  • PHP (>=8.3.0 <=8.99.99)
  • nr_llm (>=0.35.0 <=0.40.99)
  • nr_vault (>=1.1.0 <=1.99.99)
  • backend (>=14.3.0 <=14.99.99)
  • TYPO3 (>=14.3.0 <=14.99.99)
  • extbase (>=14.3.0 <=14.99.99)
  • fluid (>=14.3.0 <=14.99.99)
  • frontend (>=14.3.0 <=14.99.99)