diff --git a/docs/src/ar/getting-started/docker.md b/docs/src/ar/getting-started/docker.md
index 19ce1070a657b7bb7a765121dbf1591a3ab6bd7f..75158bd612eff7da515d5c9cf9c6754b89f77442 100644
--- a/docs/src/ar/getting-started/docker.md
+++ b/docs/src/ar/getting-started/docker.md
@@ -14,8 +14,6 @@ process:
   with all of Castopod dependencies
 - [**`castopod/web-server`**](https://hub.docker.com/r/castopod/web-server): an
   Nginx configuration for Castopod
-- [**`castopod/video-clipper`**](https://hub.docker.com/r/castopod/video-clipper):
-  an optional image building videoclips thanks to ffmpeg
 
 Additionally, Castopod requires a MySQL-compatible database. A Redis database
 can be added as a cache handler.
@@ -24,7 +22,6 @@ can be added as a cache handler.
 
 - `develop` [unstable], latest development branch build
 - `beta` [stable], latest beta version build
-- `1.0.0-beta.x` [stable], specific beta version build (since `1.0.0-beta.22`)
 - `latest` [stable], latest version build
 - `1.x.x` [stable], specific version build (since `1.0.0`)
 
@@ -39,7 +36,7 @@ can be added as a cache handler.
 
     services:
       app:
-        image: castopod/app:latest
+        image: castopod/castopod:latest
         container_name: "castopod-app"
         volumes:
           - castopod-media:/var/www/castopod/public/media
@@ -112,16 +109,6 @@ can be added as a cache handler.
 
 ## Environment Variables
 
-- **castopod/video-clipper**
-
-  | Variable name              | Type (`default`) | Default          |
-  | -------------------------- | ---------------- | ---------------- |
-  | **`CP_DATABASE_HOSTNAME`** | ?string          | `"mariadb"`      |
-  | **`CP_DATABASE_NAME`**     | ?string          | `MYSQL_DATABASE` |
-  | **`CP_DATABASE_USERNAME`** | ?string          | `MYSQL_USER`     |
-  | **`CP_DATABASE_PASSWORD`** | ?string          | `MYSQL_PASSWORD` |
-  | **`CP_DATABASE_PREFIX`**   | ?string          | `"cp_"`          |
-
 - **castopod/castopod** and **castopod/app**
 
   | Variable name                         | Type (`default`)        | Default          |
diff --git a/docs/src/ar/getting-started/install.md b/docs/src/ar/getting-started/install.md
index 03549bcc7f4cba887d1fdbe1a1ee5f1443b2dbcf..af405daf99f2e38483de298e0551dd20b46495fc 100644
--- a/docs/src/ar/getting-started/install.md
+++ b/docs/src/ar/getting-started/install.md
@@ -19,15 +19,15 @@ If you prefer using Docker, you may skip this and go straight to the
 
 ## Requirements
 
-- PHP v8.1 or higher
+- PHP v8.1 only
 - MySQL version 5.7 or higher or MariaDB version 10.2 or higher
 - HTTPS support
 - An [ntp-synced clock](https://wiki.debian.org/NTP) to validate federation's
   incoming requests
 
-### PHP v8.1 or higher
+### PHP v8.1 only
 
-PHP version 8.1 or higher is required, with the following extensions installed:
+PHP version 8.1 is required, with the following extensions installed:
 
 - [intl](https://php.net/manual/en/intl.requirements.php)
 - [libcurl](https://php.net/manual/en/curl.requirements.php)
@@ -94,29 +94,19 @@ want to generate Video Clips. The following extensions must be installed:
 4. Add **cron tasks** on your web server for various background processes
    (replace the paths accordingly):
 
-   - For social features to work properly, this task is used to broadcast social
-     activities to your followers on the fediverse:
-
-   ```bash
-      * * * * * /path/to/php /path/to/castopod/public/index.php scheduled-activities
-   ```
-
-   - For having your episodes be broadcasted on open hubs upon publication using
-     [WebSub](https://en.wikipedia.org/wiki/WebSub):
-
    ```bash
-      * * * * * /usr/local/bin/php /castopod/public/index.php scheduled-websub-publish
+      * * * * * /path/to/php /path/to/castopod/spark tasks:run >> /dev/null 2>&1
    ```
 
-   - For Video Clips to be created (see
-     [FFmpeg requirements](#ffmpeg-v418-or-higher-for-video-clips)):
-
-   ```bash
-      * * * * * /path/to/php /path/to/castopod/public/index.php scheduled-video-clips
-   ```
+   **Note** - If you do not add this cron task, the following Castopod features
+   will not work:
 
-   > These tasks run **every minute**. You may set the frequency depending on
-   > your needs: every 5, 10 minutes or more.
+   - Importing a podcast from an existing RSS feed
+   - Broadcasting social activities to your followers in the fediverse
+   - Broadcasting episodes to open hubs using
+     [WebSub](https://en.wikipedia.org/wiki/WebSub)
+   - Generating video clips -
+     [requires FFmpeg](#optional-ffmpeg-v418-or-higher-for-video-clips)
 
 ### (recommended) Install Wizard
 
diff --git a/docs/src/br/getting-started/docker.md b/docs/src/br/getting-started/docker.md
index 19ce1070a657b7bb7a765121dbf1591a3ab6bd7f..75158bd612eff7da515d5c9cf9c6754b89f77442 100644
--- a/docs/src/br/getting-started/docker.md
+++ b/docs/src/br/getting-started/docker.md
@@ -14,8 +14,6 @@ process:
   with all of Castopod dependencies
 - [**`castopod/web-server`**](https://hub.docker.com/r/castopod/web-server): an
   Nginx configuration for Castopod
-- [**`castopod/video-clipper`**](https://hub.docker.com/r/castopod/video-clipper):
-  an optional image building videoclips thanks to ffmpeg
 
 Additionally, Castopod requires a MySQL-compatible database. A Redis database
 can be added as a cache handler.
@@ -24,7 +22,6 @@ can be added as a cache handler.
 
 - `develop` [unstable], latest development branch build
 - `beta` [stable], latest beta version build
-- `1.0.0-beta.x` [stable], specific beta version build (since `1.0.0-beta.22`)
 - `latest` [stable], latest version build
 - `1.x.x` [stable], specific version build (since `1.0.0`)
 
@@ -39,7 +36,7 @@ can be added as a cache handler.
 
     services:
       app:
-        image: castopod/app:latest
+        image: castopod/castopod:latest
         container_name: "castopod-app"
         volumes:
           - castopod-media:/var/www/castopod/public/media
@@ -112,16 +109,6 @@ can be added as a cache handler.
 
 ## Environment Variables
 
-- **castopod/video-clipper**
-
-  | Variable name              | Type (`default`) | Default          |
-  | -------------------------- | ---------------- | ---------------- |
-  | **`CP_DATABASE_HOSTNAME`** | ?string          | `"mariadb"`      |
-  | **`CP_DATABASE_NAME`**     | ?string          | `MYSQL_DATABASE` |
-  | **`CP_DATABASE_USERNAME`** | ?string          | `MYSQL_USER`     |
-  | **`CP_DATABASE_PASSWORD`** | ?string          | `MYSQL_PASSWORD` |
-  | **`CP_DATABASE_PREFIX`**   | ?string          | `"cp_"`          |
-
 - **castopod/castopod** and **castopod/app**
 
   | Variable name                         | Type (`default`)        | Default          |
diff --git a/docs/src/br/getting-started/install.md b/docs/src/br/getting-started/install.md
index 62bd340c53091493bf79ece3e315496cd685ca8a..3826a9a7b8b5c0d377c8d2d4ccd8b97a4d79a203 100644
--- a/docs/src/br/getting-started/install.md
+++ b/docs/src/br/getting-started/install.md
@@ -19,15 +19,15 @@ If you prefer using Docker, you may skip this and go straight to the
 
 ## Requirements
 
-- PHP v8.1 or higher
+- PHP v8.1 only
 - MySQL version 5.7 or higher or MariaDB version 10.2 or higher
 - HTTPS support
 - An [ntp-synced clock](https://wiki.debian.org/NTP) to validate federation's
   incoming requests
 
-### PHP v8.1 or higher
+### PHP v8.1 only
 
-PHP version 8.1 or higher is required, with the following extensions installed:
+PHP version 8.1 is required, with the following extensions installed:
 
 - [intl](https://php.net/manual/en/intl.requirements.php)
 - [libcurl](https://php.net/manual/en/curl.requirements.php)
@@ -94,29 +94,19 @@ want to generate Video Clips. The following extensions must be installed:
 4. Add **cron tasks** on your web server for various background processes
    (replace the paths accordingly):
 
-   - For social features to work properly, this task is used to broadcast social
-     activities to your followers on the fediverse:
-
-   ```bash
-      * * * * * /path/to/php /path/to/castopod/public/index.php scheduled-activities
-   ```
-
-   - For having your episodes be broadcasted on open hubs upon publication using
-     [WebSub](https://en.wikipedia.org/wiki/WebSub):
-
    ```bash
-      * * * * * /usr/local/bin/php /castopod/public/index.php scheduled-websub-publish
+      * * * * * /path/to/php /path/to/castopod/spark tasks:run >> /dev/null 2>&1
    ```
 
-   - For Video Clips to be created (see
-     [FFmpeg requirements](#ffmpeg-v418-or-higher-for-video-clips)):
-
-   ```bash
-      * * * * * /path/to/php /path/to/castopod/public/index.php scheduled-video-clips
-   ```
+   **Note** - If you do not add this cron task, the following Castopod features
+   will not work:
 
-   > These tasks run **every minute**. You may set the frequency depending on
-   > your needs: every 5, 10 minutes or more.
+   - Importing a podcast from an existing RSS feed
+   - Broadcasting social activities to your followers in the fediverse
+   - Broadcasting episodes to open hubs using
+     [WebSub](https://en.wikipedia.org/wiki/WebSub)
+   - Generating video clips -
+     [requires FFmpeg](#optional-ffmpeg-v418-or-higher-for-video-clips)
 
 ### (recommended) Install Wizard
 
diff --git a/docs/src/ca/getting-started/auth.md b/docs/src/ca/getting-started/auth.md
index 100b332c1b67b77f5f6c8a6c5ae2050a88dc5065..ff5d59c0676113f4f1c0a2abd2b272f0686b4185 100644
--- a/docs/src/ca/getting-started/auth.md
+++ b/docs/src/ca/getting-started/auth.md
@@ -17,11 +17,11 @@ coupled with custom rules. Roles and permissions are defined at two levels:
 
 <!-- AUTH-INSTANCE-ROLES-LIST:START - Do not remove or modify this section -->
 
-| role                | description                          | permissions                                                                                |
-| ------------------- | ------------------------------------ | ------------------------------------------------------------------------------------------ |
-| Super administrador | Té control complet sobre Castopod.   | admin.\*, podcasts.\*, users.manage, persons.manage, pages.manage, fediverse.manage-blocks |
-| Administrador       | Administra el contingut de Castopod. | podcasts.create, podcasts.import, persons.manage, pages.manage                             |
-| Podcaster           | Usos generals de Castopod.           | admin.access                                                                               |
+| role        | description                         | permissions                                                                                |
+| ----------- | ----------------------------------- | ------------------------------------------------------------------------------------------ |
+| Super admin | Has complete control over Castopod. | admin.\*, podcasts.\*, users.manage, persons.manage, pages.manage, fediverse.manage-blocks |
+| Manager     | Manages Castopod's content.         | podcasts.create, podcasts.import, persons.manage, pages.manage                             |
+| Podcaster   | General users of Castopod.          | admin.access                                                                               |
 
 <!-- AUTH-INSTANCE-ROLES-LIST:END -->
 
@@ -29,17 +29,17 @@ coupled with custom rules. Roles and permissions are defined at two levels:
 
 <!-- AUTH-INSTANCE-PERMISSIONS-LIST:START - Do not remove or modify this section -->
 
-| permission              | description                                                          |
-| ----------------------- | -------------------------------------------------------------------- |
-| admin.access            | Pot accedir a l'àrea d'administració de Castopod.                    |
-| admin.settings          | Pot accedir a la configuració de Castopod.                           |
-| users.manage            | Pot administrar els usuaris de Castopod.                             |
-| persons.manage          | Pot administrar persones.                                            |
-| pages.manage            | Pot administrar pàgines.                                             |
-| podcasts.view           | Pot veure els pòdcasts.                                              |
-| podcasts.create         | Pot crear nous pòdcasts.                                             |
-| podcasts.import         | Pot importar pòdcasts.                                               |
-| fediverse.manage-blocks | Pot evitar que actors/dominis del fedivers interactuen amb Castopod. |
+| permission              | description                                                        |
+| ----------------------- | ------------------------------------------------------------------ |
+| admin.access            | Can access the Castopod admin area.                                |
+| admin.settings          | Can access the Castopod settings.                                  |
+| users.manage            | Can manage Castopod users.                                         |
+| persons.manage          | Can manage persons.                                                |
+| pages.manage            | Can manage pages.                                                  |
+| podcasts.view           | Can view all podcasts.                                             |
+| podcasts.create         | Can create new podcasts.                                           |
+| podcasts.import         | Can import podcasts.                                               |
+| fediverse.manage-blocks | Can block fediverse actors/domains from interacting with Castopod. |
 
 <!-- AUTH-INSTANCE-PERMISSIONS-LIST:END -->
 
@@ -49,12 +49,12 @@ coupled with custom rules. Roles and permissions are defined at two levels:
 
 <!-- AUTH-PODCAST-ROLES-LIST:START - Do not remove or modify this section -->
 
-| role          | description                                                        | permissions                                                                                                                                                                                                                                                                                 |
-| ------------- | ------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
-| Administrador | Té control complet del pòdcast #{id}.                              | \*                                                                                                                                                                                                                                                                                          |
-| Editor        | Administra els continguts i la publicació del pòdcast #{id}.       | view, edit, manage-import, manage-persons, manage-platforms, manage-publications, manage-notifications, interact-as, episodes.view, episodes.create, episodes.edit, episodes.delete, episodes.manage-persons, episodes.manage-clips, episodes.manage-publications, episodes.manage-comments |
-| Autor         | Administra el contingut del podcast #{id} però no el pot publicar. | view, manage-persons, episodes.view, episodes.create, episodes.edit, episodes.manage-persons, episodes.manage-clips                                                                                                                                                                         |
-| Convidat      | Col·laborador general del podcast #{id}.                           | view, episodes.view                                                                                                                                                                                                                                                                         |
+| role   | description                                               | permissions                                                                                                                                                                                                                                                                                 |
+| ------ | --------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| Admin  | Has complete control of podcast #{id}.                    | \*                                                                                                                                                                                                                                                                                          |
+| Editor | Manages content and publications of podcast #{id}.        | view, edit, manage-import, manage-persons, manage-platforms, manage-publications, manage-notifications, interact-as, episodes.view, episodes.create, episodes.edit, episodes.delete, episodes.manage-persons, episodes.manage-clips, episodes.manage-publications, episodes.manage-comments |
+| Author | Manages content of podcast #{id} but cannot publish them. | view, manage-persons, episodes.view, episodes.create, episodes.edit, episodes.manage-persons, episodes.manage-clips                                                                                                                                                                         |
+| Guest  | General contributor of the podcast #{id}.                 | view, episodes.view                                                                                                                                                                                                                                                                         |
 
 <!-- AUTH-PODCAST-ROLES-LIST:END -->
 
@@ -62,26 +62,26 @@ coupled with custom rules. Roles and permissions are defined at two levels:
 
 <!-- AUTH-PODCAST-PERMISSIONS-LIST:START - Do not remove or modify this section -->
 
-| permission                   | description                                                                                                          |
-| ---------------------------- | -------------------------------------------------------------------------------------------------------------------- |
-| view                         | Pot veure el tauler i les estadístiques del podcast #{id}.                                                           |
-| edit                         | Pot editar el podcast #{id}.                                                                                         |
-| delete                       | Pot suprimir el podcast #{id}.                                                                                       |
-| manage-import                | Pot sincronitzar el podcast importat #{id}.                                                                          |
-| manage-persons               | Pot gestionar les subscripcions del podcast #{id}.                                                                   |
-| manage-subscriptions         | Pot gestionar les subscripcions del podcast #{id}.                                                                   |
-| manage-contributors          | Pot gestionar els col·laboradors del podcast #{id}.                                                                  |
-| manage-platforms             | Pot establir/eliminar enllaços de plataforma del podcast #{id}.                                                      |
-| manage-publications          | Pot publicar el podcast #{id}.                                                                                       |
-| manage-notifications         | Pot veure i marcar les notificacions com a llegides per al podcast #{id}.                                            |
-| interact-as                  | Pot interactuar en nom del podcast #{id} per marcar les publicacions com a preferides, compartir-les o respondre-hi. |
-| episodes.view                | Pot veure el tauler i les estadístiques del podcast #{id}.                                                           |
-| episodes.create              | Pot crear episodis per al podcast #{id}.                                                                             |
-| episodes.edit                | Pot editar el podcast #{id}.                                                                                         |
-| episodes.delete              | Pot suprimir el podcast #{id}.                                                                                       |
-| episodes.manage-persons      | Pot gestionar les subscripcions del podcast #{id}.                                                                   |
-| episodes.manage-clips        | Pot gestionar clips de vídeo o fragments de so del pòdcast #{id}.                                                    |
-| episodes.manage-publications | Pot publicar el podcast #{id}.                                                                                       |
-| episodes.manage-comments     | Pot crear/eliminar comentaris d'episodi del pòdcast #{id}.                                                           |
+| permission                   | description                                                              |
+| ---------------------------- | ------------------------------------------------------------------------ |
+| view                         | Can view dashboard and analytics of podcast #{id}.                       |
+| edit                         | Can edit podcast #{id}.                                                  |
+| delete                       | Can delete podcast #{id}.                                                |
+| manage-import                | Can synchronize imported podcast #{id}.                                  |
+| manage-persons               | Can manage subscriptions of podcast #{id}.                               |
+| manage-subscriptions         | Can manage subscriptions of podcast #{id}.                               |
+| manage-contributors          | Can manage contributors of podcast #{id}.                                |
+| manage-platforms             | Can set/remove platform links of podcast #{id}.                          |
+| manage-publications          | Can publish podcast #{id}.                                               |
+| manage-notifications         | Can view and mark notifications as read for podcast #{id}.               |
+| interact-as                  | Can interact as the podcast #{id} to favourite, share or reply to posts. |
+| episodes.view                | Can view dashboard and analytics of podcast #{id}.                       |
+| episodes.create              | Can create episodes for podcast #{id}.                                   |
+| episodes.edit                | Can edit podcast #{id}.                                                  |
+| episodes.delete              | Can delete podcast #{id}.                                                |
+| episodes.manage-persons      | Can manage subscriptions of podcast #{id}.                               |
+| episodes.manage-clips        | Can manage video clips or soundbites of podcast #{id}.                   |
+| episodes.manage-publications | Can publish podcast #{id}.                                               |
+| episodes.manage-comments     | Can create/remove episode comments of podcast #{id}.                     |
 
 <!-- AUTH-PODCAST-PERMISSIONS-LIST:END -->
diff --git a/docs/src/ca/getting-started/docker.md b/docs/src/ca/getting-started/docker.md
index 3919a2ad148e515568cfbd02a7be25936e637c32..d8a6e91b7ec6e938e8b5ab155e044750c4ba6d95 100644
--- a/docs/src/ca/getting-started/docker.md
+++ b/docs/src/ca/getting-started/docker.md
@@ -10,12 +10,10 @@ process:
 
 - [**`castopod/castopod`**](https://hub.docker.com/r/castopod/castopod): an all
   in one castopod image using nginx unit
-- [** code>castopod/app</code>**](https://hub.docker.com/r/castopod/app): el
-  paquet incloent Castopod i totes les dependències
+- [**`castopod/app`**](https://hub.docker.com/r/castopod/app): el paquet
+  incloent Castopod i totes les dependències
 - [**`castopod/web-server`**](https://hub.docker.com/r/castopod/web-server): una
   configuració de Nginx per a Castopod
-- [**`castopod/video-clipper`**](https://hub.docker.com/r/castopod/video-clipper):
-  an optional image building videoclips thanks to ffmpeg
 
 A més, Castopod requereix una base de dades compatible amb MySQL. Es pot afegir
 una base de dades Redis com a gestor de memòria cau.
@@ -24,7 +22,6 @@ una base de dades Redis com a gestor de memòria cau.
 
 - `develop` [no-estable], darrera versió de la branca de desenvolupament
 - `beta` [stable], latest beta version build
-- `1.0.0-beta.x` [stable], specific beta version build (since `1.0.0-beta.22`)
 - `latest` [stable], latest version build
 - `1.x.x` [stable], specific version build (since `1.0.0`)
 
@@ -39,7 +36,7 @@ una base de dades Redis com a gestor de memòria cau.
 
     services:
       app:
-        image: castopod/app:latest
+        image: castopod/castopod:latest
         container_name: "castopod-app"
         volumes:
           - castopod-media:/var/www/castopod/public/media
@@ -114,19 +111,9 @@ una base de dades Redis com a gestor de memòria cau.
 
 ## Variables d'entorn
 
-- **castopod/video-clipper**
-
-  | Nom de la variable         | Tipus (`default`) | Default          |
-  | -------------------------- | ----------------- | ---------------- |
-  | **`CP_DATABASE_HOSTNAME`** | ?string           | `"mariadb"`      |
-  | **`CP_DATABASE_NAME`**     | ?string           | `MYSQL_DATABASE` |
-  | **`CP_DATABASE_USERNAME`** | ?string           | `MYSQL_USER`     |
-  | **`CP_DATABASE_PASSWORD`** | ?string           | `MYSQL_PASSWORD` |
-  | **`CP_DATABASE_PREFIX`**   | ?string           | `"cp_"`          |
-
 - **castopod/castopod** and **castopod/app**
 
-  | Nom de la variable                    | Type (`default`)        | Default          |
+  | Nom de la variable                    | Tipus (`default`)       | Default          |
   | ------------------------------------- | ----------------------- | ---------------- |
   | **`CP_BASEURL`**                      | string                  | `undefined`      |
   | **`CP_MEDIA_BASEURL`**                | ?string                 | `CP_BASEURL`     |
@@ -166,7 +153,7 @@ una base de dades Redis com a gestor de memòria cau.
 
 - **castopod/web-server**
 
-  | Variable name          | Type                  | Default |
+  | Nom de la variable     | Type                  | Default |
   | ---------------------- | --------------------- | ------- |
   | **`CP_APP_HOSTNAME`**  | ?string               | `"app"` |
   | **`CP_MAX_BODY_SIZE`** | ?number (with suffix) | `512M`  |
diff --git a/docs/src/ca/getting-started/install.md b/docs/src/ca/getting-started/install.md
index 60d4b1fe6831f2e4b1a7d081bdfac7887d938711..217ebd85a4ecca65589e006675c218e01c5d552b 100644
--- a/docs/src/ca/getting-started/install.md
+++ b/docs/src/ca/getting-started/install.md
@@ -20,16 +20,15 @@ Si preferiu utilitzar Docker, podeu ometre això i anar directament a la
 
 ## Requisits
 
-- PHP v8.1 o superior
+- PHP v8.1 only
 - MySQL versió 5.7 o superior o MariaDB versió 10.2 o superior
 - Support d'HTTPS
 - An [ntp-synced clock](https://wiki.debian.org/NTP) to validate federation's
   incoming requests
 
-### PHP v8.1 o superior
+### PHP v8.1 only
 
-Es requereix PHP versió 8.1 o superior, amb les extensions següents
-instal·lades:
+PHP version 8.1 is required, with the following extensions installed:
 
 - [intl](https://php.net/manual/en/intl.requirements.php)
 - [libcurl](https://php.net/manual/en/curl.requirements.php)
@@ -94,33 +93,22 @@ o superior. Cal instal·lar les següents extensions:
    servidor web si encara no ho heu fet.
    - ⚠️ Establiu l'arrel del document del servidor web a la subcarpeta
      `castopod/public/`.
-4. Afegiu **tasques cron** al vostre servidor web per a diversos processos en
-   segon pla (substituïu les rutes d'acord a la vostra configuració de fitxers):
-
-   - Perquè les funcions socials funcionin correctament, aquesta tasca
-     s'utilitza per transmetre activitats socials als vostres seguidors al
-     Fediverse:
-
-   ```bash
-      * * * * * /ruta/al/php /ruta/al/castopod/public/index.php scheduled-activities
-   ```
-
-   - Per transmetre els vostres episodis en hubs oberts després de la publicació
-     mitjançant [WebSub](https://en.wikipedia.org/wiki/WebSub):
+4. Add **cron tasks** on your web server for various background processes
+   (replace the paths accordingly):
 
    ```bash
-      * * * * * /ruta/al/php /rutal/al/castopod/public/index.php scheduled-websub-publish
+      * * * * * /path/to/php /path/to/castopod/spark tasks:run >> /dev/null 2>&1
    ```
 
-   - Per crear clips de vídeo (consulteu
-     [requisits de FFmpeg](#ffmpeg-v418-or-higher-for-video-clips)):
-
-   ```bash
-      * * * * * /ruta/al/php /ruta/al/castopod/public/index.php scheduled-video-clips
-   ```
+   **Note** - If you do not add this cron task, the following Castopod features
+   will not work:
 
-   > Aquestes tasques s'executen **cada minut**. Podeu configurar la freqüència
-   > segons les vostres necessitats: cada 5, 10 minuts o més.
+   - Importing a podcast from an existing RSS feed
+   - Broadcasting social activities to your followers in the fediverse
+   - Broadcasting episodes to open hubs using
+     [WebSub](https://en.wikipedia.org/wiki/WebSub)
+   - Generating video clips -
+     [requires FFmpeg](#optional-ffmpeg-v418-or-higher-for-video-clips)
 
 ### (recomanat) Assistent d'instal·lació
 
diff --git a/docs/src/ca/index.md b/docs/src/ca/index.md
index 0e4902dc024c43c3e8e1e5545427b3d0e71e4030..ba5dccf5db38022ced3102c4a0194af2f31e5910 100644
--- a/docs/src/ca/index.md
+++ b/docs/src/ca/index.md
@@ -135,7 +135,7 @@ great and [a lot of them](https://podcastindex.org/apps) are jumping into the
 Podcasting 2.0 wagon just like Castopod!
 
 Each of these solutions differ from one another, you may compare with the
-[list of features](#característiques).
+[list of features](#features).
 
 That being said, there are two main differences with other podcasting solutions:
 
diff --git a/docs/src/da/getting-started/docker.md b/docs/src/da/getting-started/docker.md
index 19ce1070a657b7bb7a765121dbf1591a3ab6bd7f..75158bd612eff7da515d5c9cf9c6754b89f77442 100644
--- a/docs/src/da/getting-started/docker.md
+++ b/docs/src/da/getting-started/docker.md
@@ -14,8 +14,6 @@ process:
   with all of Castopod dependencies
 - [**`castopod/web-server`**](https://hub.docker.com/r/castopod/web-server): an
   Nginx configuration for Castopod
-- [**`castopod/video-clipper`**](https://hub.docker.com/r/castopod/video-clipper):
-  an optional image building videoclips thanks to ffmpeg
 
 Additionally, Castopod requires a MySQL-compatible database. A Redis database
 can be added as a cache handler.
@@ -24,7 +22,6 @@ can be added as a cache handler.
 
 - `develop` [unstable], latest development branch build
 - `beta` [stable], latest beta version build
-- `1.0.0-beta.x` [stable], specific beta version build (since `1.0.0-beta.22`)
 - `latest` [stable], latest version build
 - `1.x.x` [stable], specific version build (since `1.0.0`)
 
@@ -39,7 +36,7 @@ can be added as a cache handler.
 
     services:
       app:
-        image: castopod/app:latest
+        image: castopod/castopod:latest
         container_name: "castopod-app"
         volumes:
           - castopod-media:/var/www/castopod/public/media
@@ -112,16 +109,6 @@ can be added as a cache handler.
 
 ## Environment Variables
 
-- **castopod/video-clipper**
-
-  | Variable name              | Type (`default`) | Default          |
-  | -------------------------- | ---------------- | ---------------- |
-  | **`CP_DATABASE_HOSTNAME`** | ?string          | `"mariadb"`      |
-  | **`CP_DATABASE_NAME`**     | ?string          | `MYSQL_DATABASE` |
-  | **`CP_DATABASE_USERNAME`** | ?string          | `MYSQL_USER`     |
-  | **`CP_DATABASE_PASSWORD`** | ?string          | `MYSQL_PASSWORD` |
-  | **`CP_DATABASE_PREFIX`**   | ?string          | `"cp_"`          |
-
 - **castopod/castopod** and **castopod/app**
 
   | Variable name                         | Type (`default`)        | Default          |
diff --git a/docs/src/da/getting-started/install.md b/docs/src/da/getting-started/install.md
index 03549bcc7f4cba887d1fdbe1a1ee5f1443b2dbcf..af405daf99f2e38483de298e0551dd20b46495fc 100644
--- a/docs/src/da/getting-started/install.md
+++ b/docs/src/da/getting-started/install.md
@@ -19,15 +19,15 @@ If you prefer using Docker, you may skip this and go straight to the
 
 ## Requirements
 
-- PHP v8.1 or higher
+- PHP v8.1 only
 - MySQL version 5.7 or higher or MariaDB version 10.2 or higher
 - HTTPS support
 - An [ntp-synced clock](https://wiki.debian.org/NTP) to validate federation's
   incoming requests
 
-### PHP v8.1 or higher
+### PHP v8.1 only
 
-PHP version 8.1 or higher is required, with the following extensions installed:
+PHP version 8.1 is required, with the following extensions installed:
 
 - [intl](https://php.net/manual/en/intl.requirements.php)
 - [libcurl](https://php.net/manual/en/curl.requirements.php)
@@ -94,29 +94,19 @@ want to generate Video Clips. The following extensions must be installed:
 4. Add **cron tasks** on your web server for various background processes
    (replace the paths accordingly):
 
-   - For social features to work properly, this task is used to broadcast social
-     activities to your followers on the fediverse:
-
-   ```bash
-      * * * * * /path/to/php /path/to/castopod/public/index.php scheduled-activities
-   ```
-
-   - For having your episodes be broadcasted on open hubs upon publication using
-     [WebSub](https://en.wikipedia.org/wiki/WebSub):
-
    ```bash
-      * * * * * /usr/local/bin/php /castopod/public/index.php scheduled-websub-publish
+      * * * * * /path/to/php /path/to/castopod/spark tasks:run >> /dev/null 2>&1
    ```
 
-   - For Video Clips to be created (see
-     [FFmpeg requirements](#ffmpeg-v418-or-higher-for-video-clips)):
-
-   ```bash
-      * * * * * /path/to/php /path/to/castopod/public/index.php scheduled-video-clips
-   ```
+   **Note** - If you do not add this cron task, the following Castopod features
+   will not work:
 
-   > These tasks run **every minute**. You may set the frequency depending on
-   > your needs: every 5, 10 minutes or more.
+   - Importing a podcast from an existing RSS feed
+   - Broadcasting social activities to your followers in the fediverse
+   - Broadcasting episodes to open hubs using
+     [WebSub](https://en.wikipedia.org/wiki/WebSub)
+   - Generating video clips -
+     [requires FFmpeg](#optional-ffmpeg-v418-or-higher-for-video-clips)
 
 ### (recommended) Install Wizard
 
diff --git a/docs/src/de/getting-started/docker.md b/docs/src/de/getting-started/docker.md
index d18dda52c0ec7ea0f823dce7219aa390e860c691..3f119d4e51bff7ba1256f56ae1c710d98bfa2f3d 100644
--- a/docs/src/de/getting-started/docker.md
+++ b/docs/src/de/getting-started/docker.md
@@ -14,8 +14,6 @@ Docker Hub:
   allen Castopod Abhängigkeiten
 - [**`castopod/web-server`**](https://hub.docker.com/r/castopod/web-server): Ein
   Nginx Webserver für Castopod
-- [**`castopod/video-clipper`**](https://hub.docker.com/r/castopod/video-clipper):
-  Ein optionales Image, das dank ffmpeg Videoclips erstellt
 
 Außerdem benötigt Castopod eine MySQL-kompatible Datenbank. Eine Redis-Datenbank
 kann als Cache-Handler hinzugefügt werden.
@@ -24,8 +22,6 @@ kann als Cache-Handler hinzugefügt werden.
 
 - `develop` [unstable], neueste Updates des development Branches
 - `beta` [stable], neueste Beta-Version
-- `1.0.0-beta.x` [stable], spezifischer Beta-Version Build (seit
-  `1.0.0-beta.22`)
 - `latest` [stable], die neuste Version
 - `1.x.x` [stable], spezifische Version (seit `1.0.0`)
 
@@ -40,7 +36,7 @@ kann als Cache-Handler hinzugefügt werden.
 
     services:
       app:
-        image: castopod/app:latest
+        image: castopod/castopod:latest
         container_name: "castopod-app"
         volumes:
           - castopod-media:/var/www/castopod/public/media
@@ -116,16 +112,6 @@ kann als Cache-Handler hinzugefügt werden.
 
 ## Umgebungsvariablen
 
-- **castopod/video-clipper**
-
-  | Variablennamen             | Typ (`Standard`) | Standardwert     |
-  | -------------------------- | ---------------- | ---------------- |
-  | **`CP_DATABASE_HOSTNAME`** | ?string          | `"mariadb"`      |
-  | **`CP_DATABASE_NAME`**     | ?string          | `MYSQL_DATABASE` |
-  | **`CP_DATABASE_USERNAME`** | ?string          | `MYSQL_USER`     |
-  | **`CP_DATABASE_PASSWORD`** | ?string          | `MYSQL_PASSWORD` |
-  | **`CP_DATABASE_PREFIX`**   | ?string          | `"cp_"`          |
-
 - **castopod/castopod** and **castopod/app**
 
   | Variablennamen                        | Typ (`Standard`)        | Standardwert      |
@@ -152,15 +138,15 @@ kann als Cache-Handler hinzugefügt werden.
   | **`CP_EMAIL_SMTP_PORT`**              | ?number                 | `25`              |
   | **`CP_EMAIL_SMTP_CRYPTO`**            | [`"tls"` or `"ssl"`]    | `"tls"`           |
   | **`CP_ENABLE_2FA`**                   | ?boolean                | `nicht definiert` |
-  | **`CP_MEDIA_FILE_MANAGER`**           | ?string                 | `nicht definiert` |
-  | **`CP_MEDIA_S3_ENDPOINT`**            | ?string                 | `nicht definiert` |
+  | **`CP_MEDIA_FILE_MANAGER`**           | ?string                 | `undefined`       |
+  | **`CP_MEDIA_S3_ENDPOINT`**            | ?string                 | `undefined`       |
   | **`CP_MEDIA_S3_KEY`**                 | ?string                 | `nicht definiert` |
   | **`CP_MEDIA_S3_SECRET`**              | ?string                 | `nicht definiert` |
   | **`CP_MEDIA_S3_REGION`**              | ?string                 | `nicht definiert` |
-  | **`CP_MEDIA_S3_BUCKET`**              | ?string                 | `nicht definiert` |
-  | **`CP_MEDIA_S3_PROTOCOL`**            | ?number                 | `nicht definiert` |
-  | **`CP_MEDIA_S3_PATH_STYLE_ENDPOINT`** | ?boolean                | `nicht definiert` |
-  | **`CP_MEDIA_S3_KEY_PREFIX`**          | ?string                 | `nicht definiert` |
+  | **`CP_MEDIA_S3_BUCKET`**              | ?string                 | `undefined`       |
+  | **`CP_MEDIA_S3_PROTOCOL`**            | ?number                 | `undefined`       |
+  | **`CP_MEDIA_S3_PATH_STYLE_ENDPOINT`** | ?boolean                | `undefined`       |
+  | **`CP_MEDIA_S3_KEY_PREFIX`**          | ?string                 | `undefined`       |
   | **`CP_DISABLE_HTTPS`**                | ?[`0` or `1`]           | `undefined`       |
   | **`CP_MAX_BODY_SIZE`**                | ?number (with suffix)   | `512M`            |
   | **`CP_PHP_MEMORY_LIMIT`**             | ?number (with suffix)   | `512M`            |
diff --git a/docs/src/de/getting-started/install.md b/docs/src/de/getting-started/install.md
index ddbab92f24f3d554442bbd116d882a9803cf8a1b..576b1eb93a4130c45cc226952d3e1c88c3c66258 100644
--- a/docs/src/de/getting-started/install.md
+++ b/docs/src/de/getting-started/install.md
@@ -20,16 +20,15 @@ direkt zur [Docker-Dokumentation](./docker.md) für Castopod gehen.
 
 ## Voraussetzungen
 
-- PHP v8.1 oder höher
+- PHP v8.1 only
 - MySQL Version 5.7 oder höher oder MariaDB Version 10.2 oder höher
 - HTTPS-Unterstützung
 - Eine [ntp-synchronisierte Uhr](https://wiki.debian.org/NTP) um die eingehenden
   Anfragen zu überprüfen
 
-### PHP v8.1 oder höher
+### PHP v8.1 only
 
-PHP Version 8.1 oder höher ist erforderlich, wobei folgende Erweiterungen
-installiert sind:
+PHP version 8.1 is required, with the following extensions installed:
 
 - [intl](https://php.net/manual/en/intl.requirements.php)
 - [libcurl](https://php.net/manual/en/curl.requirements.php)
@@ -98,29 +97,19 @@ nicht installiert: %s:
 4. Add **cron tasks** on your web server for various background processes
    (replace the paths accordingly):
 
-   - For social features to work properly, this task is used to broadcast social
-     activities to your followers on the fediverse:
-
-   ```bash
-      * * * * * /path/to/php /path/to/castopod/public/index.php scheduled-activities
-   ```
-
-   - For having your episodes be broadcasted on open hubs upon publication using
-     [WebSub](https://en.wikipedia.org/wiki/WebSub):
-
    ```bash
-      * * * * * /usr/local/bin/php /castopod/public/index.php scheduled-websub-publish
+      * * * * * /path/to/php /path/to/castopod/spark tasks:run >> /dev/null 2>&1
    ```
 
-   - For Video Clips to be created (see
-     [FFmpeg requirements](#ffmpeg-v418-or-higher-for-video-clips)):
-
-   ```bash
-      * * * * * /path/to/php /path/to/castopod/public/index.php scheduled-video-clips
-   ```
+   **Note** - If you do not add this cron task, the following Castopod features
+   will not work:
 
-   > These tasks run **every minute**. You may set the frequency depending on
-   > your needs: every 5, 10 minutes or more.
+   - Importing a podcast from an existing RSS feed
+   - Broadcasting social activities to your followers in the fediverse
+   - Broadcasting episodes to open hubs using
+     [WebSub](https://en.wikipedia.org/wiki/WebSub)
+   - Generating video clips -
+     [requires FFmpeg](#optional-ffmpeg-v418-or-higher-for-video-clips)
 
 ### (recommended) Install Wizard
 
diff --git a/docs/src/el/getting-started/auth.md b/docs/src/el/getting-started/auth.md
index a9f7df64a807008ed6a778deee1185ec7d386c93..e041016be78dfed3e76437d0804afe58ca0f3f19 100644
--- a/docs/src/el/getting-started/auth.md
+++ b/docs/src/el/getting-started/auth.md
@@ -18,7 +18,7 @@ sidebarDepth: 3
 
 <!-- AUTH-INSTANCE-ROLES-LIST:START - Do not remove or modify this section -->
 
-| role             | description                           | permissions                                                                                |
+| ρόλος            | περιγραφή                             | δικαιώματα                                                                                 |
 | ---------------- | ------------------------------------- | ------------------------------------------------------------------------------------------ |
 | Υπερδιαχειριστής | Έχει πλήρη έλεγχο του Castopod.       | admin.\*, podcasts.\*, users.manage, persons.manage, pages.manage, fediverse.manage-blocks |
 | Διαχειριστής     | Διαχείριση περιεχομένου του Castopod. | podcasts.create, podcasts.import, persons.manage, pages.manage                             |
@@ -30,17 +30,17 @@ sidebarDepth: 3
 
 <!-- AUTH-INSTANCE-PERMISSIONS-LIST:START - Do not remove or modify this section -->
 
-| permission              | description                                                                            |
-| ----------------------- | -------------------------------------------------------------------------------------- |
-| admin.access            | Μπορεί να έχει πρόσβαση στην περιοχή διαχείρισης Castopod.                             |
-| admin.settings          | Μπορεί να έχει πρόσβαση στις ρυθμίσεις Castopod.                                       |
-| users.manage            | Μπορεί να διαχειριστεί τους χρήστες Castopod.                                          |
-| persons.manage          | Μπορεί να διαχειριστεί τα άτομα.                                                       |
-| pages.manage            | Μπορεί να διαχειριστεί τις σελίδες.                                                    |
-| podcasts.view           | Μπορεί να δει όλα τα podcasts.                                                         |
-| podcasts.create         | Μπορεί να δημιουργήσει νέα podcasts.                                                   |
-| podcasts.import         | Μπορεί να εισάγει podcasts.                                                            |
-| fediverse.manage-blocks | Μπορεί να εμποδίσει τους ψευτογενείς ηθοποιούς/τομείς να αλληλεπιδρούν με το Castopod. |
+| permission              | description                                                        |
+| ----------------------- | ------------------------------------------------------------------ |
+| admin.access            | Can access the Castopod admin area.                                |
+| admin.settings          | Can access the Castopod settings.                                  |
+| users.manage            | Can manage Castopod users.                                         |
+| persons.manage          | Can manage persons.                                                |
+| pages.manage            | Can manage pages.                                                  |
+| podcasts.view           | Can view all podcasts.                                             |
+| podcasts.create         | Can create new podcasts.                                           |
+| podcasts.import         | Can import podcasts.                                               |
+| fediverse.manage-blocks | Can block fediverse actors/domains from interacting with Castopod. |
 
 <!-- AUTH-INSTANCE-PERMISSIONS-LIST:END -->
 
@@ -50,12 +50,12 @@ sidebarDepth: 3
 
 <!-- AUTH-PODCAST-ROLES-LIST:START - Do not remove or modify this section -->
 
-| role         | description                                                   | permissions                                                                                                                                                                                                                                                                                 |
-| ------------ | ------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
-| Διαχειριστής | Έχει πλήρη έλεγχο του podcast #{id}.                          | \*                                                                                                                                                                                                                                                                                          |
-| Εκδότης      | Διαχειρίζεται περιεχόμενο και δημοσιεύσεις του podcast #{id}. | view, edit, manage-import, manage-persons, manage-platforms, manage-publications, manage-notifications, interact-as, episodes.view, episodes.create, episodes.edit, episodes.delete, episodes.manage-persons, episodes.manage-clips, episodes.manage-publications, episodes.manage-comments |
-| Συντάκτης    | Manages content of podcast #{id} but cannot publish them.     | view, manage-persons, episodes.view, episodes.create, episodes.edit, episodes.manage-persons, episodes.manage-clips                                                                                                                                                                         |
-| Επισκέπτης   | Γενικός συντελεστής του podcast #{id}.                        | view, episodes.view                                                                                                                                                                                                                                                                         |
+| role   | description                                               | permissions                                                                                                                                                                                                                                                                                 |
+| ------ | --------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| Admin  | Has complete control of podcast #{id}.                    | \*                                                                                                                                                                                                                                                                                          |
+| Editor | Manages content and publications of podcast #{id}.        | view, edit, manage-import, manage-persons, manage-platforms, manage-publications, manage-notifications, interact-as, episodes.view, episodes.create, episodes.edit, episodes.delete, episodes.manage-persons, episodes.manage-clips, episodes.manage-publications, episodes.manage-comments |
+| Author | Manages content of podcast #{id} but cannot publish them. | view, manage-persons, episodes.view, episodes.create, episodes.edit, episodes.manage-persons, episodes.manage-clips                                                                                                                                                                         |
+| Guest  | General contributor of the podcast #{id}.                 | view, episodes.view                                                                                                                                                                                                                                                                         |
 
 <!-- AUTH-PODCAST-ROLES-LIST:END -->
 
diff --git a/docs/src/el/getting-started/docker.md b/docs/src/el/getting-started/docker.md
index 19ce1070a657b7bb7a765121dbf1591a3ab6bd7f..75158bd612eff7da515d5c9cf9c6754b89f77442 100644
--- a/docs/src/el/getting-started/docker.md
+++ b/docs/src/el/getting-started/docker.md
@@ -14,8 +14,6 @@ process:
   with all of Castopod dependencies
 - [**`castopod/web-server`**](https://hub.docker.com/r/castopod/web-server): an
   Nginx configuration for Castopod
-- [**`castopod/video-clipper`**](https://hub.docker.com/r/castopod/video-clipper):
-  an optional image building videoclips thanks to ffmpeg
 
 Additionally, Castopod requires a MySQL-compatible database. A Redis database
 can be added as a cache handler.
@@ -24,7 +22,6 @@ can be added as a cache handler.
 
 - `develop` [unstable], latest development branch build
 - `beta` [stable], latest beta version build
-- `1.0.0-beta.x` [stable], specific beta version build (since `1.0.0-beta.22`)
 - `latest` [stable], latest version build
 - `1.x.x` [stable], specific version build (since `1.0.0`)
 
@@ -39,7 +36,7 @@ can be added as a cache handler.
 
     services:
       app:
-        image: castopod/app:latest
+        image: castopod/castopod:latest
         container_name: "castopod-app"
         volumes:
           - castopod-media:/var/www/castopod/public/media
@@ -112,16 +109,6 @@ can be added as a cache handler.
 
 ## Environment Variables
 
-- **castopod/video-clipper**
-
-  | Variable name              | Type (`default`) | Default          |
-  | -------------------------- | ---------------- | ---------------- |
-  | **`CP_DATABASE_HOSTNAME`** | ?string          | `"mariadb"`      |
-  | **`CP_DATABASE_NAME`**     | ?string          | `MYSQL_DATABASE` |
-  | **`CP_DATABASE_USERNAME`** | ?string          | `MYSQL_USER`     |
-  | **`CP_DATABASE_PASSWORD`** | ?string          | `MYSQL_PASSWORD` |
-  | **`CP_DATABASE_PREFIX`**   | ?string          | `"cp_"`          |
-
 - **castopod/castopod** and **castopod/app**
 
   | Variable name                         | Type (`default`)        | Default          |
diff --git a/docs/src/el/getting-started/install.md b/docs/src/el/getting-started/install.md
index 03549bcc7f4cba887d1fdbe1a1ee5f1443b2dbcf..af405daf99f2e38483de298e0551dd20b46495fc 100644
--- a/docs/src/el/getting-started/install.md
+++ b/docs/src/el/getting-started/install.md
@@ -19,15 +19,15 @@ If you prefer using Docker, you may skip this and go straight to the
 
 ## Requirements
 
-- PHP v8.1 or higher
+- PHP v8.1 only
 - MySQL version 5.7 or higher or MariaDB version 10.2 or higher
 - HTTPS support
 - An [ntp-synced clock](https://wiki.debian.org/NTP) to validate federation's
   incoming requests
 
-### PHP v8.1 or higher
+### PHP v8.1 only
 
-PHP version 8.1 or higher is required, with the following extensions installed:
+PHP version 8.1 is required, with the following extensions installed:
 
 - [intl](https://php.net/manual/en/intl.requirements.php)
 - [libcurl](https://php.net/manual/en/curl.requirements.php)
@@ -94,29 +94,19 @@ want to generate Video Clips. The following extensions must be installed:
 4. Add **cron tasks** on your web server for various background processes
    (replace the paths accordingly):
 
-   - For social features to work properly, this task is used to broadcast social
-     activities to your followers on the fediverse:
-
-   ```bash
-      * * * * * /path/to/php /path/to/castopod/public/index.php scheduled-activities
-   ```
-
-   - For having your episodes be broadcasted on open hubs upon publication using
-     [WebSub](https://en.wikipedia.org/wiki/WebSub):
-
    ```bash
-      * * * * * /usr/local/bin/php /castopod/public/index.php scheduled-websub-publish
+      * * * * * /path/to/php /path/to/castopod/spark tasks:run >> /dev/null 2>&1
    ```
 
-   - For Video Clips to be created (see
-     [FFmpeg requirements](#ffmpeg-v418-or-higher-for-video-clips)):
-
-   ```bash
-      * * * * * /path/to/php /path/to/castopod/public/index.php scheduled-video-clips
-   ```
+   **Note** - If you do not add this cron task, the following Castopod features
+   will not work:
 
-   > These tasks run **every minute**. You may set the frequency depending on
-   > your needs: every 5, 10 minutes or more.
+   - Importing a podcast from an existing RSS feed
+   - Broadcasting social activities to your followers in the fediverse
+   - Broadcasting episodes to open hubs using
+     [WebSub](https://en.wikipedia.org/wiki/WebSub)
+   - Generating video clips -
+     [requires FFmpeg](#optional-ffmpeg-v418-or-higher-for-video-clips)
 
 ### (recommended) Install Wizard
 
diff --git a/docs/src/es/getting-started/auth.md b/docs/src/es/getting-started/auth.md
index 5a049c420316a404a31d78e0c1e408e46d517aa8..9024c6c0cdb1c9f15c4f81ed3ebf7b77010bb684 100644
--- a/docs/src/es/getting-started/auth.md
+++ b/docs/src/es/getting-started/auth.md
@@ -18,10 +18,10 @@ niveles:
 
 <!-- AUTH-INSTANCE-ROLES-LIST:START - Do not remove or modify this section -->
 
-| role                | description                            | permissions                                                                                |
+| roles               | descripción                            | permisos                                                                                   |
 | ------------------- | -------------------------------------- | ------------------------------------------------------------------------------------------ |
 | Super administrador | Tiene control completo sobre Castopod. | admin.\*, podcasts.\*, users.manage, persons.manage, pages.manage, fediverse.manage-blocks |
-| Administrador       | Administrar contenido de Castopod.     | podcasts.create, podcasts.import, persons.manage, pages.manage                             |
+| Administrador       | Gestiona el contenido de Castopod.     | podcasts.create, podcasts.import, persons.manage, pages.manage                             |
 | Podcaster           | Usuarios generales de Castopod.        | admin.access                                                                               |
 
 <!-- AUTH-INSTANCE-ROLES-LIST:END -->
@@ -30,7 +30,7 @@ niveles:
 
 <!-- AUTH-INSTANCE-PERMISSIONS-LIST:START - Do not remove or modify this section -->
 
-| permission              | description                                                                    |
+| permisos                | descripción                                                                    |
 | ----------------------- | ------------------------------------------------------------------------------ |
 | admin.access            | Puedes acceder al área de administración de Castopod.                          |
 | admin.settings          | Puede acceder a la configuración de Castopod.                                  |
@@ -50,7 +50,7 @@ niveles:
 
 <!-- AUTH-PODCAST-ROLES-LIST:START - Do not remove or modify this section -->
 
-| role          | description                                                       | permissions                                                                                                                                                                                                                                                                                 |
+| roles         | descripción                                                       | permisos                                                                                                                                                                                                                                                                                    |
 | ------------- | ----------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
 | Administrador | Tiene el control completo del podcast #{id}.                      | \*                                                                                                                                                                                                                                                                                          |
 | Editor        | Gestiona el contenido y las publicaciones del podcast #{id}.      | view, edit, manage-import, manage-persons, manage-platforms, manage-publications, manage-notifications, interact-as, episodes.view, episodes.create, episodes.edit, episodes.delete, episodes.manage-persons, episodes.manage-clips, episodes.manage-publications, episodes.manage-comments |
@@ -63,26 +63,26 @@ niveles:
 
 <!-- AUTH-PODCAST-PERMISSIONS-LIST:START - Do not remove or modify this section -->
 
-| permission                   | description                                                                                                   |
-| ---------------------------- | ------------------------------------------------------------------------------------------------------------- |
-| view                         | Puede ver el panel de control y analíticas del episodio #{id}.                                                |
-| edit                         | Puede editar el podcast #{id}.                                                                                |
-| delete                       | Puede borrar el podcast #{id}.                                                                                |
-| manage-import                | Puede sincronizar el podcast importado #{id}.                                                                 |
-| manage-persons               | Puede administrar las suscripciones del podcast #{id}.                                                        |
-| manage-subscriptions         | Puede administrar las suscripciones del podcast #{id}.                                                        |
-| manage-contributors          | Puede administrar colaboradores del podcast #{id}.                                                            |
-| manage-platforms             | Puede establecer/eliminar enlaces a la plataforma del podcast #{id}.                                          |
-| manage-publications          | Puede publicar el podcast #{id}.                                                                              |
-| manage-notifications         | Puede ver y marcar las notificaciones como leídas para podcast #{id}.                                         |
-| interact-as                  | Puede interactuar como el podcast #{id} para marcar como favarito, compartir o responder a las publicaciones. |
-| episodes.view                | Puede ver el panel de control y analíticas del episodio #{id}.                                                |
-| episodes.create              | Puede crear episodios para el podcast #{id}.                                                                  |
-| episodes.edit                | Puede editar el podcast #{id}.                                                                                |
-| episodes.delete              | Puede borrar el podcast #{id}.                                                                                |
-| episodes.manage-persons      | Puede administrar las suscripciones del podcast #{id}.                                                        |
-| episodes.manage-clips        | Puedes administrar video clips o sonidos del podcast #{id}.                                                   |
-| episodes.manage-publications | Puede publicar el podcast #{id}.                                                                              |
-| episodes.manage-comments     | Puede crear/eliminar los comentarios de episodio del podcast #{id}.                                           |
+| permisos                     | descripción                                                                                        |
+| ---------------------------- | -------------------------------------------------------------------------------------------------- |
+| view                         | Puede ver el panel de control y análisis del podcast #{id}.                                        |
+| edit                         | Puede editar podcast #{id}.                                                                        |
+| delete                       | Puede borrar el podcast #{id}.                                                                     |
+| manage-import                | Puede sincronizar el podcast importado #{id}.                                                      |
+| manage-persons               | Puede administrar las suscripciones del podcast #{id}.                                             |
+| manage-subscriptions         | Puede administrar las suscripciones del podcast #{id}.                                             |
+| manage-contributors          | Puede administrar colaboradores del podcast #{id}.                                                 |
+| manage-platforms             | Puede establecer/eliminar enlaces a la plataforma del podcast #{id}.                               |
+| manage-publications          | Puede publicar el podcast #{id}.                                                                   |
+| manage-notifications         | Puede ver y marcar las notificaciones como leídas para podcast #{id}.                              |
+| interact-as                  | Puede interactuar como el podcast #{id} para favoritar, compartir o responder a las publicaciones. |
+| episodes.view                | Puede ver el panel de control y analíticas del episodio #{id}.                                     |
+| episodes.create              | Puede crear episodios para el podcast #{id}.                                                       |
+| episodes.edit                | Puede editar episodios #{id}.                                                                      |
+| episodes.delete              | Puede borrar el podcast #{id}.                                                                     |
+| episodes.manage-persons      | Puede administrar las suscripciones del podcast #{id}.                                             |
+| episodes.manage-clips        | Puedes administrar video clips o sonidos del podcast #{id}.                                        |
+| episodes.manage-publications | Puede publicar el podcast #{id}.                                                                   |
+| episodes.manage-comments     | Puede crear/eliminar los comentarios de episodio del podcast #{id}.                                |
 
 <!-- AUTH-PODCAST-PERMISSIONS-LIST:END -->
diff --git a/docs/src/es/getting-started/docker.md b/docs/src/es/getting-started/docker.md
index ae548c780e9d167feadd24a0d96d48894ab24d94..94363f3ee43783305d5957df985d8f5d838751b5 100644
--- a/docs/src/es/getting-started/docker.md
+++ b/docs/src/es/getting-started/docker.md
@@ -14,8 +14,6 @@ automatizada:
   completo de Castopod con todas las dependencias.
 - [**`castopod/web-server`**](https://hub.docker.com/r/castopod/web-server): una
   configuración Nginx para Castopod
-- [**`castopod/videoclipper`**](https://hub.docker.com/r/castopod/video-clipper):
-  una imagen opcional de creación de videoclips gracias a ffmpeg
 
 Adicionalmente, Castopod requiere una base de datos compatible con MySQL.
 También se puede añadir una base de datos Redis como gestor de caché.
@@ -24,7 +22,6 @@ También se puede añadir una base de datos Redis como gestor de caché.
 
 - `develop` [unstable], última rama de desarrollo construida
 - `beta` [stable], última versión beta
-- `1.0.0-beta.x` [stable], versión beta específica (desde `1.0.0-beta.22`)
 - `latest` [stable], última versión
 - `1.x.x` [stable], versión específica de compilación (desde `1.0.0`)
 
@@ -39,7 +36,7 @@ También se puede añadir una base de datos Redis como gestor de caché.
 
     services:
       app:
-        image: castopod/app:latest
+        image: castopod/castopod:latest
         container_name: "castopod-app"
         volumes:
           - castopod-media:/var/www/castopod/public/media
@@ -114,55 +111,45 @@ También se puede añadir una base de datos Redis como gestor de caché.
 
 ## Variables de Entorno
 
-- **castopod/video-clipper**
-
-  | Nombre de la Variable      | Tipo (`predeterminado`) | Por defecto      |
-  | -------------------------- | ----------------------- | ---------------- |
-  | **`CP_DATABASE_HOSTNAME`** | ?string                 | `"mariadb"`      |
-  | **`CP_DATABASE_NAME`**     | ?string                 | `MYSQL_DATABASE` |
-  | **`CP_DATABASE_USERNAME`** | ?string                 | `MYSQL_USER`     |
-  | **`CP_DATABASE_PASSWORD`** | ?string                 | `MYSQL_PASSWORD` |
-  | **`CP_DATABASE_PREFIX`**   | ?string                 | `"cp_"`          |
-
 - **castopod/castopod** and **castopod/app**
 
-  | Nombre de la variable                 | Tipo (`por defecto`)   | Por defecto      |
-  | ------------------------------------- | ---------------------- | ---------------- |
-  | **`CP_BASEURL`**                      | string                 | `undefined`      |
-  | **`CP_MEDIA_URLBASE`**                | ?string                | `CP_BASEURL`     |
-  | **`CP_ADMIN_GATEWAY`**                | ?string                | `"cp-admin"`     |
-  | **`CP_AUTH_GATEWAY`**                 | ?string                | `"cp-auth"`      |
-  | **`CP_ANALYTICS_SALT`**               | string                 | `undefined`      |
-  | **`CP_DATABASE_HOSTNAME`**            | ?string                | `"mariadb"`      |
-  | **`CP_DATABASE_NAME`**                | ?string                | `MYSQL_DATABASE` |
-  | **`CP_DATABASE_USERNAME`**            | ?string                | `MYSQL_USER`     |
-  | **`CP_DATABASE_PASSWORD`**            | ?string                | `MYSQL_PASSWORD` |
-  | **`CP_DATABASE_PREFIX`**              | ?string                | `"cp_"`          |
-  | **`CP_CACHE_HANDLER`**                | [`"file"` o `"redis"`] | `"file"`         |
-  | **`CP_REDIS_HOST`**                   | ?string                | `"localhost"`    |
-  | **`CP_REDIS_PASSWORD`**               | ?string                | `null`           |
-  | **`CP_REDIS_PORT`**                   | ?number                | `6379`           |
-  | **`CP_REDIS_DATABASE`**               | ?number                | `0`              |
-  | **`HOST_EMAIL_SMTP_HOST`**            | ?string                | `undefined`      |
-  | **`CP_EMAIL_FROM`**                   | ?string                | `undefined`      |
-  | **`CP_EMAIL_SMTP_USERNAME`**          | ?string                | `"localhost"`    |
-  | **`CP_EMAIL_SMTP_PASSWORD`**          | ?string                | `null`           |
-  | **`CP_EMAIL_SMTP_PORT`**              | ?number                | `25`             |
-  | **`CP_EMAIL_SMTP_CRYPTO`**            | [`"tls"` o `"ssl"`]    | `"tls"`          |
-  | **`CP_ENABLE_2FA`**                   | ?boolean               | `undefined`      |
-  | **`CP_MEDIA_FILE_MANAGER`**           | ?string                | `undefined`      |
-  | **`CP_MEDIA_S3_ENDPOINT`**            | ?string                | `undefined`      |
-  | **`CP_MEDIA_S3_KEY`**                 | ?string                | `undefined`      |
-  | **`CP_MEDIA_S3_SECRET`**              | ?string                | `undefined`      |
-  | **`CP_MEDIA_S3_REGION`**              | ?string                | `undefined`      |
-  | **`CP_MEDIA_S3_BUCKET`**              | ?string                | `undefined`      |
-  | **`CP_MEDIA_S3_PROTOCOL`**            | ?number                | `undefined`      |
-  | **`CP_MEDIA_S3_PATH_STYLE_ENDPOINT`** | ?boolean               | `undefined`      |
-  | **`CP_MEDIA_S3_KEY_PREFIX`**          | ?string                | `undefined`      |
-  | **`CP_DISABLE_HTTPS`**                | ?[`0` or `1`]          | `undefined`      |
-  | **`CP_MAX_BODY_SIZE`**                | ?number (with suffix)  | `512M`           |
-  | **`CP_PHP_MEMORY_LIMIT`**             | ?number (with suffix)  | `512M`           |
-  | **`CP_TIMEOUT`**                      | ?number                | `900`            |
+  | Nombre de la Variable                 | Tipo (`predeterminado`) | Por defecto      |
+  | ------------------------------------- | ----------------------- | ---------------- |
+  | **`CP_BASEURL`**                      | string                  | `undefined`      |
+  | **`CP_MEDIA_URLBASE`**                | ?string                 | `CP_BASEURL`     |
+  | **`CP_ADMIN_GATEWAY`**                | ?string                 | `"cp-admin"`     |
+  | **`CP_AUTH_GATEWAY`**                 | ?string                 | `"cp-auth"`      |
+  | **`CP_ANALYTICS_SALT`**               | string                  | `undefined`      |
+  | **`CP_DATABASE_HOSTNAME`**            | ?string                 | `"mariadb"`      |
+  | **`CP_DATABASE_NAME`**                | ?string                 | `MYSQL_DATABASE` |
+  | **`CP_DATABASE_USERNAME`**            | ?string                 | `MYSQL_USER`     |
+  | **`CP_DATABASE_PASSWORD`**            | ?string                 | `MYSQL_PASSWORD` |
+  | **`CP_DATABASE_PREFIX`**              | ?string                 | `"cp_"`          |
+  | **`CP_CACHE_HANDLER`**                | [`"file"` o `"redis"`]  | `"file"`         |
+  | **`CP_REDIS_HOST`**                   | ?string                 | `"localhost"`    |
+  | **`CP_REDIS_PASSWORD`**               | ?string                 | `null`           |
+  | **`CP_REDIS_PORT`**                   | ?number                 | `6379`           |
+  | **`CP_REDIS_DATABASE`**               | ?number                 | `0`              |
+  | **`HOST_EMAIL_SMTP_HOST`**            | ?string                 | `undefined`      |
+  | **`CP_EMAIL_FROM`**                   | ?string                 | `undefined`      |
+  | **`CP_EMAIL_SMTP_USERNAME`**          | ?string                 | `"localhost"`    |
+  | **`CP_EMAIL_SMTP_PASSWORD`**          | ?string                 | `null`           |
+  | **`CP_EMAIL_SMTP_PORT`**              | ?number                 | `25`             |
+  | **`CP_EMAIL_SMTP_CRYPTO`**            | [`"tls"` o `"ssl"`]     | `"tls"`          |
+  | **`CP_ENABLE_2FA`**                   | ?boolean                | `undefined`      |
+  | **`CP_MEDIA_FILE_MANAGER`**           | ?string                 | `undefined`      |
+  | **`CP_MEDIA_S3_ENDPOINT`**            | ?string                 | `undefined`      |
+  | **`CP_MEDIA_S3_KEY`**                 | ?string                 | `undefined`      |
+  | **`CP_MEDIA_S3_SECRET`**              | ?string                 | `undefined`      |
+  | **`CP_MEDIA_S3_REGION`**              | ?string                 | `undefined`      |
+  | **`CP_MEDIA_S3_BUCKET`**              | ?string                 | `undefined`      |
+  | **`CP_MEDIA_S3_PROTOCOL`**            | ?number                 | `undefined`      |
+  | **`CP_MEDIA_S3_PATH_STYLE_ENDPOINT`** | ?boolean                | `undefined`      |
+  | **`CP_MEDIA_S3_KEY_PREFIX`**          | ?string                 | `undefined`      |
+  | **`CP_DISABLE_HTTPS`**                | ?[`0` or `1`]           | `undefined`      |
+  | **`CP_MAX_BODY_SIZE`**                | ?number (with suffix)   | `512M`           |
+  | **`CP_PHP_MEMORY_LIMIT`**             | ?number (with suffix)   | `512M`           |
+  | **`CP_TIMEOUT`**                      | ?number                 | `900`            |
 
 - **castopod/servidor web**
 
diff --git a/docs/src/es/getting-started/install.md b/docs/src/es/getting-started/install.md
index 38dc1a8da7e4f154c935efb41914b99239c5783e..7886c73529d9c8b51a78268b9d2f4ef69d42f93f 100644
--- a/docs/src/es/getting-started/install.md
+++ b/docs/src/es/getting-started/install.md
@@ -20,16 +20,15 @@ Si prefieres usar Docker, puedes saltarte esto e ir directamente a la
 
 ## Requisitos
 
-- PHP v8.1 o superior
+- PHP v8.1 only
 - MySQL versión 5.7 o superior o MariaDB versión 10.2 o superior
 - Soporte HTTPS
 - An [ntp-synced clock](https://wiki.debian.org/NTP) to validate federation's
   incoming requests
 
-### PHP v8.1 o superior
+### PHP v8.1 only
 
-Se requiere PHP versión 8.1 o superior con las siguientes extensiones
-instaladas:
+PHP version 8.1 is required, with the following extensions installed:
 
 - [intl](https://php.net/manual/en/intl.requirements.php)
 - [libcurl](https://php.net/manual/en/curl.requirements.php)
@@ -95,34 +94,22 @@ extensiones:
    [Castopod](https://castopod.org/), si aún no lo has hecho.
    - ⚠️ Edita la configuración de tu servidor para que el "document root" sea la
      subcarpeta `castopod/public/`.
-4. Añade tareas en el **cron** de tu servidor web para hacer funcionar varios
-   procesos de Castopod en segundo plano (reemplaza las rutas de acuerdo a la
-   estructura de directorios de tu servidor):
-
-   - Esta tarea se utiliza para transmitir las actividades sociales a tus
-     seguidores en el Fediverso:
-
-   ```bash
-      * * * * * /ruta/al/php /ruta/a/castopod/public/index.php scheduled-activities
-   ```
-
-   - Para que tus episodios sean transmitidos a los hubs abiertos que usan el
-     nuevo protocolo [WebSub](https://en.wikipedia.org/wiki/WebSub) (2018):
+4. Add **cron tasks** on your web server for various background processes
+   (replace the paths accordingly):
 
    ```bash
-      * * * * * /ruta/al/php /castopod/public/index.php scheduled-websub-publish
+      * * * * * /path/to/php /path/to/castopod/spark tasks:run >> /dev/null 2>&1
    ```
 
-   - Para generar Recortes de video (ver
-     [requisitos FFmpeg ](#ffmpeg-v418-or-higher-for-video-clips)):
-
-   ```bash
-      * * * * * /ruta/al/php /path/to/castopod/public/index.php scheduled-video-clips
-   ```
+   **Note** - If you do not add this cron task, the following Castopod features
+   will not work:
 
-   > Estas tareas así definidas se ejecutarán **cada minuto**. Pero puedes
-   > definir una frecuencia más acorde a tus necesidades: cada 5, 10 minutos o
-   > más.
+   - Importing a podcast from an existing RSS feed
+   - Broadcasting social activities to your followers in the fediverse
+   - Broadcasting episodes to open hubs using
+     [WebSub](https://en.wikipedia.org/wiki/WebSub)
+   - Generating video clips -
+     [requires FFmpeg](#optional-ffmpeg-v418-or-higher-for-video-clips)
 
 ### (recomendado) Asistente web de instalación
 
diff --git a/docs/src/fa/getting-started/docker.md b/docs/src/fa/getting-started/docker.md
index 19ce1070a657b7bb7a765121dbf1591a3ab6bd7f..75158bd612eff7da515d5c9cf9c6754b89f77442 100644
--- a/docs/src/fa/getting-started/docker.md
+++ b/docs/src/fa/getting-started/docker.md
@@ -14,8 +14,6 @@ process:
   with all of Castopod dependencies
 - [**`castopod/web-server`**](https://hub.docker.com/r/castopod/web-server): an
   Nginx configuration for Castopod
-- [**`castopod/video-clipper`**](https://hub.docker.com/r/castopod/video-clipper):
-  an optional image building videoclips thanks to ffmpeg
 
 Additionally, Castopod requires a MySQL-compatible database. A Redis database
 can be added as a cache handler.
@@ -24,7 +22,6 @@ can be added as a cache handler.
 
 - `develop` [unstable], latest development branch build
 - `beta` [stable], latest beta version build
-- `1.0.0-beta.x` [stable], specific beta version build (since `1.0.0-beta.22`)
 - `latest` [stable], latest version build
 - `1.x.x` [stable], specific version build (since `1.0.0`)
 
@@ -39,7 +36,7 @@ can be added as a cache handler.
 
     services:
       app:
-        image: castopod/app:latest
+        image: castopod/castopod:latest
         container_name: "castopod-app"
         volumes:
           - castopod-media:/var/www/castopod/public/media
@@ -112,16 +109,6 @@ can be added as a cache handler.
 
 ## Environment Variables
 
-- **castopod/video-clipper**
-
-  | Variable name              | Type (`default`) | Default          |
-  | -------------------------- | ---------------- | ---------------- |
-  | **`CP_DATABASE_HOSTNAME`** | ?string          | `"mariadb"`      |
-  | **`CP_DATABASE_NAME`**     | ?string          | `MYSQL_DATABASE` |
-  | **`CP_DATABASE_USERNAME`** | ?string          | `MYSQL_USER`     |
-  | **`CP_DATABASE_PASSWORD`** | ?string          | `MYSQL_PASSWORD` |
-  | **`CP_DATABASE_PREFIX`**   | ?string          | `"cp_"`          |
-
 - **castopod/castopod** and **castopod/app**
 
   | Variable name                         | Type (`default`)        | Default          |
diff --git a/docs/src/fa/getting-started/install.md b/docs/src/fa/getting-started/install.md
index 03549bcc7f4cba887d1fdbe1a1ee5f1443b2dbcf..af405daf99f2e38483de298e0551dd20b46495fc 100644
--- a/docs/src/fa/getting-started/install.md
+++ b/docs/src/fa/getting-started/install.md
@@ -19,15 +19,15 @@ If you prefer using Docker, you may skip this and go straight to the
 
 ## Requirements
 
-- PHP v8.1 or higher
+- PHP v8.1 only
 - MySQL version 5.7 or higher or MariaDB version 10.2 or higher
 - HTTPS support
 - An [ntp-synced clock](https://wiki.debian.org/NTP) to validate federation's
   incoming requests
 
-### PHP v8.1 or higher
+### PHP v8.1 only
 
-PHP version 8.1 or higher is required, with the following extensions installed:
+PHP version 8.1 is required, with the following extensions installed:
 
 - [intl](https://php.net/manual/en/intl.requirements.php)
 - [libcurl](https://php.net/manual/en/curl.requirements.php)
@@ -94,29 +94,19 @@ want to generate Video Clips. The following extensions must be installed:
 4. Add **cron tasks** on your web server for various background processes
    (replace the paths accordingly):
 
-   - For social features to work properly, this task is used to broadcast social
-     activities to your followers on the fediverse:
-
-   ```bash
-      * * * * * /path/to/php /path/to/castopod/public/index.php scheduled-activities
-   ```
-
-   - For having your episodes be broadcasted on open hubs upon publication using
-     [WebSub](https://en.wikipedia.org/wiki/WebSub):
-
    ```bash
-      * * * * * /usr/local/bin/php /castopod/public/index.php scheduled-websub-publish
+      * * * * * /path/to/php /path/to/castopod/spark tasks:run >> /dev/null 2>&1
    ```
 
-   - For Video Clips to be created (see
-     [FFmpeg requirements](#ffmpeg-v418-or-higher-for-video-clips)):
-
-   ```bash
-      * * * * * /path/to/php /path/to/castopod/public/index.php scheduled-video-clips
-   ```
+   **Note** - If you do not add this cron task, the following Castopod features
+   will not work:
 
-   > These tasks run **every minute**. You may set the frequency depending on
-   > your needs: every 5, 10 minutes or more.
+   - Importing a podcast from an existing RSS feed
+   - Broadcasting social activities to your followers in the fediverse
+   - Broadcasting episodes to open hubs using
+     [WebSub](https://en.wikipedia.org/wiki/WebSub)
+   - Generating video clips -
+     [requires FFmpeg](#optional-ffmpeg-v418-or-higher-for-video-clips)
 
 ### (recommended) Install Wizard
 
diff --git a/docs/src/fr/getting-started/auth.md b/docs/src/fr/getting-started/auth.md
index ee460680b0626144bc4c527835bda4a4f52ac9fa..db3e409c3cf54f1330766dff2a7cca91dc39407f 100644
--- a/docs/src/fr/getting-started/auth.md
+++ b/docs/src/fr/getting-started/auth.md
@@ -18,11 +18,11 @@ autorisations sont définis sur deux niveaux :
 
 <!-- AUTH-INSTANCE-ROLES-LIST:START - Do not remove or modify this section -->
 
-| role                       | description                         | permissions                                                                                |
-| -------------------------- | ----------------------------------- | ------------------------------------------------------------------------------------------ |
-| Super administrat·rice·eur | A un contrôle complet sur Castopod. | admin.\*, podcasts.\*, users.manage, persons.manage, pages.manage, fediverse.manage-blocks |
-| Gestionnaire               | Gère le contenu de Castopod.        | podcasts.create, podcasts.import, persons.manage, pages.manage                             |
-| Podcast·rice·eur           | Utilisateurs généraux de Castopod.  | admin.access                                                                               |
+| rôle         | description                         | permissions                                                                                |
+| ------------ | ----------------------------------- | ------------------------------------------------------------------------------------------ |
+| Super admin  | A un contrôle complet sur Castopod. | admin.\*, podcasts.\*, users.manage, persons.manage, pages.manage, fediverse.manage-blocks |
+| Gestionnaire | Gère le contenu de Castopod.        | podcasts.create, podcasts.import, persons.manage, pages.manage                             |
+| Podcaster    | Utilisateurs généraux de Castopod.  | admin.access                                                                               |
 
 <!-- AUTH-INSTANCE-ROLES-LIST:END -->
 
@@ -30,17 +30,17 @@ autorisations sont définis sur deux niveaux :
 
 <!-- AUTH-INSTANCE-PERMISSIONS-LIST:START - Do not remove or modify this section -->
 
-| permission              | description                                                          |
-| ----------------------- | -------------------------------------------------------------------- |
-| admin.access            | Peut accéder à la zone d'administration Castopod.                    |
-| admin.settings          | Peut accéder aux paramètres de Castopod.                             |
-| users.manage            | Peut gérer les utilisateurs de Castopod.                             |
-| persons.manage          | Permet de gérer les personnes.                                       |
-| pages.manage            | Permet de gérer les pages.                                           |
-| podcasts.view           | Peut voir tous les podcasts.                                         |
-| podcasts.create         | Peut créer de nouveaux podcasts.                                     |
-| podcasts.import         | Peut importer des podcasts.                                          |
-| fediverse.manage-blocks | Peut empêcher des act·rice·eur·s/domaines d'interagir avec Castopod. |
+| autorisation            | description                                                        |
+| ----------------------- | ------------------------------------------------------------------ |
+| admin.access            | Peut accéder à la zone d'administration Castopod.                  |
+| admin.settings          | Peut accéder aux paramètres de Castopod.                           |
+| users.manage            | Peut gérer les utilisateurs de Castopod.                           |
+| persons.manage          | Can manage persons.                                                |
+| pages.manage            | Permet de gérer les pages.                                         |
+| podcasts.view           | Peut voir tous les podcasts.                                       |
+| podcasts.create         | Peut créer de nouveaux podcasts.                                   |
+| podcasts.import         | Peut importer des podcasts.                                        |
+| fediverse.manage-blocks | Can block fediverse actors/domains from interacting with Castopod. |
 
 <!-- AUTH-INSTANCE-PERMISSIONS-LIST:END -->
 
@@ -50,12 +50,12 @@ autorisations sont définis sur deux niveaux :
 
 <!-- AUTH-PODCAST-ROLES-LIST:START - Do not remove or modify this section -->
 
-| role             | description                                                     | permissions                                                                                                                                                                                                                                                                                 |
-| ---------------- | --------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
-| Administrateur   | A un contrôle total sur le podcast #{id}.                       | \*                                                                                                                                                                                                                                                                                          |
-| Éditeur          | Gère le contenu et les publications du podcast #{id}.           | view, edit, manage-import, manage-persons, manage-platforms, manage-publications, manage-notifications, interact-as, episodes.view, episodes.create, episodes.edit, episodes.delete, episodes.manage-persons, episodes.manage-clips, episodes.manage-publications, episodes.manage-comments |
-| Auteur / Autrice | Gère le contenu du podcast #{id} , mais ne peut pas le publier. | view, manage-persons, episodes.view, episodes.create, episodes.edit, episodes.manage-persons, episodes.manage-clips                                                                                                                                                                         |
-| Invité           | Contributeur général du podcast #{id}.                          | view, episodes.view                                                                                                                                                                                                                                                                         |
+| rôle    | description                                                     | permissions                                                                                                                                                                                                                                                                                 |
+| ------- | --------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| Admin   | A un contrôle total sur le podcast #{id}.                       | \*                                                                                                                                                                                                                                                                                          |
+| Éditeur | Gère le contenu et les publications du podcast #{id}.           | view, edit, manage-import, manage-persons, manage-platforms, manage-publications, manage-notifications, interact-as, episodes.view, episodes.create, episodes.edit, episodes.delete, episodes.manage-persons, episodes.manage-clips, episodes.manage-publications, episodes.manage-comments |
+| Auteur  | Gère le contenu du podcast #{id} , mais ne peut pas le publier. | view, manage-persons, episodes.view, episodes.create, episodes.edit, episodes.manage-persons, episodes.manage-clips                                                                                                                                                                         |
+| Invité  | Contributeur général du podcast #{id}.                          | view, episodes.view                                                                                                                                                                                                                                                                         |
 
 <!-- AUTH-PODCAST-ROLES-LIST:END -->
 
@@ -63,26 +63,26 @@ autorisations sont définis sur deux niveaux :
 
 <!-- AUTH-PODCAST-PERMISSIONS-LIST:START - Do not remove or modify this section -->
 
-| permission                   | description                                                                                        |
-| ---------------------------- | -------------------------------------------------------------------------------------------------- |
-| view                         | Peut voir le tableau de bord et les analyses du podcast #{id}.                                     |
-| edit                         | Peut éditer le podcast #{id}.                                                                      |
-| delete                       | Peut supprimer le podcast #{id}.                                                                   |
-| manage-import                | Peut synchroniser le podcast importé #{id}.                                                        |
-| manage-persons               | Permet de gérer les abonnements au podcast #{id}.                                                  |
-| manage-subscriptions         | Permet de gérer les abonnements au podcast #{id}.                                                  |
-| manage-contributors          | Permet de gérer les contributeurs du podcast #{id}.                                                |
-| manage-platforms             | Peut configurer/supprimer les liens de la plateforme du podcast #{id}.                             |
-| manage-publications          | Peut publier le podcast #{id}.                                                                     |
-| manage-notifications         | Peut afficher et marquer les notifications comme lues pour le podcast #{id}.                       |
-| interact-as                  | Peut interagir en tant que podcast #{id} pour mettre en favori, partager ou répondre aux messages. |
-| episodes.view                | Peut voir le tableau de bord et les analyses du podcast #{id}.                                     |
-| episodes.create              | Peut créer des épisodes pour le podcast #{id}.                                                     |
-| episodes.edit                | Peut éditer le podcast #{id}.                                                                      |
-| episodes.delete              | Peut supprimer le podcast #{id}.                                                                   |
-| episodes.manage-persons      | Permet de gérer les abonnements au podcast #{id}.                                                  |
-| episodes.manage-clips        | Permet de gérer les clips vidéo ou les parties sonores du podcast #{id}.                           |
-| episodes.manage-publications | Peut publier le podcast #{id}.                                                                     |
-| episodes.manage-comments     | Peut créer/supprimer les commentaires de l'épisode du podcast #{id}.                               |
+| autorisation                 | description                                                                               |
+| ---------------------------- | ----------------------------------------------------------------------------------------- |
+| voir                         | Visualisation du tableau de bord et de l'analyse du podcast #{id}.                        |
+| éditer                       | Peut éditer le podcast #{id}.                                                             |
+| supprimer                    | Peut supprimer le podcast #{id}.                                                          |
+| gérer les importations       | Peut synchroniser le podcast importé #{id}.                                               |
+| gérer les personnes          | Permet de gérer les abonnements au podcast #{id}.                                         |
+| gérer les abonnements        | Permet de gérer les abonnements au podcast #{id}.                                         |
+| gérer contributeurs          | Permet de gérer les contributeurs du podcast #{id}.                                       |
+| gérer les plates-formes      | Peut configurer/supprimer les liens de la plateforme du podcast #{id}.                    |
+| gérer les publications       | Peut publier le podcast #{id}.                                                            |
+| gérer les notifications      | Peut afficher et marquer les notifications comme lues pour le podcast #{id}.              |
+| interagir en tant que        | Peut interagir en tant que podcast #{id} pour ajouter, partager ou répondre aux messages. |
+| episodes.view                | Peut voir le tableau de bord et les analyses du podcast #{id}.                            |
+| créer des épisodes           | Peut créer des épisodes pour le podcast #{id}.                                            |
+| éditer les épisodes          | Peut éditer le podcast #{id}.                                                             |
+| supprimer les épisodes       | Peut supprimer le podcast #{id}.                                                          |
+| episodes.manage-persons      | Permet de gérer les abonnements au podcast #{id}.                                         |
+| episodes.manage-clips        | Permet de gérer les clips vidéo ou les parties sonores du podcast #{id}.                  |
+| episodes.manage-publications | Peut publier le podcast #{id}.                                                            |
+| episodes.manage-comments     | Peut créer/supprimer les commentaires de l'épisode du podcast #{id}.                      |
 
 <!-- AUTH-PODCAST-PERMISSIONS-LIST:END -->
diff --git a/docs/src/fr/getting-started/docker.md b/docs/src/fr/getting-started/docker.md
index f24f987f105fcc9c586b3caeb46f93b19733e253..3d56585a0046b4a70733b3e3d70d9cd4e7e15d91 100644
--- a/docs/src/fr/getting-started/docker.md
+++ b/docs/src/fr/getting-started/docker.md
@@ -14,8 +14,6 @@ construction automatisée :
   with all of Castopod dependencies
 - [**`castopod/web-server`**](https://hub.docker.com/r/castopod/web-server): an
   Nginx configuration for Castopod
-- [**`castopod/video-clipper`**](https://hub.docker.com/r/castopod/video-clipper):
-  an optional image building videoclips thanks to ffmpeg
 
 De plus, Castopod nécessite une base de données compatible avec MySQL. Une base
 de données Redis peut être ajoutée en tant que gestionnaire de cache.
@@ -24,7 +22,6 @@ de données Redis peut être ajoutée en tant que gestionnaire de cache.
 
 - `développer` [unstable], la dernière version de la branche de développement
 - `beta` [stable], dernière version bêta
-- `1.0.0-beta.x` [stable], version bêta spécifique (depuis `1.0.0-beta.22`)
 - `beta` [stable], dernière version bêta
 - `1.x.x` [stable], version spécifique (depuis `1.0.0`)
 
@@ -39,7 +36,7 @@ de données Redis peut être ajoutée en tant que gestionnaire de cache.
 
     services:
       app:
-        image: castopod/app:latest
+        image: castopod/castopod:latest
         container_name: "castopod-app"
         volumes:
           - castopod-media:/var/www/castopod/public/media
@@ -113,19 +110,9 @@ de données Redis peut être ajoutée en tant que gestionnaire de cache.
 
 ## Environment Variables
 
-- **castopod/video-clipper**
-
-  | Nom de la variable         | Type (`default`) | Par défaut       |
-  | -------------------------- | ---------------- | ---------------- |
-  | **`CP_DATABASE_HOSTNAME`** | ?string          | `"mariadb"`      |
-  | **`CP_DATABASE_NAME`**     | ?string          | `MYSQL_DATABASE` |
-  | **`CP_DATABASE_USERNAME`** | ?string          | `MYSQL_USER`     |
-  | **`CP_DATABASE_PASSWORD`** | ?string          | `MYSQL_PASSWORD` |
-  | **`CP_DATABASE_PREFIX`**   | ?string          | `"cp_"`          |
-
 - **castopod/castopod** and **castopod/app**
 
-  | Variable name                         | Type (`default`)        | Par défaut       |
+  | Nom de la variable                    | Type (`default`)        | Par défaut       |
   | ------------------------------------- | ----------------------- | ---------------- |
   | **`CP_BASEURL`**                      | string                  | `undefined`      |
   | **`CP_MEDIA_BASEURL`**                | ?string                 | `CP_BASEURL`     |
@@ -165,7 +152,7 @@ de données Redis peut être ajoutée en tant que gestionnaire de cache.
 
 - **castopod/web-server**
 
-  | Nom de la variable     | Type                  | Par défaut |
+  | Variable name          | Type                  | Par défaut |
   | ---------------------- | --------------------- | ---------- |
   | **`CP_APP_HOSTNAME`**  | ?string               | `"app"`    |
   | **`CP_MAX_BODY_SIZE`** | ?number (with suffix) | `512M`     |
diff --git a/docs/src/fr/getting-started/install.md b/docs/src/fr/getting-started/install.md
index d908fa5e2c3bf26488141b32bae95786822b6178..10d15c54011621dcb0e7414d499d7695a8ad6a03 100644
--- a/docs/src/fr/getting-started/install.md
+++ b/docs/src/fr/getting-started/install.md
@@ -20,16 +20,15 @@ directement à la [documentation Docker](./docker.md) pour Castopod.
 
 ## Prérequis
 
-- PHP v8.1 ou supérieure
+- PHP v8.1 only
 - MySQL version 5.7 ou supérieure ou MariaDB version 10.2 ou supérieure
 - Prise en charge HTTPS
 - An [ntp-synced clock](https://wiki.debian.org/NTP) to validate federation's
   incoming requests
 
-### PHP v8.1 ou supérieure
+### PHP v8.1 only
 
-PHP version 8.1 ou supérieure est requise, avec les extensions suivantes
-installées :
+PHP version 8.1 is required, with the following extensions installed:
 
 - [intl](https://www.php.net/manual/fr/intl.requirements.php)
 - [libcurl](https://www.php.net/manual/fr/curl.requirements.php)
@@ -96,33 +95,22 @@ installées :
    sur le serveur web si vous ne l'avez pas déjà fait.
    - ⚠️ Faites pointer la racine du document du serveur web vers le sous-dossier
      `public/` du dossier `castopod`.
-4. Ajoutez les **tâches cron** sur votre serveur web pour les différents
-   processus d'arrière-plan (définissez les chemins selon votre configuration) :
-
-   - Pour que les fonctionnalités sociales fonctionnent correctement, cette
-     tâche est utilisée pour diffuser des activités sociales à vos abonnés sur
-     le Fédivers :
+4. Add **cron tasks** on your web server for various background processes
+   (replace the paths accordingly):
 
    ```bash
-      * * * * * /path/to/php /path/to/castopod/public/index.php scheduled-activities
+      * * * * * /path/to/php /path/to/castopod/spark tasks:run >> /dev/null 2>&1
    ```
 
-   - Pour que vos épisodes soient diffusés sur les hubs ouverts à la publication
-     en utilisant [WebSub](https://en.wikipedia.org/wiki/WebSub):
-
-   ```bash
-      * * * * * /usr/local/bin/php /castopod/public/index.php scheduled-websub-publish
-   ```
-
-   - Pour créer des clips vidéo (cf.
-     [pré-requis FFmpeg](#ffmpeg-v418-or-higher-for-video-clips) ) :
-
-   ```bash
-      * * * * * /path/to/php /path/to/castopod/public/index.php scheduled-video-clips
-   ```
+   **Note** - If you do not add this cron task, the following Castopod features
+   will not work:
 
-   > Ces tâches s'exécutent **toutes les minutes**. Vous pouvez régler la
-   > fréquence en fonction de vos besoins : toutes les 5, 10 minutes ou plus.
+   - Importing a podcast from an existing RSS feed
+   - Broadcasting social activities to your followers in the fediverse
+   - Broadcasting episodes to open hubs using
+     [WebSub](https://en.wikipedia.org/wiki/WebSub)
+   - Generating video clips -
+     [requires FFmpeg](#optional-ffmpeg-v418-or-higher-for-video-clips)
 
 ### (Méthode recommandée) Assistant d'installation
 
diff --git a/docs/src/fr/getting-started/update.md b/docs/src/fr/getting-started/update.md
index ef4f2fdb141d2dd009aa425264c583e6662f7e4d..c064bb133e7cf5b2b9e12d95faa009942f4edb8c 100644
--- a/docs/src/fr/getting-started/update.md
+++ b/docs/src/fr/getting-started/update.md
@@ -80,7 +80,7 @@ bas à gauche.
 Vous pouvez également trouver la version dans l'application
 `> Configuration > Constantes.php` dossier.
 
-### [Je n'ai pas mis à jour mon instance depuis longtemps… Que devrais-je faire ?](#i-havent-updated-my-instance-in-a-long-time-what-should-i-do)
+### Je n'ai pas mis à jour mon instance depuis longtemps… Que devrais-je faire ?
 
 Pas de problème ! Il suffit d'obtenir la dernière version comme décrit
 ci-dessus. Lorsque vous exécutez les instructions de mise à jour (4), lancez-les
diff --git a/docs/src/fr2/getting-started/docker.md b/docs/src/fr2/getting-started/docker.md
index 19ce1070a657b7bb7a765121dbf1591a3ab6bd7f..75158bd612eff7da515d5c9cf9c6754b89f77442 100644
--- a/docs/src/fr2/getting-started/docker.md
+++ b/docs/src/fr2/getting-started/docker.md
@@ -14,8 +14,6 @@ process:
   with all of Castopod dependencies
 - [**`castopod/web-server`**](https://hub.docker.com/r/castopod/web-server): an
   Nginx configuration for Castopod
-- [**`castopod/video-clipper`**](https://hub.docker.com/r/castopod/video-clipper):
-  an optional image building videoclips thanks to ffmpeg
 
 Additionally, Castopod requires a MySQL-compatible database. A Redis database
 can be added as a cache handler.
@@ -24,7 +22,6 @@ can be added as a cache handler.
 
 - `develop` [unstable], latest development branch build
 - `beta` [stable], latest beta version build
-- `1.0.0-beta.x` [stable], specific beta version build (since `1.0.0-beta.22`)
 - `latest` [stable], latest version build
 - `1.x.x` [stable], specific version build (since `1.0.0`)
 
@@ -39,7 +36,7 @@ can be added as a cache handler.
 
     services:
       app:
-        image: castopod/app:latest
+        image: castopod/castopod:latest
         container_name: "castopod-app"
         volumes:
           - castopod-media:/var/www/castopod/public/media
@@ -112,16 +109,6 @@ can be added as a cache handler.
 
 ## Environment Variables
 
-- **castopod/video-clipper**
-
-  | Variable name              | Type (`default`) | Default          |
-  | -------------------------- | ---------------- | ---------------- |
-  | **`CP_DATABASE_HOSTNAME`** | ?string          | `"mariadb"`      |
-  | **`CP_DATABASE_NAME`**     | ?string          | `MYSQL_DATABASE` |
-  | **`CP_DATABASE_USERNAME`** | ?string          | `MYSQL_USER`     |
-  | **`CP_DATABASE_PASSWORD`** | ?string          | `MYSQL_PASSWORD` |
-  | **`CP_DATABASE_PREFIX`**   | ?string          | `"cp_"`          |
-
 - **castopod/castopod** and **castopod/app**
 
   | Variable name                         | Type (`default`)        | Default          |
diff --git a/docs/src/fr2/getting-started/install.md b/docs/src/fr2/getting-started/install.md
index 03549bcc7f4cba887d1fdbe1a1ee5f1443b2dbcf..af405daf99f2e38483de298e0551dd20b46495fc 100644
--- a/docs/src/fr2/getting-started/install.md
+++ b/docs/src/fr2/getting-started/install.md
@@ -19,15 +19,15 @@ If you prefer using Docker, you may skip this and go straight to the
 
 ## Requirements
 
-- PHP v8.1 or higher
+- PHP v8.1 only
 - MySQL version 5.7 or higher or MariaDB version 10.2 or higher
 - HTTPS support
 - An [ntp-synced clock](https://wiki.debian.org/NTP) to validate federation's
   incoming requests
 
-### PHP v8.1 or higher
+### PHP v8.1 only
 
-PHP version 8.1 or higher is required, with the following extensions installed:
+PHP version 8.1 is required, with the following extensions installed:
 
 - [intl](https://php.net/manual/en/intl.requirements.php)
 - [libcurl](https://php.net/manual/en/curl.requirements.php)
@@ -94,29 +94,19 @@ want to generate Video Clips. The following extensions must be installed:
 4. Add **cron tasks** on your web server for various background processes
    (replace the paths accordingly):
 
-   - For social features to work properly, this task is used to broadcast social
-     activities to your followers on the fediverse:
-
-   ```bash
-      * * * * * /path/to/php /path/to/castopod/public/index.php scheduled-activities
-   ```
-
-   - For having your episodes be broadcasted on open hubs upon publication using
-     [WebSub](https://en.wikipedia.org/wiki/WebSub):
-
    ```bash
-      * * * * * /usr/local/bin/php /castopod/public/index.php scheduled-websub-publish
+      * * * * * /path/to/php /path/to/castopod/spark tasks:run >> /dev/null 2>&1
    ```
 
-   - For Video Clips to be created (see
-     [FFmpeg requirements](#ffmpeg-v418-or-higher-for-video-clips)):
-
-   ```bash
-      * * * * * /path/to/php /path/to/castopod/public/index.php scheduled-video-clips
-   ```
+   **Note** - If you do not add this cron task, the following Castopod features
+   will not work:
 
-   > These tasks run **every minute**. You may set the frequency depending on
-   > your needs: every 5, 10 minutes or more.
+   - Importing a podcast from an existing RSS feed
+   - Broadcasting social activities to your followers in the fediverse
+   - Broadcasting episodes to open hubs using
+     [WebSub](https://en.wikipedia.org/wiki/WebSub)
+   - Generating video clips -
+     [requires FFmpeg](#optional-ffmpeg-v418-or-higher-for-video-clips)
 
 ### (recommended) Install Wizard
 
diff --git a/docs/src/fr_CA/getting-started/docker.md b/docs/src/fr_CA/getting-started/docker.md
index 19ce1070a657b7bb7a765121dbf1591a3ab6bd7f..75158bd612eff7da515d5c9cf9c6754b89f77442 100644
--- a/docs/src/fr_CA/getting-started/docker.md
+++ b/docs/src/fr_CA/getting-started/docker.md
@@ -14,8 +14,6 @@ process:
   with all of Castopod dependencies
 - [**`castopod/web-server`**](https://hub.docker.com/r/castopod/web-server): an
   Nginx configuration for Castopod
-- [**`castopod/video-clipper`**](https://hub.docker.com/r/castopod/video-clipper):
-  an optional image building videoclips thanks to ffmpeg
 
 Additionally, Castopod requires a MySQL-compatible database. A Redis database
 can be added as a cache handler.
@@ -24,7 +22,6 @@ can be added as a cache handler.
 
 - `develop` [unstable], latest development branch build
 - `beta` [stable], latest beta version build
-- `1.0.0-beta.x` [stable], specific beta version build (since `1.0.0-beta.22`)
 - `latest` [stable], latest version build
 - `1.x.x` [stable], specific version build (since `1.0.0`)
 
@@ -39,7 +36,7 @@ can be added as a cache handler.
 
     services:
       app:
-        image: castopod/app:latest
+        image: castopod/castopod:latest
         container_name: "castopod-app"
         volumes:
           - castopod-media:/var/www/castopod/public/media
@@ -112,16 +109,6 @@ can be added as a cache handler.
 
 ## Environment Variables
 
-- **castopod/video-clipper**
-
-  | Variable name              | Type (`default`) | Default          |
-  | -------------------------- | ---------------- | ---------------- |
-  | **`CP_DATABASE_HOSTNAME`** | ?string          | `"mariadb"`      |
-  | **`CP_DATABASE_NAME`**     | ?string          | `MYSQL_DATABASE` |
-  | **`CP_DATABASE_USERNAME`** | ?string          | `MYSQL_USER`     |
-  | **`CP_DATABASE_PASSWORD`** | ?string          | `MYSQL_PASSWORD` |
-  | **`CP_DATABASE_PREFIX`**   | ?string          | `"cp_"`          |
-
 - **castopod/castopod** and **castopod/app**
 
   | Variable name                         | Type (`default`)        | Default          |
diff --git a/docs/src/fr_CA/getting-started/install.md b/docs/src/fr_CA/getting-started/install.md
index 03549bcc7f4cba887d1fdbe1a1ee5f1443b2dbcf..af405daf99f2e38483de298e0551dd20b46495fc 100644
--- a/docs/src/fr_CA/getting-started/install.md
+++ b/docs/src/fr_CA/getting-started/install.md
@@ -19,15 +19,15 @@ If you prefer using Docker, you may skip this and go straight to the
 
 ## Requirements
 
-- PHP v8.1 or higher
+- PHP v8.1 only
 - MySQL version 5.7 or higher or MariaDB version 10.2 or higher
 - HTTPS support
 - An [ntp-synced clock](https://wiki.debian.org/NTP) to validate federation's
   incoming requests
 
-### PHP v8.1 or higher
+### PHP v8.1 only
 
-PHP version 8.1 or higher is required, with the following extensions installed:
+PHP version 8.1 is required, with the following extensions installed:
 
 - [intl](https://php.net/manual/en/intl.requirements.php)
 - [libcurl](https://php.net/manual/en/curl.requirements.php)
@@ -94,29 +94,19 @@ want to generate Video Clips. The following extensions must be installed:
 4. Add **cron tasks** on your web server for various background processes
    (replace the paths accordingly):
 
-   - For social features to work properly, this task is used to broadcast social
-     activities to your followers on the fediverse:
-
-   ```bash
-      * * * * * /path/to/php /path/to/castopod/public/index.php scheduled-activities
-   ```
-
-   - For having your episodes be broadcasted on open hubs upon publication using
-     [WebSub](https://en.wikipedia.org/wiki/WebSub):
-
    ```bash
-      * * * * * /usr/local/bin/php /castopod/public/index.php scheduled-websub-publish
+      * * * * * /path/to/php /path/to/castopod/spark tasks:run >> /dev/null 2>&1
    ```
 
-   - For Video Clips to be created (see
-     [FFmpeg requirements](#ffmpeg-v418-or-higher-for-video-clips)):
-
-   ```bash
-      * * * * * /path/to/php /path/to/castopod/public/index.php scheduled-video-clips
-   ```
+   **Note** - If you do not add this cron task, the following Castopod features
+   will not work:
 
-   > These tasks run **every minute**. You may set the frequency depending on
-   > your needs: every 5, 10 minutes or more.
+   - Importing a podcast from an existing RSS feed
+   - Broadcasting social activities to your followers in the fediverse
+   - Broadcasting episodes to open hubs using
+     [WebSub](https://en.wikipedia.org/wiki/WebSub)
+   - Generating video clips -
+     [requires FFmpeg](#optional-ffmpeg-v418-or-higher-for-video-clips)
 
 ### (recommended) Install Wizard
 
diff --git a/docs/src/gd/getting-started/docker.md b/docs/src/gd/getting-started/docker.md
index 19ce1070a657b7bb7a765121dbf1591a3ab6bd7f..75158bd612eff7da515d5c9cf9c6754b89f77442 100644
--- a/docs/src/gd/getting-started/docker.md
+++ b/docs/src/gd/getting-started/docker.md
@@ -14,8 +14,6 @@ process:
   with all of Castopod dependencies
 - [**`castopod/web-server`**](https://hub.docker.com/r/castopod/web-server): an
   Nginx configuration for Castopod
-- [**`castopod/video-clipper`**](https://hub.docker.com/r/castopod/video-clipper):
-  an optional image building videoclips thanks to ffmpeg
 
 Additionally, Castopod requires a MySQL-compatible database. A Redis database
 can be added as a cache handler.
@@ -24,7 +22,6 @@ can be added as a cache handler.
 
 - `develop` [unstable], latest development branch build
 - `beta` [stable], latest beta version build
-- `1.0.0-beta.x` [stable], specific beta version build (since `1.0.0-beta.22`)
 - `latest` [stable], latest version build
 - `1.x.x` [stable], specific version build (since `1.0.0`)
 
@@ -39,7 +36,7 @@ can be added as a cache handler.
 
     services:
       app:
-        image: castopod/app:latest
+        image: castopod/castopod:latest
         container_name: "castopod-app"
         volumes:
           - castopod-media:/var/www/castopod/public/media
@@ -112,16 +109,6 @@ can be added as a cache handler.
 
 ## Environment Variables
 
-- **castopod/video-clipper**
-
-  | Variable name              | Type (`default`) | Default          |
-  | -------------------------- | ---------------- | ---------------- |
-  | **`CP_DATABASE_HOSTNAME`** | ?string          | `"mariadb"`      |
-  | **`CP_DATABASE_NAME`**     | ?string          | `MYSQL_DATABASE` |
-  | **`CP_DATABASE_USERNAME`** | ?string          | `MYSQL_USER`     |
-  | **`CP_DATABASE_PASSWORD`** | ?string          | `MYSQL_PASSWORD` |
-  | **`CP_DATABASE_PREFIX`**   | ?string          | `"cp_"`          |
-
 - **castopod/castopod** and **castopod/app**
 
   | Variable name                         | Type (`default`)        | Default          |
diff --git a/docs/src/gd/getting-started/install.md b/docs/src/gd/getting-started/install.md
index 03549bcc7f4cba887d1fdbe1a1ee5f1443b2dbcf..af405daf99f2e38483de298e0551dd20b46495fc 100644
--- a/docs/src/gd/getting-started/install.md
+++ b/docs/src/gd/getting-started/install.md
@@ -19,15 +19,15 @@ If you prefer using Docker, you may skip this and go straight to the
 
 ## Requirements
 
-- PHP v8.1 or higher
+- PHP v8.1 only
 - MySQL version 5.7 or higher or MariaDB version 10.2 or higher
 - HTTPS support
 - An [ntp-synced clock](https://wiki.debian.org/NTP) to validate federation's
   incoming requests
 
-### PHP v8.1 or higher
+### PHP v8.1 only
 
-PHP version 8.1 or higher is required, with the following extensions installed:
+PHP version 8.1 is required, with the following extensions installed:
 
 - [intl](https://php.net/manual/en/intl.requirements.php)
 - [libcurl](https://php.net/manual/en/curl.requirements.php)
@@ -94,29 +94,19 @@ want to generate Video Clips. The following extensions must be installed:
 4. Add **cron tasks** on your web server for various background processes
    (replace the paths accordingly):
 
-   - For social features to work properly, this task is used to broadcast social
-     activities to your followers on the fediverse:
-
-   ```bash
-      * * * * * /path/to/php /path/to/castopod/public/index.php scheduled-activities
-   ```
-
-   - For having your episodes be broadcasted on open hubs upon publication using
-     [WebSub](https://en.wikipedia.org/wiki/WebSub):
-
    ```bash
-      * * * * * /usr/local/bin/php /castopod/public/index.php scheduled-websub-publish
+      * * * * * /path/to/php /path/to/castopod/spark tasks:run >> /dev/null 2>&1
    ```
 
-   - For Video Clips to be created (see
-     [FFmpeg requirements](#ffmpeg-v418-or-higher-for-video-clips)):
-
-   ```bash
-      * * * * * /path/to/php /path/to/castopod/public/index.php scheduled-video-clips
-   ```
+   **Note** - If you do not add this cron task, the following Castopod features
+   will not work:
 
-   > These tasks run **every minute**. You may set the frequency depending on
-   > your needs: every 5, 10 minutes or more.
+   - Importing a podcast from an existing RSS feed
+   - Broadcasting social activities to your followers in the fediverse
+   - Broadcasting episodes to open hubs using
+     [WebSub](https://en.wikipedia.org/wiki/WebSub)
+   - Generating video clips -
+     [requires FFmpeg](#optional-ffmpeg-v418-or-higher-for-video-clips)
 
 ### (recommended) Install Wizard
 
diff --git a/docs/src/gl/getting-started/auth.md b/docs/src/gl/getting-started/auth.md
index 0faec1c66dc2bbc1497039e27cf0e56c2f881f64..ff5d59c0676113f4f1c0a2abd2b272f0686b4185 100644
--- a/docs/src/gl/getting-started/auth.md
+++ b/docs/src/gl/getting-started/auth.md
@@ -17,11 +17,11 @@ coupled with custom rules. Roles and permissions are defined at two levels:
 
 <!-- AUTH-INSTANCE-ROLES-LIST:START - Do not remove or modify this section -->
 
-| role        | description                          | permissions                                                                                |
-| ----------- | ------------------------------------ | ------------------------------------------------------------------------------------------ |
-| Super Admin | Ten control completo sobre Castopod. | admin.\*, podcasts.\*, users.manage, persons.manage, pages.manage, fediverse.manage-blocks |
-| Xestora     | Quen xestiona o contido de Castopod. | podcasts.create, podcasts.import, persons.manage, pages.manage                             |
-| Podcaster   | Usuaria común de Castopod.           | admin.access                                                                               |
+| role        | description                         | permissions                                                                                |
+| ----------- | ----------------------------------- | ------------------------------------------------------------------------------------------ |
+| Super admin | Has complete control over Castopod. | admin.\*, podcasts.\*, users.manage, persons.manage, pages.manage, fediverse.manage-blocks |
+| Manager     | Manages Castopod's content.         | podcasts.create, podcasts.import, persons.manage, pages.manage                             |
+| Podcaster   | General users of Castopod.          | admin.access                                                                               |
 
 <!-- AUTH-INSTANCE-ROLES-LIST:END -->
 
@@ -29,17 +29,17 @@ coupled with custom rules. Roles and permissions are defined at two levels:
 
 <!-- AUTH-INSTANCE-PERMISSIONS-LIST:START - Do not remove or modify this section -->
 
-| permission              | description                                                                    |
-| ----------------------- | ------------------------------------------------------------------------------ |
-| admin.access            | Pode acceder á área de administración.                                         |
-| admin.settings          | Pode acceder aos axustes de Castopod.                                          |
-| users.manage            | Pode xestionar as usuarias de Castopod.                                        |
-| persons.manage          | Pode xestionar persoas.                                                        |
-| pages.manage            | Pode xestionar páxinas.                                                        |
-| podcasts.view           | Pode ver tódolos podcast.                                                      |
-| podcasts.create         | Pode crear novos podcast.                                                      |
-| podcasts.import         | Pode importar podcasts.                                                        |
-| fediverse.manage-blocks | Pode bloquear actores/dominios do fediverso evitando interactuar con Castopod. |
+| permission              | description                                                        |
+| ----------------------- | ------------------------------------------------------------------ |
+| admin.access            | Can access the Castopod admin area.                                |
+| admin.settings          | Can access the Castopod settings.                                  |
+| users.manage            | Can manage Castopod users.                                         |
+| persons.manage          | Can manage persons.                                                |
+| pages.manage            | Can manage pages.                                                  |
+| podcasts.view           | Can view all podcasts.                                             |
+| podcasts.create         | Can create new podcasts.                                           |
+| podcasts.import         | Can import podcasts.                                               |
+| fediverse.manage-blocks | Can block fediverse actors/domains from interacting with Castopod. |
 
 <!-- AUTH-INSTANCE-PERMISSIONS-LIST:END -->
 
@@ -49,12 +49,12 @@ coupled with custom rules. Roles and permissions are defined at two levels:
 
 <!-- AUTH-PODCAST-ROLES-LIST:START - Do not remove or modify this section -->
 
-| role      | description                                                             | permissions                                                                                                                                                                                                                                                                                 |
-| --------- | ----------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
-| Admin     | Ten control total sobre o podcast #{id}.                                | \*                                                                                                                                                                                                                                                                                          |
-| Editora   | Persoa que xestiona o contido e publicacións do podcast #{id}.          | view, edit, manage-import, manage-persons, manage-platforms, manage-publications, manage-notifications, interact-as, episodes.view, episodes.create, episodes.edit, episodes.delete, episodes.manage-persons, episodes.manage-clips, episodes.manage-publications, episodes.manage-comments |
-| Autora    | Persoa que xestiona o contido do podcast #{id} pero non pode publicalo. | view, manage-persons, episodes.view, episodes.create, episodes.edit, episodes.manage-persons, episodes.manage-clips                                                                                                                                                                         |
-| Convidada | Contribuínte básico ao podcast #{id}.                                   | view, episodes.view                                                                                                                                                                                                                                                                         |
+| role   | description                                               | permissions                                                                                                                                                                                                                                                                                 |
+| ------ | --------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| Admin  | Has complete control of podcast #{id}.                    | \*                                                                                                                                                                                                                                                                                          |
+| Editor | Manages content and publications of podcast #{id}.        | view, edit, manage-import, manage-persons, manage-platforms, manage-publications, manage-notifications, interact-as, episodes.view, episodes.create, episodes.edit, episodes.delete, episodes.manage-persons, episodes.manage-clips, episodes.manage-publications, episodes.manage-comments |
+| Author | Manages content of podcast #{id} but cannot publish them. | view, manage-persons, episodes.view, episodes.create, episodes.edit, episodes.manage-persons, episodes.manage-clips                                                                                                                                                                         |
+| Guest  | General contributor of the podcast #{id}.                 | view, episodes.view                                                                                                                                                                                                                                                                         |
 
 <!-- AUTH-PODCAST-ROLES-LIST:END -->
 
@@ -62,26 +62,26 @@ coupled with custom rules. Roles and permissions are defined at two levels:
 
 <!-- AUTH-PODCAST-PERMISSIONS-LIST:START - Do not remove or modify this section -->
 
-| permission                   | description                                                                             |
-| ---------------------------- | --------------------------------------------------------------------------------------- |
-| view                         | Pode ver o taboleiro e estatísticas do podcast #{id}.                                   |
-| edit                         | Pode editar o podcast #{id}.                                                            |
-| delete                       | Pode eliminar o podcast #{id}.                                                          |
-| manage-import                | Pode sincronizar o podcast importado #{id}.                                             |
-| manage-persons               | Pode xestionar as subscricións do podcast #{id}.                                        |
-| manage-subscriptions         | Pode xestionar as subscricións do podcast #{id}.                                        |
-| manage-contributors          | Pode xestionar as contribucións ao podcast #{id}.                                       |
-| manage-platforms             | Pode establecer/eliminar ligazóns a plataformas do podcast #{id}.                       |
-| manage-publications          | Pode publicar o podcast #{id}.                                                          |
-| manage-notifications         | Pode ver e marcar as notificacións como lidas no podcast #{id}.                         |
-| interact-as                  | Pode actuar como o podcast #{id} para compartir, favorecer ou responder a publicacións. |
-| episodes.view                | Pode ver o taboleiro e estatísticas do podcast #{id}.                                   |
-| episodes.create              | Pode crear episodios para o podcast #{id}.                                              |
-| episodes.edit                | Pode editar o podcast #{id}.                                                            |
-| episodes.delete              | Pode eliminar o podcast #{id}.                                                          |
-| episodes.manage-persons      | Pode xestionar as subscricións do podcast #{id}.                                        |
-| episodes.manage-clips        | Pode xestionar os clips de vídeo e extractos de audio do podcast #{id}.                 |
-| episodes.manage-publications | Pode publicar o podcast #{id}.                                                          |
-| episodes.manage-comments     | Pode crear/eliminar comentarios dos episodios do podcast #{id}.                         |
+| permission                   | description                                                              |
+| ---------------------------- | ------------------------------------------------------------------------ |
+| view                         | Can view dashboard and analytics of podcast #{id}.                       |
+| edit                         | Can edit podcast #{id}.                                                  |
+| delete                       | Can delete podcast #{id}.                                                |
+| manage-import                | Can synchronize imported podcast #{id}.                                  |
+| manage-persons               | Can manage subscriptions of podcast #{id}.                               |
+| manage-subscriptions         | Can manage subscriptions of podcast #{id}.                               |
+| manage-contributors          | Can manage contributors of podcast #{id}.                                |
+| manage-platforms             | Can set/remove platform links of podcast #{id}.                          |
+| manage-publications          | Can publish podcast #{id}.                                               |
+| manage-notifications         | Can view and mark notifications as read for podcast #{id}.               |
+| interact-as                  | Can interact as the podcast #{id} to favourite, share or reply to posts. |
+| episodes.view                | Can view dashboard and analytics of podcast #{id}.                       |
+| episodes.create              | Can create episodes for podcast #{id}.                                   |
+| episodes.edit                | Can edit podcast #{id}.                                                  |
+| episodes.delete              | Can delete podcast #{id}.                                                |
+| episodes.manage-persons      | Can manage subscriptions of podcast #{id}.                               |
+| episodes.manage-clips        | Can manage video clips or soundbites of podcast #{id}.                   |
+| episodes.manage-publications | Can publish podcast #{id}.                                               |
+| episodes.manage-comments     | Can create/remove episode comments of podcast #{id}.                     |
 
 <!-- AUTH-PODCAST-PERMISSIONS-LIST:END -->
diff --git a/docs/src/gl/getting-started/docker.md b/docs/src/gl/getting-started/docker.md
index 19ce1070a657b7bb7a765121dbf1591a3ab6bd7f..75158bd612eff7da515d5c9cf9c6754b89f77442 100644
--- a/docs/src/gl/getting-started/docker.md
+++ b/docs/src/gl/getting-started/docker.md
@@ -14,8 +14,6 @@ process:
   with all of Castopod dependencies
 - [**`castopod/web-server`**](https://hub.docker.com/r/castopod/web-server): an
   Nginx configuration for Castopod
-- [**`castopod/video-clipper`**](https://hub.docker.com/r/castopod/video-clipper):
-  an optional image building videoclips thanks to ffmpeg
 
 Additionally, Castopod requires a MySQL-compatible database. A Redis database
 can be added as a cache handler.
@@ -24,7 +22,6 @@ can be added as a cache handler.
 
 - `develop` [unstable], latest development branch build
 - `beta` [stable], latest beta version build
-- `1.0.0-beta.x` [stable], specific beta version build (since `1.0.0-beta.22`)
 - `latest` [stable], latest version build
 - `1.x.x` [stable], specific version build (since `1.0.0`)
 
@@ -39,7 +36,7 @@ can be added as a cache handler.
 
     services:
       app:
-        image: castopod/app:latest
+        image: castopod/castopod:latest
         container_name: "castopod-app"
         volumes:
           - castopod-media:/var/www/castopod/public/media
@@ -112,16 +109,6 @@ can be added as a cache handler.
 
 ## Environment Variables
 
-- **castopod/video-clipper**
-
-  | Variable name              | Type (`default`) | Default          |
-  | -------------------------- | ---------------- | ---------------- |
-  | **`CP_DATABASE_HOSTNAME`** | ?string          | `"mariadb"`      |
-  | **`CP_DATABASE_NAME`**     | ?string          | `MYSQL_DATABASE` |
-  | **`CP_DATABASE_USERNAME`** | ?string          | `MYSQL_USER`     |
-  | **`CP_DATABASE_PASSWORD`** | ?string          | `MYSQL_PASSWORD` |
-  | **`CP_DATABASE_PREFIX`**   | ?string          | `"cp_"`          |
-
 - **castopod/castopod** and **castopod/app**
 
   | Variable name                         | Type (`default`)        | Default          |
diff --git a/docs/src/gl/getting-started/install.md b/docs/src/gl/getting-started/install.md
index 03549bcc7f4cba887d1fdbe1a1ee5f1443b2dbcf..af405daf99f2e38483de298e0551dd20b46495fc 100644
--- a/docs/src/gl/getting-started/install.md
+++ b/docs/src/gl/getting-started/install.md
@@ -19,15 +19,15 @@ If you prefer using Docker, you may skip this and go straight to the
 
 ## Requirements
 
-- PHP v8.1 or higher
+- PHP v8.1 only
 - MySQL version 5.7 or higher or MariaDB version 10.2 or higher
 - HTTPS support
 - An [ntp-synced clock](https://wiki.debian.org/NTP) to validate federation's
   incoming requests
 
-### PHP v8.1 or higher
+### PHP v8.1 only
 
-PHP version 8.1 or higher is required, with the following extensions installed:
+PHP version 8.1 is required, with the following extensions installed:
 
 - [intl](https://php.net/manual/en/intl.requirements.php)
 - [libcurl](https://php.net/manual/en/curl.requirements.php)
@@ -94,29 +94,19 @@ want to generate Video Clips. The following extensions must be installed:
 4. Add **cron tasks** on your web server for various background processes
    (replace the paths accordingly):
 
-   - For social features to work properly, this task is used to broadcast social
-     activities to your followers on the fediverse:
-
-   ```bash
-      * * * * * /path/to/php /path/to/castopod/public/index.php scheduled-activities
-   ```
-
-   - For having your episodes be broadcasted on open hubs upon publication using
-     [WebSub](https://en.wikipedia.org/wiki/WebSub):
-
    ```bash
-      * * * * * /usr/local/bin/php /castopod/public/index.php scheduled-websub-publish
+      * * * * * /path/to/php /path/to/castopod/spark tasks:run >> /dev/null 2>&1
    ```
 
-   - For Video Clips to be created (see
-     [FFmpeg requirements](#ffmpeg-v418-or-higher-for-video-clips)):
-
-   ```bash
-      * * * * * /path/to/php /path/to/castopod/public/index.php scheduled-video-clips
-   ```
+   **Note** - If you do not add this cron task, the following Castopod features
+   will not work:
 
-   > These tasks run **every minute**. You may set the frequency depending on
-   > your needs: every 5, 10 minutes or more.
+   - Importing a podcast from an existing RSS feed
+   - Broadcasting social activities to your followers in the fediverse
+   - Broadcasting episodes to open hubs using
+     [WebSub](https://en.wikipedia.org/wiki/WebSub)
+   - Generating video clips -
+     [requires FFmpeg](#optional-ffmpeg-v418-or-higher-for-video-clips)
 
 ### (recommended) Install Wizard
 
diff --git a/docs/src/id/getting-started/docker.md b/docs/src/id/getting-started/docker.md
index 19ce1070a657b7bb7a765121dbf1591a3ab6bd7f..75158bd612eff7da515d5c9cf9c6754b89f77442 100644
--- a/docs/src/id/getting-started/docker.md
+++ b/docs/src/id/getting-started/docker.md
@@ -14,8 +14,6 @@ process:
   with all of Castopod dependencies
 - [**`castopod/web-server`**](https://hub.docker.com/r/castopod/web-server): an
   Nginx configuration for Castopod
-- [**`castopod/video-clipper`**](https://hub.docker.com/r/castopod/video-clipper):
-  an optional image building videoclips thanks to ffmpeg
 
 Additionally, Castopod requires a MySQL-compatible database. A Redis database
 can be added as a cache handler.
@@ -24,7 +22,6 @@ can be added as a cache handler.
 
 - `develop` [unstable], latest development branch build
 - `beta` [stable], latest beta version build
-- `1.0.0-beta.x` [stable], specific beta version build (since `1.0.0-beta.22`)
 - `latest` [stable], latest version build
 - `1.x.x` [stable], specific version build (since `1.0.0`)
 
@@ -39,7 +36,7 @@ can be added as a cache handler.
 
     services:
       app:
-        image: castopod/app:latest
+        image: castopod/castopod:latest
         container_name: "castopod-app"
         volumes:
           - castopod-media:/var/www/castopod/public/media
@@ -112,16 +109,6 @@ can be added as a cache handler.
 
 ## Environment Variables
 
-- **castopod/video-clipper**
-
-  | Variable name              | Type (`default`) | Default          |
-  | -------------------------- | ---------------- | ---------------- |
-  | **`CP_DATABASE_HOSTNAME`** | ?string          | `"mariadb"`      |
-  | **`CP_DATABASE_NAME`**     | ?string          | `MYSQL_DATABASE` |
-  | **`CP_DATABASE_USERNAME`** | ?string          | `MYSQL_USER`     |
-  | **`CP_DATABASE_PASSWORD`** | ?string          | `MYSQL_PASSWORD` |
-  | **`CP_DATABASE_PREFIX`**   | ?string          | `"cp_"`          |
-
 - **castopod/castopod** and **castopod/app**
 
   | Variable name                         | Type (`default`)        | Default          |
diff --git a/docs/src/id/getting-started/install.md b/docs/src/id/getting-started/install.md
index 03549bcc7f4cba887d1fdbe1a1ee5f1443b2dbcf..af405daf99f2e38483de298e0551dd20b46495fc 100644
--- a/docs/src/id/getting-started/install.md
+++ b/docs/src/id/getting-started/install.md
@@ -19,15 +19,15 @@ If you prefer using Docker, you may skip this and go straight to the
 
 ## Requirements
 
-- PHP v8.1 or higher
+- PHP v8.1 only
 - MySQL version 5.7 or higher or MariaDB version 10.2 or higher
 - HTTPS support
 - An [ntp-synced clock](https://wiki.debian.org/NTP) to validate federation's
   incoming requests
 
-### PHP v8.1 or higher
+### PHP v8.1 only
 
-PHP version 8.1 or higher is required, with the following extensions installed:
+PHP version 8.1 is required, with the following extensions installed:
 
 - [intl](https://php.net/manual/en/intl.requirements.php)
 - [libcurl](https://php.net/manual/en/curl.requirements.php)
@@ -94,29 +94,19 @@ want to generate Video Clips. The following extensions must be installed:
 4. Add **cron tasks** on your web server for various background processes
    (replace the paths accordingly):
 
-   - For social features to work properly, this task is used to broadcast social
-     activities to your followers on the fediverse:
-
-   ```bash
-      * * * * * /path/to/php /path/to/castopod/public/index.php scheduled-activities
-   ```
-
-   - For having your episodes be broadcasted on open hubs upon publication using
-     [WebSub](https://en.wikipedia.org/wiki/WebSub):
-
    ```bash
-      * * * * * /usr/local/bin/php /castopod/public/index.php scheduled-websub-publish
+      * * * * * /path/to/php /path/to/castopod/spark tasks:run >> /dev/null 2>&1
    ```
 
-   - For Video Clips to be created (see
-     [FFmpeg requirements](#ffmpeg-v418-or-higher-for-video-clips)):
-
-   ```bash
-      * * * * * /path/to/php /path/to/castopod/public/index.php scheduled-video-clips
-   ```
+   **Note** - If you do not add this cron task, the following Castopod features
+   will not work:
 
-   > These tasks run **every minute**. You may set the frequency depending on
-   > your needs: every 5, 10 minutes or more.
+   - Importing a podcast from an existing RSS feed
+   - Broadcasting social activities to your followers in the fediverse
+   - Broadcasting episodes to open hubs using
+     [WebSub](https://en.wikipedia.org/wiki/WebSub)
+   - Generating video clips -
+     [requires FFmpeg](#optional-ffmpeg-v418-or-higher-for-video-clips)
 
 ### (recommended) Install Wizard
 
diff --git a/docs/src/it/getting-started/docker.md b/docs/src/it/getting-started/docker.md
index 19ce1070a657b7bb7a765121dbf1591a3ab6bd7f..75158bd612eff7da515d5c9cf9c6754b89f77442 100644
--- a/docs/src/it/getting-started/docker.md
+++ b/docs/src/it/getting-started/docker.md
@@ -14,8 +14,6 @@ process:
   with all of Castopod dependencies
 - [**`castopod/web-server`**](https://hub.docker.com/r/castopod/web-server): an
   Nginx configuration for Castopod
-- [**`castopod/video-clipper`**](https://hub.docker.com/r/castopod/video-clipper):
-  an optional image building videoclips thanks to ffmpeg
 
 Additionally, Castopod requires a MySQL-compatible database. A Redis database
 can be added as a cache handler.
@@ -24,7 +22,6 @@ can be added as a cache handler.
 
 - `develop` [unstable], latest development branch build
 - `beta` [stable], latest beta version build
-- `1.0.0-beta.x` [stable], specific beta version build (since `1.0.0-beta.22`)
 - `latest` [stable], latest version build
 - `1.x.x` [stable], specific version build (since `1.0.0`)
 
@@ -39,7 +36,7 @@ can be added as a cache handler.
 
     services:
       app:
-        image: castopod/app:latest
+        image: castopod/castopod:latest
         container_name: "castopod-app"
         volumes:
           - castopod-media:/var/www/castopod/public/media
@@ -112,16 +109,6 @@ can be added as a cache handler.
 
 ## Environment Variables
 
-- **castopod/video-clipper**
-
-  | Variable name              | Type (`default`) | Default          |
-  | -------------------------- | ---------------- | ---------------- |
-  | **`CP_DATABASE_HOSTNAME`** | ?string          | `"mariadb"`      |
-  | **`CP_DATABASE_NAME`**     | ?string          | `MYSQL_DATABASE` |
-  | **`CP_DATABASE_USERNAME`** | ?string          | `MYSQL_USER`     |
-  | **`CP_DATABASE_PASSWORD`** | ?string          | `MYSQL_PASSWORD` |
-  | **`CP_DATABASE_PREFIX`**   | ?string          | `"cp_"`          |
-
 - **castopod/castopod** and **castopod/app**
 
   | Variable name                         | Type (`default`)        | Default          |
diff --git a/docs/src/it/getting-started/install.md b/docs/src/it/getting-started/install.md
index 03549bcc7f4cba887d1fdbe1a1ee5f1443b2dbcf..af405daf99f2e38483de298e0551dd20b46495fc 100644
--- a/docs/src/it/getting-started/install.md
+++ b/docs/src/it/getting-started/install.md
@@ -19,15 +19,15 @@ If you prefer using Docker, you may skip this and go straight to the
 
 ## Requirements
 
-- PHP v8.1 or higher
+- PHP v8.1 only
 - MySQL version 5.7 or higher or MariaDB version 10.2 or higher
 - HTTPS support
 - An [ntp-synced clock](https://wiki.debian.org/NTP) to validate federation's
   incoming requests
 
-### PHP v8.1 or higher
+### PHP v8.1 only
 
-PHP version 8.1 or higher is required, with the following extensions installed:
+PHP version 8.1 is required, with the following extensions installed:
 
 - [intl](https://php.net/manual/en/intl.requirements.php)
 - [libcurl](https://php.net/manual/en/curl.requirements.php)
@@ -94,29 +94,19 @@ want to generate Video Clips. The following extensions must be installed:
 4. Add **cron tasks** on your web server for various background processes
    (replace the paths accordingly):
 
-   - For social features to work properly, this task is used to broadcast social
-     activities to your followers on the fediverse:
-
-   ```bash
-      * * * * * /path/to/php /path/to/castopod/public/index.php scheduled-activities
-   ```
-
-   - For having your episodes be broadcasted on open hubs upon publication using
-     [WebSub](https://en.wikipedia.org/wiki/WebSub):
-
    ```bash
-      * * * * * /usr/local/bin/php /castopod/public/index.php scheduled-websub-publish
+      * * * * * /path/to/php /path/to/castopod/spark tasks:run >> /dev/null 2>&1
    ```
 
-   - For Video Clips to be created (see
-     [FFmpeg requirements](#ffmpeg-v418-or-higher-for-video-clips)):
-
-   ```bash
-      * * * * * /path/to/php /path/to/castopod/public/index.php scheduled-video-clips
-   ```
+   **Note** - If you do not add this cron task, the following Castopod features
+   will not work:
 
-   > These tasks run **every minute**. You may set the frequency depending on
-   > your needs: every 5, 10 minutes or more.
+   - Importing a podcast from an existing RSS feed
+   - Broadcasting social activities to your followers in the fediverse
+   - Broadcasting episodes to open hubs using
+     [WebSub](https://en.wikipedia.org/wiki/WebSub)
+   - Generating video clips -
+     [requires FFmpeg](#optional-ffmpeg-v418-or-higher-for-video-clips)
 
 ### (recommended) Install Wizard
 
diff --git a/docs/src/ko/getting-started/docker.md b/docs/src/ko/getting-started/docker.md
index 19ce1070a657b7bb7a765121dbf1591a3ab6bd7f..75158bd612eff7da515d5c9cf9c6754b89f77442 100644
--- a/docs/src/ko/getting-started/docker.md
+++ b/docs/src/ko/getting-started/docker.md
@@ -14,8 +14,6 @@ process:
   with all of Castopod dependencies
 - [**`castopod/web-server`**](https://hub.docker.com/r/castopod/web-server): an
   Nginx configuration for Castopod
-- [**`castopod/video-clipper`**](https://hub.docker.com/r/castopod/video-clipper):
-  an optional image building videoclips thanks to ffmpeg
 
 Additionally, Castopod requires a MySQL-compatible database. A Redis database
 can be added as a cache handler.
@@ -24,7 +22,6 @@ can be added as a cache handler.
 
 - `develop` [unstable], latest development branch build
 - `beta` [stable], latest beta version build
-- `1.0.0-beta.x` [stable], specific beta version build (since `1.0.0-beta.22`)
 - `latest` [stable], latest version build
 - `1.x.x` [stable], specific version build (since `1.0.0`)
 
@@ -39,7 +36,7 @@ can be added as a cache handler.
 
     services:
       app:
-        image: castopod/app:latest
+        image: castopod/castopod:latest
         container_name: "castopod-app"
         volumes:
           - castopod-media:/var/www/castopod/public/media
@@ -112,16 +109,6 @@ can be added as a cache handler.
 
 ## Environment Variables
 
-- **castopod/video-clipper**
-
-  | Variable name              | Type (`default`) | Default          |
-  | -------------------------- | ---------------- | ---------------- |
-  | **`CP_DATABASE_HOSTNAME`** | ?string          | `"mariadb"`      |
-  | **`CP_DATABASE_NAME`**     | ?string          | `MYSQL_DATABASE` |
-  | **`CP_DATABASE_USERNAME`** | ?string          | `MYSQL_USER`     |
-  | **`CP_DATABASE_PASSWORD`** | ?string          | `MYSQL_PASSWORD` |
-  | **`CP_DATABASE_PREFIX`**   | ?string          | `"cp_"`          |
-
 - **castopod/castopod** and **castopod/app**
 
   | Variable name                         | Type (`default`)        | Default          |
diff --git a/docs/src/ko/getting-started/install.md b/docs/src/ko/getting-started/install.md
index bdf7e6a43f2f96c7e4a0fb13fdacfdd388f8c686..af405daf99f2e38483de298e0551dd20b46495fc 100644
--- a/docs/src/ko/getting-started/install.md
+++ b/docs/src/ko/getting-started/install.md
@@ -19,15 +19,15 @@ If you prefer using Docker, you may skip this and go straight to the
 
 ## Requirements
 
-- PHP v8.0 or higher
+- PHP v8.1 only
 - MySQL version 5.7 or higher or MariaDB version 10.2 or higher
 - HTTPS support
 - An [ntp-synced clock](https://wiki.debian.org/NTP) to validate federation's
   incoming requests
 
-### PHP v8.0 or higher
+### PHP v8.1 only
 
-PHP version 8.0 or higher is required, with the following extensions installed:
+PHP version 8.1 is required, with the following extensions installed:
 
 - [intl](https://php.net/manual/en/intl.requirements.php)
 - [libcurl](https://php.net/manual/en/curl.requirements.php)
@@ -94,29 +94,19 @@ want to generate Video Clips. The following extensions must be installed:
 4. Add **cron tasks** on your web server for various background processes
    (replace the paths accordingly):
 
-   - For social features to work properly, this task is used to broadcast social
-     activities to your followers on the fediverse:
-
-   ```bash
-      * * * * * /path/to/php /path/to/castopod/public/index.php scheduled-activities
-   ```
-
-   - For having your episodes be broadcasted on open hubs upon publication using
-     [WebSub](https://en.wikipedia.org/wiki/WebSub):
-
    ```bash
-      * * * * * /usr/local/bin/php /castopod/public/index.php scheduled-websub-publish
+      * * * * * /path/to/php /path/to/castopod/spark tasks:run >> /dev/null 2>&1
    ```
 
-   - For Video Clips to be created (see
-     [FFmpeg requirements](#ffmpeg-v418-or-higher-for-video-clips)):
-
-   ```bash
-      * * * * * /path/to/php /path/to/castopod/public/index.php scheduled-video-clips
-   ```
+   **Note** - If you do not add this cron task, the following Castopod features
+   will not work:
 
-   > These tasks run **every minute**. You may set the frequency depending on
-   > your needs: every 5, 10 minutes or more.
+   - Importing a podcast from an existing RSS feed
+   - Broadcasting social activities to your followers in the fediverse
+   - Broadcasting episodes to open hubs using
+     [WebSub](https://en.wikipedia.org/wiki/WebSub)
+   - Generating video clips -
+     [requires FFmpeg](#optional-ffmpeg-v418-or-higher-for-video-clips)
 
 ### (recommended) Install Wizard
 
diff --git a/docs/src/nl/getting-started/docker.md b/docs/src/nl/getting-started/docker.md
index 19ce1070a657b7bb7a765121dbf1591a3ab6bd7f..75158bd612eff7da515d5c9cf9c6754b89f77442 100644
--- a/docs/src/nl/getting-started/docker.md
+++ b/docs/src/nl/getting-started/docker.md
@@ -14,8 +14,6 @@ process:
   with all of Castopod dependencies
 - [**`castopod/web-server`**](https://hub.docker.com/r/castopod/web-server): an
   Nginx configuration for Castopod
-- [**`castopod/video-clipper`**](https://hub.docker.com/r/castopod/video-clipper):
-  an optional image building videoclips thanks to ffmpeg
 
 Additionally, Castopod requires a MySQL-compatible database. A Redis database
 can be added as a cache handler.
@@ -24,7 +22,6 @@ can be added as a cache handler.
 
 - `develop` [unstable], latest development branch build
 - `beta` [stable], latest beta version build
-- `1.0.0-beta.x` [stable], specific beta version build (since `1.0.0-beta.22`)
 - `latest` [stable], latest version build
 - `1.x.x` [stable], specific version build (since `1.0.0`)
 
@@ -39,7 +36,7 @@ can be added as a cache handler.
 
     services:
       app:
-        image: castopod/app:latest
+        image: castopod/castopod:latest
         container_name: "castopod-app"
         volumes:
           - castopod-media:/var/www/castopod/public/media
@@ -112,16 +109,6 @@ can be added as a cache handler.
 
 ## Environment Variables
 
-- **castopod/video-clipper**
-
-  | Variable name              | Type (`default`) | Default          |
-  | -------------------------- | ---------------- | ---------------- |
-  | **`CP_DATABASE_HOSTNAME`** | ?string          | `"mariadb"`      |
-  | **`CP_DATABASE_NAME`**     | ?string          | `MYSQL_DATABASE` |
-  | **`CP_DATABASE_USERNAME`** | ?string          | `MYSQL_USER`     |
-  | **`CP_DATABASE_PASSWORD`** | ?string          | `MYSQL_PASSWORD` |
-  | **`CP_DATABASE_PREFIX`**   | ?string          | `"cp_"`          |
-
 - **castopod/castopod** and **castopod/app**
 
   | Variable name                         | Type (`default`)        | Default          |
diff --git a/docs/src/nl/getting-started/install.md b/docs/src/nl/getting-started/install.md
index 03549bcc7f4cba887d1fdbe1a1ee5f1443b2dbcf..af405daf99f2e38483de298e0551dd20b46495fc 100644
--- a/docs/src/nl/getting-started/install.md
+++ b/docs/src/nl/getting-started/install.md
@@ -19,15 +19,15 @@ If you prefer using Docker, you may skip this and go straight to the
 
 ## Requirements
 
-- PHP v8.1 or higher
+- PHP v8.1 only
 - MySQL version 5.7 or higher or MariaDB version 10.2 or higher
 - HTTPS support
 - An [ntp-synced clock](https://wiki.debian.org/NTP) to validate federation's
   incoming requests
 
-### PHP v8.1 or higher
+### PHP v8.1 only
 
-PHP version 8.1 or higher is required, with the following extensions installed:
+PHP version 8.1 is required, with the following extensions installed:
 
 - [intl](https://php.net/manual/en/intl.requirements.php)
 - [libcurl](https://php.net/manual/en/curl.requirements.php)
@@ -94,29 +94,19 @@ want to generate Video Clips. The following extensions must be installed:
 4. Add **cron tasks** on your web server for various background processes
    (replace the paths accordingly):
 
-   - For social features to work properly, this task is used to broadcast social
-     activities to your followers on the fediverse:
-
-   ```bash
-      * * * * * /path/to/php /path/to/castopod/public/index.php scheduled-activities
-   ```
-
-   - For having your episodes be broadcasted on open hubs upon publication using
-     [WebSub](https://en.wikipedia.org/wiki/WebSub):
-
    ```bash
-      * * * * * /usr/local/bin/php /castopod/public/index.php scheduled-websub-publish
+      * * * * * /path/to/php /path/to/castopod/spark tasks:run >> /dev/null 2>&1
    ```
 
-   - For Video Clips to be created (see
-     [FFmpeg requirements](#ffmpeg-v418-or-higher-for-video-clips)):
-
-   ```bash
-      * * * * * /path/to/php /path/to/castopod/public/index.php scheduled-video-clips
-   ```
+   **Note** - If you do not add this cron task, the following Castopod features
+   will not work:
 
-   > These tasks run **every minute**. You may set the frequency depending on
-   > your needs: every 5, 10 minutes or more.
+   - Importing a podcast from an existing RSS feed
+   - Broadcasting social activities to your followers in the fediverse
+   - Broadcasting episodes to open hubs using
+     [WebSub](https://en.wikipedia.org/wiki/WebSub)
+   - Generating video clips -
+     [requires FFmpeg](#optional-ffmpeg-v418-or-higher-for-video-clips)
 
 ### (recommended) Install Wizard
 
diff --git a/docs/src/nn-NO/getting-started/docker.md b/docs/src/nn-NO/getting-started/docker.md
index 19ce1070a657b7bb7a765121dbf1591a3ab6bd7f..75158bd612eff7da515d5c9cf9c6754b89f77442 100644
--- a/docs/src/nn-NO/getting-started/docker.md
+++ b/docs/src/nn-NO/getting-started/docker.md
@@ -14,8 +14,6 @@ process:
   with all of Castopod dependencies
 - [**`castopod/web-server`**](https://hub.docker.com/r/castopod/web-server): an
   Nginx configuration for Castopod
-- [**`castopod/video-clipper`**](https://hub.docker.com/r/castopod/video-clipper):
-  an optional image building videoclips thanks to ffmpeg
 
 Additionally, Castopod requires a MySQL-compatible database. A Redis database
 can be added as a cache handler.
@@ -24,7 +22,6 @@ can be added as a cache handler.
 
 - `develop` [unstable], latest development branch build
 - `beta` [stable], latest beta version build
-- `1.0.0-beta.x` [stable], specific beta version build (since `1.0.0-beta.22`)
 - `latest` [stable], latest version build
 - `1.x.x` [stable], specific version build (since `1.0.0`)
 
@@ -39,7 +36,7 @@ can be added as a cache handler.
 
     services:
       app:
-        image: castopod/app:latest
+        image: castopod/castopod:latest
         container_name: "castopod-app"
         volumes:
           - castopod-media:/var/www/castopod/public/media
@@ -112,16 +109,6 @@ can be added as a cache handler.
 
 ## Environment Variables
 
-- **castopod/video-clipper**
-
-  | Variable name              | Type (`default`) | Default          |
-  | -------------------------- | ---------------- | ---------------- |
-  | **`CP_DATABASE_HOSTNAME`** | ?string          | `"mariadb"`      |
-  | **`CP_DATABASE_NAME`**     | ?string          | `MYSQL_DATABASE` |
-  | **`CP_DATABASE_USERNAME`** | ?string          | `MYSQL_USER`     |
-  | **`CP_DATABASE_PASSWORD`** | ?string          | `MYSQL_PASSWORD` |
-  | **`CP_DATABASE_PREFIX`**   | ?string          | `"cp_"`          |
-
 - **castopod/castopod** and **castopod/app**
 
   | Variable name                         | Type (`default`)        | Default          |
diff --git a/docs/src/nn-NO/getting-started/install.md b/docs/src/nn-NO/getting-started/install.md
index 39a95ee784285ec6daf68678843f177b11bca052..188ddeb5fcb9907c00c22b0d0bd3dabf8d3b191d 100644
--- a/docs/src/nn-NO/getting-started/install.md
+++ b/docs/src/nn-NO/getting-started/install.md
@@ -9,26 +9,26 @@ Det er meininga at Castopod skal vera lett å installera. Uansett om du bruker
 eige eller delt vevhotell, kan du installera på dei fleste maskiner som har PHP
 og MySQL.
 
-::: tip Note
+::: tip Notat
 
-We've released official Docker images for Castopod!
+Me har laga offisielle Docker-biletfiler for Castopod!
 
-If you prefer using Docker, you may skip this and go straight to the
-[docker documentation](./docker.md) for Castopod.
+Viss du helst vil bruka Docker, kan du hoppa over dette og gå rett til
+[docker-dokumentasjonen](./docker.md) for Castopod.
 
 :::
 
 ## Krav
 
-- PHP v8.1 eller nyare
+- PHP v8.1 only
 - MySQL versjon 5.7 eller nyare, eller MariaDB versjon 10.2 eller nyare
 - Støtte for HTTPS
-- An [ntp-synced clock](https://wiki.debian.org/NTP) to validate federation's
-  incoming requests
+- Ei [ntp-synkronisert klokke](https://wiki.debian.org/NTP) for å stadfesta
+  innkomande førespurnader frå allheimen
 
-### PHP v8.1 eller nyare
+### PHP v8.1 only
 
-PHP version 8.1 or higher is required, with the following extensions installed:
+PHP version 8.1 is required, with the following extensions installed:
 
 - [intl](https://php.net/manual/en/intl.requirements.php)
 - [libcurl](https://php.net/manual/en/curl.requirements.php)
@@ -37,7 +37,8 @@ PHP version 8.1 or higher is required, with the following extensions installed:
   **PNG**- og **WEBP**-biblioteka.
 - [exif](https://www.php.net/manual/en/exif.installation.php)
 
-Additionally, make sure that the following extensions are enabled in your PHP:
+I tillegg må du passa på at desse utvidingane er skrudde på i PHP-installasjonen
+din:
 
 - json (vanlegvis aktivt - ikkje skru det av)
 - xml (vanlegvis aktivt - ikkje skru det av)
@@ -47,28 +48,28 @@ Additionally, make sure that the following extensions are enabled in your PHP:
 
 > Me tilrår [MariaDB](https://mariadb.org).
 
-::: warning Warning
+::: warning Ã…tvaring
 
-Castopod only works with supported MySQL 5.7 or higher compatible databases. It
-will break with the previous MySQL v5.6 for example as its end of life was on
-February 5, 2021.
+Castopod verkar berre med databasar som støttar MySQL 5.7 eller nyare. MySQL 5.6
+eller eldre vil ikkje fungera, ettersom den versjonen vart forelda 5.
+februar 2021.
 
 :::
 
-You will need the server hostname, database name, username and password to
-complete the installation process. If you do not have these, please contact your
-server administrator.
+Du treng vertsnamnet til tenaren, databasenamnet, brukarnamnet og passordet til
+databasen for å fullføra installeringa. Viss du ikkje har desse, må du kontakta
+administratoren for tenarmaskina di.
 
 #### Tilgangsrettar
 
-User must have at least these privileges on the database for Castopod to work:
-`CREATE`, `ALTER`, `DELETE`, `EXECUTE`, `INDEX`, `INSERT`, `SELECT`, `UPDATE`,
-`REFERENCES`, `CREATE VIEW`.
+Brukaren må minst ha desse tilgangsrettane på databasen for at Castopod skal
+fungera: `CREATE`, `ALTER`, `DELETE`, `EXECUTE`, `INDEX`, `INSERT`, `SELECT`,
+`UPDATE`, `REFERENCES`, `CREATE VIEW`.
 
 ### (Eventuelt) FFmpeg v4.1.8 eller nyare for filmklypp
 
-[FFmpeg](https://www.ffmpeg.org/) version 4.1.8 or higher is required if you
-want to generate Video Clips. The following extensions must be installed:
+Du treng [FFmpeg](https://www.ffmpeg.org/) versjon 4.1.8 viss du vil laga
+filmklypp. Desse utvidingane må vera installerte:
 
 - **FreeType 2**-biblioteket for
   [gd](https://www.php.net/manual/en/image.installation.php).
@@ -91,32 +92,22 @@ want to generate Video Clips. The following extensions must be installed:
    vevtenaren din, om du ikkje allereie har gjort det.
    - ⚠️ Set dokumentrota til vevtenaren til undermappa `public/` i
      `castopod`-mappa.
-4. Lag **cron-oppgåver** på vevtenaren din for ulike bakgrunnsprosessar (byt ut
-   stiane så dei passar til oppsettet ditt):
-
-   - For at sosiale funksjonar skal fungera, trengst denne oppgåva for å
-     kringkasta sosiale aktivitetar til fylgjarane dine på fødiverset:
-
-   ```bash
-      * * * * * /sti/til/php /sti/til/castopod/public/index.php scheduled-activities
-   ```
-
-   - For å kringkasta episodane på opne nettnav som bruker
-     [WebSub](https://en.wikipedia.org/wiki/WebSub):
+4. Add **cron tasks** on your web server for various background processes
+   (replace the paths accordingly):
 
    ```bash
-      * * * * * /usr/local/bin/php /castopod/public/index.php scheduled-websub-publish
+      * * * * * /path/to/php /path/to/castopod/spark tasks:run >> /dev/null 2>&1
    ```
 
-   - For å laga filmklypp (sjå
-     [FFmpeg-krava](#ffmpeg-v418-or-higher-for-video-clips)):
-
-   ```bash
-      * * * * * /sti/til/php /sti/til/castopod/public/index.php scheduled-video-clips
-   ```
+   **Note** - If you do not add this cron task, the following Castopod features
+   will not work:
 
-   > Desse oppgåvene blir utførte **kvart minutt**. Du kan setja opp kor ofte du
-   > treng å utføra oppgåvene: kvart 5., 10. minutt eller meir.
+   - Importing a podcast from an existing RSS feed
+   - Broadcasting social activities to your followers in the fediverse
+   - Broadcasting episodes to open hubs using
+     [WebSub](https://en.wikipedia.org/wiki/WebSub)
+   - Generating video clips -
+     [requires FFmpeg](#optional-ffmpeg-v418-or-higher-for-video-clips)
 
 ### (Tilrådd) Autoinstallering
 
@@ -125,9 +116,9 @@ want to generate Video Clips. The following extensions must be installed:
 2. Fylg framgangsmåten på skjermen.
 3. Start å podkasta!
 
-::: info Note
+::: info Notat
 
-The install script writes a `.env` file in the package root. If you cannot go
+Installasjonsskriptet lagar ei`.env`-fil i rotmappa til pakka. If you cannot go
 through the install wizard, you can create and edit the `.env` file manually
 based on the `.env.example` file.
 
@@ -195,27 +186,27 @@ media.s3.region="your_s3_region"
 
 #### S3 config options
 
-| Variable name           | Type    | Default     |
-| ----------------------- | ------- | ----------- |
-| **`endpoint`**          | string  | `undefined` |
-| **`key`**               | string  | `undefined` |
-| **`secret`**            | string  | `undefined` |
-| **`region`**            | string  | `undefined` |
-| **`bucket`**            | string  | `castopod`  |
-| **`protocol`**          | number  | `undefined` |
-| **`pathStyleEndpoint`** | boolean | `false`     |
-| **`keyPrefix`**         | string  | `undefined` |
+| Variable name       | Type   | Default     |
+| ------------------- | ------ | ----------- |
+| **`endpoint`**      | string | `undefined` |
+| **`nykjel`**        | tekst  | `udefinert` |
+| **`løyndom`**       | tekst  | `udefinert` |
+| **`region`**        | tekst  | `udefinert` |
+| **`bytte`**         | tekst  | `castopod`  |
+| **`protokoll`**     | tal    | `udefinert` |
+| **`stilendepunkt`** | boolsk | `usant`     |
+| **`keyPrefix`**     | tekst  | `udefinert` |
 
 ## Pakker frå brukarsamfunnet
 
-If you don't want to bother with installing Castopod manually, you may use one
-of the packages created and maintained by the open-source community.
+Viss du ikkje vil bry deg med å installera Castopod manuelt, kan du bruka ei av
+pakkene som brukarsamfunnet har laga.
 
-### Install with YunoHost
+### Installer med Yunohost
 
-[YunoHost](https://yunohost.org/) is a distribution based on Debian GNU/Linux
-made up of free and open-source software packages. It manages the hardships of
-self-hosting for you.
+[Yunohost](https://yunohost.org/) er ein Linux-distribusjon som er bygd på
+Debian GNU/Linux og som inneheld frie og opne program. Yunohost tek seg av det
+meste som har med oppsett av eigen vevtenar å gjera.
 
 <div class="flex flex-wrap items-center gap-4">
 
diff --git a/docs/src/nn-NO/getting-started/update.md b/docs/src/nn-NO/getting-started/update.md
index 3f99d4fc8a48f79b04d1a7321e7341fe3ee47a4f..7e608808873e32df61f36a3202118f4e2cd9b924 100644
--- a/docs/src/nn-NO/getting-started/update.md
+++ b/docs/src/nn-NO/getting-started/update.md
@@ -8,10 +8,10 @@ sidebarDepth: 3
 Når du har installert Castopod, kan det vera lurt å oppdatera nettstaden din til
 siste versjonen for å få nye funksjonar, ✨, feilrettingar 🐛 og betre yting ⚡.
 
-## Update instructions
+## Korleis du oppdaterer
 
-0. ⚠️ Before any update, we highly recommend you backup your Castopod files and
-   database.
+0. ⚠️ Før du oppdaterer, rår me sterkt til at du tek ein tryggingskopi av filene
+   og databasen til Castopod.
 
    - cf.
      [Should I make a backup before updating?](#should-i-make-a-backup-before-updating)
diff --git a/docs/src/oc/getting-started/docker.md b/docs/src/oc/getting-started/docker.md
index 19ce1070a657b7bb7a765121dbf1591a3ab6bd7f..75158bd612eff7da515d5c9cf9c6754b89f77442 100644
--- a/docs/src/oc/getting-started/docker.md
+++ b/docs/src/oc/getting-started/docker.md
@@ -14,8 +14,6 @@ process:
   with all of Castopod dependencies
 - [**`castopod/web-server`**](https://hub.docker.com/r/castopod/web-server): an
   Nginx configuration for Castopod
-- [**`castopod/video-clipper`**](https://hub.docker.com/r/castopod/video-clipper):
-  an optional image building videoclips thanks to ffmpeg
 
 Additionally, Castopod requires a MySQL-compatible database. A Redis database
 can be added as a cache handler.
@@ -24,7 +22,6 @@ can be added as a cache handler.
 
 - `develop` [unstable], latest development branch build
 - `beta` [stable], latest beta version build
-- `1.0.0-beta.x` [stable], specific beta version build (since `1.0.0-beta.22`)
 - `latest` [stable], latest version build
 - `1.x.x` [stable], specific version build (since `1.0.0`)
 
@@ -39,7 +36,7 @@ can be added as a cache handler.
 
     services:
       app:
-        image: castopod/app:latest
+        image: castopod/castopod:latest
         container_name: "castopod-app"
         volumes:
           - castopod-media:/var/www/castopod/public/media
@@ -112,16 +109,6 @@ can be added as a cache handler.
 
 ## Environment Variables
 
-- **castopod/video-clipper**
-
-  | Variable name              | Type (`default`) | Default          |
-  | -------------------------- | ---------------- | ---------------- |
-  | **`CP_DATABASE_HOSTNAME`** | ?string          | `"mariadb"`      |
-  | **`CP_DATABASE_NAME`**     | ?string          | `MYSQL_DATABASE` |
-  | **`CP_DATABASE_USERNAME`** | ?string          | `MYSQL_USER`     |
-  | **`CP_DATABASE_PASSWORD`** | ?string          | `MYSQL_PASSWORD` |
-  | **`CP_DATABASE_PREFIX`**   | ?string          | `"cp_"`          |
-
 - **castopod/castopod** and **castopod/app**
 
   | Variable name                         | Type (`default`)        | Default          |
diff --git a/docs/src/oc/getting-started/install.md b/docs/src/oc/getting-started/install.md
index 03549bcc7f4cba887d1fdbe1a1ee5f1443b2dbcf..af405daf99f2e38483de298e0551dd20b46495fc 100644
--- a/docs/src/oc/getting-started/install.md
+++ b/docs/src/oc/getting-started/install.md
@@ -19,15 +19,15 @@ If you prefer using Docker, you may skip this and go straight to the
 
 ## Requirements
 
-- PHP v8.1 or higher
+- PHP v8.1 only
 - MySQL version 5.7 or higher or MariaDB version 10.2 or higher
 - HTTPS support
 - An [ntp-synced clock](https://wiki.debian.org/NTP) to validate federation's
   incoming requests
 
-### PHP v8.1 or higher
+### PHP v8.1 only
 
-PHP version 8.1 or higher is required, with the following extensions installed:
+PHP version 8.1 is required, with the following extensions installed:
 
 - [intl](https://php.net/manual/en/intl.requirements.php)
 - [libcurl](https://php.net/manual/en/curl.requirements.php)
@@ -94,29 +94,19 @@ want to generate Video Clips. The following extensions must be installed:
 4. Add **cron tasks** on your web server for various background processes
    (replace the paths accordingly):
 
-   - For social features to work properly, this task is used to broadcast social
-     activities to your followers on the fediverse:
-
-   ```bash
-      * * * * * /path/to/php /path/to/castopod/public/index.php scheduled-activities
-   ```
-
-   - For having your episodes be broadcasted on open hubs upon publication using
-     [WebSub](https://en.wikipedia.org/wiki/WebSub):
-
    ```bash
-      * * * * * /usr/local/bin/php /castopod/public/index.php scheduled-websub-publish
+      * * * * * /path/to/php /path/to/castopod/spark tasks:run >> /dev/null 2>&1
    ```
 
-   - For Video Clips to be created (see
-     [FFmpeg requirements](#ffmpeg-v418-or-higher-for-video-clips)):
-
-   ```bash
-      * * * * * /path/to/php /path/to/castopod/public/index.php scheduled-video-clips
-   ```
+   **Note** - If you do not add this cron task, the following Castopod features
+   will not work:
 
-   > These tasks run **every minute**. You may set the frequency depending on
-   > your needs: every 5, 10 minutes or more.
+   - Importing a podcast from an existing RSS feed
+   - Broadcasting social activities to your followers in the fediverse
+   - Broadcasting episodes to open hubs using
+     [WebSub](https://en.wikipedia.org/wiki/WebSub)
+   - Generating video clips -
+     [requires FFmpeg](#optional-ffmpeg-v418-or-higher-for-video-clips)
 
 ### (recommended) Install Wizard
 
diff --git a/docs/src/pl/getting-started/docker.md b/docs/src/pl/getting-started/docker.md
index 19ce1070a657b7bb7a765121dbf1591a3ab6bd7f..75158bd612eff7da515d5c9cf9c6754b89f77442 100644
--- a/docs/src/pl/getting-started/docker.md
+++ b/docs/src/pl/getting-started/docker.md
@@ -14,8 +14,6 @@ process:
   with all of Castopod dependencies
 - [**`castopod/web-server`**](https://hub.docker.com/r/castopod/web-server): an
   Nginx configuration for Castopod
-- [**`castopod/video-clipper`**](https://hub.docker.com/r/castopod/video-clipper):
-  an optional image building videoclips thanks to ffmpeg
 
 Additionally, Castopod requires a MySQL-compatible database. A Redis database
 can be added as a cache handler.
@@ -24,7 +22,6 @@ can be added as a cache handler.
 
 - `develop` [unstable], latest development branch build
 - `beta` [stable], latest beta version build
-- `1.0.0-beta.x` [stable], specific beta version build (since `1.0.0-beta.22`)
 - `latest` [stable], latest version build
 - `1.x.x` [stable], specific version build (since `1.0.0`)
 
@@ -39,7 +36,7 @@ can be added as a cache handler.
 
     services:
       app:
-        image: castopod/app:latest
+        image: castopod/castopod:latest
         container_name: "castopod-app"
         volumes:
           - castopod-media:/var/www/castopod/public/media
@@ -112,16 +109,6 @@ can be added as a cache handler.
 
 ## Environment Variables
 
-- **castopod/video-clipper**
-
-  | Variable name              | Type (`default`) | Default          |
-  | -------------------------- | ---------------- | ---------------- |
-  | **`CP_DATABASE_HOSTNAME`** | ?string          | `"mariadb"`      |
-  | **`CP_DATABASE_NAME`**     | ?string          | `MYSQL_DATABASE` |
-  | **`CP_DATABASE_USERNAME`** | ?string          | `MYSQL_USER`     |
-  | **`CP_DATABASE_PASSWORD`** | ?string          | `MYSQL_PASSWORD` |
-  | **`CP_DATABASE_PREFIX`**   | ?string          | `"cp_"`          |
-
 - **castopod/castopod** and **castopod/app**
 
   | Variable name                         | Type (`default`)        | Default          |
diff --git a/docs/src/pl/getting-started/install.md b/docs/src/pl/getting-started/install.md
index 03549bcc7f4cba887d1fdbe1a1ee5f1443b2dbcf..af405daf99f2e38483de298e0551dd20b46495fc 100644
--- a/docs/src/pl/getting-started/install.md
+++ b/docs/src/pl/getting-started/install.md
@@ -19,15 +19,15 @@ If you prefer using Docker, you may skip this and go straight to the
 
 ## Requirements
 
-- PHP v8.1 or higher
+- PHP v8.1 only
 - MySQL version 5.7 or higher or MariaDB version 10.2 or higher
 - HTTPS support
 - An [ntp-synced clock](https://wiki.debian.org/NTP) to validate federation's
   incoming requests
 
-### PHP v8.1 or higher
+### PHP v8.1 only
 
-PHP version 8.1 or higher is required, with the following extensions installed:
+PHP version 8.1 is required, with the following extensions installed:
 
 - [intl](https://php.net/manual/en/intl.requirements.php)
 - [libcurl](https://php.net/manual/en/curl.requirements.php)
@@ -94,29 +94,19 @@ want to generate Video Clips. The following extensions must be installed:
 4. Add **cron tasks** on your web server for various background processes
    (replace the paths accordingly):
 
-   - For social features to work properly, this task is used to broadcast social
-     activities to your followers on the fediverse:
-
-   ```bash
-      * * * * * /path/to/php /path/to/castopod/public/index.php scheduled-activities
-   ```
-
-   - For having your episodes be broadcasted on open hubs upon publication using
-     [WebSub](https://en.wikipedia.org/wiki/WebSub):
-
    ```bash
-      * * * * * /usr/local/bin/php /castopod/public/index.php scheduled-websub-publish
+      * * * * * /path/to/php /path/to/castopod/spark tasks:run >> /dev/null 2>&1
    ```
 
-   - For Video Clips to be created (see
-     [FFmpeg requirements](#ffmpeg-v418-or-higher-for-video-clips)):
-
-   ```bash
-      * * * * * /path/to/php /path/to/castopod/public/index.php scheduled-video-clips
-   ```
+   **Note** - If you do not add this cron task, the following Castopod features
+   will not work:
 
-   > These tasks run **every minute**. You may set the frequency depending on
-   > your needs: every 5, 10 minutes or more.
+   - Importing a podcast from an existing RSS feed
+   - Broadcasting social activities to your followers in the fediverse
+   - Broadcasting episodes to open hubs using
+     [WebSub](https://en.wikipedia.org/wiki/WebSub)
+   - Generating video clips -
+     [requires FFmpeg](#optional-ffmpeg-v418-or-higher-for-video-clips)
 
 ### (recommended) Install Wizard
 
diff --git a/docs/src/pt-BR/getting-started/docker.md b/docs/src/pt-BR/getting-started/docker.md
index 19ce1070a657b7bb7a765121dbf1591a3ab6bd7f..75158bd612eff7da515d5c9cf9c6754b89f77442 100644
--- a/docs/src/pt-BR/getting-started/docker.md
+++ b/docs/src/pt-BR/getting-started/docker.md
@@ -14,8 +14,6 @@ process:
   with all of Castopod dependencies
 - [**`castopod/web-server`**](https://hub.docker.com/r/castopod/web-server): an
   Nginx configuration for Castopod
-- [**`castopod/video-clipper`**](https://hub.docker.com/r/castopod/video-clipper):
-  an optional image building videoclips thanks to ffmpeg
 
 Additionally, Castopod requires a MySQL-compatible database. A Redis database
 can be added as a cache handler.
@@ -24,7 +22,6 @@ can be added as a cache handler.
 
 - `develop` [unstable], latest development branch build
 - `beta` [stable], latest beta version build
-- `1.0.0-beta.x` [stable], specific beta version build (since `1.0.0-beta.22`)
 - `latest` [stable], latest version build
 - `1.x.x` [stable], specific version build (since `1.0.0`)
 
@@ -39,7 +36,7 @@ can be added as a cache handler.
 
     services:
       app:
-        image: castopod/app:latest
+        image: castopod/castopod:latest
         container_name: "castopod-app"
         volumes:
           - castopod-media:/var/www/castopod/public/media
@@ -112,16 +109,6 @@ can be added as a cache handler.
 
 ## Environment Variables
 
-- **castopod/video-clipper**
-
-  | Variable name              | Type (`default`) | Default          |
-  | -------------------------- | ---------------- | ---------------- |
-  | **`CP_DATABASE_HOSTNAME`** | ?string          | `"mariadb"`      |
-  | **`CP_DATABASE_NAME`**     | ?string          | `MYSQL_DATABASE` |
-  | **`CP_DATABASE_USERNAME`** | ?string          | `MYSQL_USER`     |
-  | **`CP_DATABASE_PASSWORD`** | ?string          | `MYSQL_PASSWORD` |
-  | **`CP_DATABASE_PREFIX`**   | ?string          | `"cp_"`          |
-
 - **castopod/castopod** and **castopod/app**
 
   | Variable name                         | Type (`default`)        | Default          |
diff --git a/docs/src/pt-BR/getting-started/install.md b/docs/src/pt-BR/getting-started/install.md
index 41badebf710690922197592dc05ec5a6762cc0d5..072dd2c303656016e37ed9f08df6dc8749e8ddaf 100644
--- a/docs/src/pt-BR/getting-started/install.md
+++ b/docs/src/pt-BR/getting-started/install.md
@@ -20,15 +20,15 @@ Se você prefere usar o Docker, você pode pular isso e ir direto para a
 
 ## Requisitos
 
-- PHP v8.1 ou superior
+- PHP v8.1 only
 - MySQL versão 5.7 ou superior ou MariaDB versão 10.2 ou superior
 - Suporte a HTTPS
 - An [ntp-synced clock](https://wiki.debian.org/NTP) to validate federation's
   incoming requests
 
-### PHP v8.1 ou superior
+### PHP v8.1 only
 
-É necessário PHP versão 8.1 ou superior, com as seguintes extensões instaladas:
+PHP version 8.1 is required, with the following extensions installed:
 
 - [intl](https://php.net/manual/en/intl.requirements.php)
 - [libcurl](https://php.net/manual/en/curl.requirements.php)
@@ -93,32 +93,22 @@ want to generate Video Clips. As seguintes extensões devem ser instaladas:
    servidor web, se você ainda não o fez.
    - ⚠️ Definir a raiz do documento do servidor web para a subpasta `public/`
      dentro da pasta `castopod`.
-4. Adicionar **tarefas cron** no seu servidor web para vários processos em
-   segundo plano (substitua os caminhos adequadamente):
-
-   - Para que os recursos sociais funcionem corretamente, esta tarefa é usada
-     para transmitir atividades sociais para seus seguidores no fediverso:
-
-   ```bash
-      * * * * * /path/to/php /path/to/castopod/public/index.php scheduled-activities
-   ```
-
-   - Para que seus episódios sejam transmitidos em hubs abertos após a
-     publicação usando [WebSub](https://en.wikipedia.org/wiki/WebSub):
+4. Add **cron tasks** on your web server for various background processes
+   (replace the paths accordingly):
 
    ```bash
-      * * * * * /usr/local/bin/php /castopod/public/index.php scheduled-websub-publish
+      * * * * * /path/to/php /path/to/castopod/spark tasks:run >> /dev/null 2>&1
    ```
 
-   - Para que os clipes de vídeo sejam criados (veja
-     [requisitos de FFmpeg](#ffmpeg-v418-or-higher-for-video-clips)):
-
-   ```bash
-      * * * * * /path/to/php /path/to/castopod/public/index.php scheduled-video-clips
-   ```
+   **Note** - If you do not add this cron task, the following Castopod features
+   will not work:
 
-   > Essas tarefas são executadas **a cada minuto**. Você pode definir a
-   > freqüência dependendo de suas necessidades: a cada 5, 10 minutos ou mais.
+   - Importing a podcast from an existing RSS feed
+   - Broadcasting social activities to your followers in the fediverse
+   - Broadcasting episodes to open hubs using
+     [WebSub](https://en.wikipedia.org/wiki/WebSub)
+   - Generating video clips -
+     [requires FFmpeg](#optional-ffmpeg-v418-or-higher-for-video-clips)
 
 ### (recomendado) Assistente de Instalação
 
diff --git a/docs/src/pt/getting-started/docker.md b/docs/src/pt/getting-started/docker.md
index 19ce1070a657b7bb7a765121dbf1591a3ab6bd7f..75158bd612eff7da515d5c9cf9c6754b89f77442 100644
--- a/docs/src/pt/getting-started/docker.md
+++ b/docs/src/pt/getting-started/docker.md
@@ -14,8 +14,6 @@ process:
   with all of Castopod dependencies
 - [**`castopod/web-server`**](https://hub.docker.com/r/castopod/web-server): an
   Nginx configuration for Castopod
-- [**`castopod/video-clipper`**](https://hub.docker.com/r/castopod/video-clipper):
-  an optional image building videoclips thanks to ffmpeg
 
 Additionally, Castopod requires a MySQL-compatible database. A Redis database
 can be added as a cache handler.
@@ -24,7 +22,6 @@ can be added as a cache handler.
 
 - `develop` [unstable], latest development branch build
 - `beta` [stable], latest beta version build
-- `1.0.0-beta.x` [stable], specific beta version build (since `1.0.0-beta.22`)
 - `latest` [stable], latest version build
 - `1.x.x` [stable], specific version build (since `1.0.0`)
 
@@ -39,7 +36,7 @@ can be added as a cache handler.
 
     services:
       app:
-        image: castopod/app:latest
+        image: castopod/castopod:latest
         container_name: "castopod-app"
         volumes:
           - castopod-media:/var/www/castopod/public/media
@@ -112,16 +109,6 @@ can be added as a cache handler.
 
 ## Environment Variables
 
-- **castopod/video-clipper**
-
-  | Variable name              | Type (`default`) | Default          |
-  | -------------------------- | ---------------- | ---------------- |
-  | **`CP_DATABASE_HOSTNAME`** | ?string          | `"mariadb"`      |
-  | **`CP_DATABASE_NAME`**     | ?string          | `MYSQL_DATABASE` |
-  | **`CP_DATABASE_USERNAME`** | ?string          | `MYSQL_USER`     |
-  | **`CP_DATABASE_PASSWORD`** | ?string          | `MYSQL_PASSWORD` |
-  | **`CP_DATABASE_PREFIX`**   | ?string          | `"cp_"`          |
-
 - **castopod/castopod** and **castopod/app**
 
   | Variable name                         | Type (`default`)        | Default          |
diff --git a/docs/src/pt/getting-started/install.md b/docs/src/pt/getting-started/install.md
index eab2dca5c395a3830ee148d9dab483c080baaa82..3ce3cf7a1e27fb4ce248ff5586fb484b547e8159 100644
--- a/docs/src/pt/getting-started/install.md
+++ b/docs/src/pt/getting-started/install.md
@@ -19,15 +19,15 @@ If you prefer using Docker, you may skip this and go straight to the
 
 ## Requirements
 
-- PHP v8.1 or higher
+- PHP v8.1 only
 - MySQL version 5.7 or higher or MariaDB version 10.2 or higher
 - HTTPS support
 - An [ntp-synced clock](https://wiki.debian.org/NTP) to validate federation's
   incoming requests
 
-### PHP v8.1 or higher
+### PHP v8.1 only
 
-PHP version 8.1 or higher is required, with the following extensions installed:
+PHP version 8.1 is required, with the following extensions installed:
 
 - [intl](https://php.net/manual/en/intl.requirements.php)
 - [libcurl](https://php.net/manual/en/curl.requirements.php)
@@ -94,29 +94,19 @@ want to generate Video Clips. The following extensions must be installed:
 4. Add **cron tasks** on your web server for various background processes
    (replace the paths accordingly):
 
-   - For social features to work properly, this task is used to broadcast social
-     activities to your followers on the fediverse:
-
-   ```bash
-      * * * * * /path/to/php /path/to/castopod/public/index.php scheduled-activities
-   ```
-
-   - For having your episodes be broadcasted on open hubs upon publication using
-     [WebSub](https://en.wikipedia.org/wiki/WebSub):
-
    ```bash
-      * * * * * /usr/local/bin/php /castopod/public/index.php scheduled-websub-publish
+      * * * * * /path/to/php /path/to/castopod/spark tasks:run >> /dev/null 2>&1
    ```
 
-   - For Video Clips to be created (see
-     [FFmpeg requirements](#ffmpeg-v418-or-higher-for-video-clips)):
-
-   ```bash
-      * * * * * /path/to/php /path/to/castopod/public/index.php scheduled-video-clips
-   ```
+   **Note** - If you do not add this cron task, the following Castopod features
+   will not work:
 
-   > These tasks run **every minute**. You may set the frequency depending on
-   > your needs: every 5, 10 minutes or more.
+   - Importing a podcast from an existing RSS feed
+   - Broadcasting social activities to your followers in the fediverse
+   - Broadcasting episodes to open hubs using
+     [WebSub](https://en.wikipedia.org/wiki/WebSub)
+   - Generating video clips -
+     [requires FFmpeg](#optional-ffmpeg-v418-or-higher-for-video-clips)
 
 ### (recommended) Install Wizard
 
diff --git a/docs/src/ro/getting-started/auth.md b/docs/src/ro/getting-started/auth.md
index 093969f20b4069b0610f3e7f72bb91be31f1401d..4b279e34a63a9d56a00c01a46145fdd83978d69a 100644
--- a/docs/src/ro/getting-started/auth.md
+++ b/docs/src/ro/getting-started/auth.md
@@ -18,11 +18,11 @@ niveluri:
 
 <!-- AUTH-INSTANCE-ROLES-LIST:START - Do not remove or modify this section -->
 
-| role        | description                         | permissions                                                                                |
-| ----------- | ----------------------------------- | ------------------------------------------------------------------------------------------ |
-| Super admin | Has complete control over Castopod. | admin.\*, podcasts.\*, users.manage, persons.manage, pages.manage, fediverse.manage-blocks |
-| Manager     | Manages Castopod's content.         | podcasts.create, podcasts.import, persons.manage, pages.manage                             |
-| Podcaster   | General users of Castopod.          | admin.access                                                                               |
+| rol         | descriere                                 | permisiuni                                                                                 |
+| ----------- | ----------------------------------------- | ------------------------------------------------------------------------------------------ |
+| Super admin | Deține controlul complet asupra Castopod. | admin.\*, podcasts.\*, users.manage, persons.manage, pages.manage, fediverse.manage-blocks |
+| Manager     | Gestionează conținutul Castopodului.      | podcasts.create, podcasts.import, persons.manage, pages.manage                             |
+| Podcaster   | Utilizatorii generali ai Castopod.        | admin.access                                                                               |
 
 <!-- AUTH-INSTANCE-ROLES-LIST:END -->
 
@@ -30,17 +30,17 @@ niveluri:
 
 <!-- AUTH-INSTANCE-PERMISSIONS-LIST:START - Do not remove or modify this section -->
 
-| permission              | description                                                        |
-| ----------------------- | ------------------------------------------------------------------ |
-| admin.access            | Can access the Castopod admin area.                                |
-| admin.settings          | Can access the Castopod settings.                                  |
-| users.manage            | Can manage Castopod users.                                         |
-| persons.manage          | Can manage persons.                                                |
-| pages.manage            | Can manage pages.                                                  |
-| podcasts.view           | Can view all podcasts.                                             |
-| podcasts.create         | Can create new podcasts.                                           |
-| podcasts.import         | Can import podcasts.                                               |
-| fediverse.manage-blocks | Can block fediverse actors/domains from interacting with Castopod. |
+| permisiune              | descriere                                                                  |
+| ----------------------- | -------------------------------------------------------------------------- |
+| admin.access            | Poate accesa zona de administrare Castopod.                                |
+| admin.settings          | Poate accesa setările Castopod.                                            |
+| users.manage            | Poate gestiona utilizatorii Castopod.                                      |
+| persons.manage          | Poate gestiona persoane.                                                   |
+| pages.manage            | Poate gestiona pagini.                                                     |
+| podcasts.view           | Poate vedea toate podcast-urile.                                           |
+| podcasts.create         | Poate crea noi podcast-uri.                                                |
+| podcasts.import         | Poate importa podcast-uri.                                                 |
+| fediverse.manage-blocks | Poate bloca actorilor/domenii din fediverse să interacționeze cu Castopod. |
 
 <!-- AUTH-INSTANCE-PERMISSIONS-LIST:END -->
 
@@ -50,12 +50,12 @@ niveluri:
 
 <!-- AUTH-PODCAST-ROLES-LIST:START - Do not remove or modify this section -->
 
-| role   | description                                               | permissions                                                                                                                                                                                                                                                                                 |
-| ------ | --------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
-| Admin  | Has complete control of podcast #{id}.                    | \*                                                                                                                                                                                                                                                                                          |
-| Editor | Manages content and publications of podcast #{id}.        | view, edit, manage-import, manage-persons, manage-platforms, manage-publications, manage-notifications, interact-as, episodes.view, episodes.create, episodes.edit, episodes.delete, episodes.manage-persons, episodes.manage-clips, episodes.manage-publications, episodes.manage-comments |
-| Author | Manages content of podcast #{id} but cannot publish them. | view, manage-persons, episodes.view, episodes.create, episodes.edit, episodes.manage-persons, episodes.manage-clips                                                                                                                                                                         |
-| Guest  | General contributor of the podcast #{id}.                 | view, episodes.view                                                                                                                                                                                                                                                                         |
+| rol    | descriere                                                      | permisiuni                                                                                                                                                                                                                                                                                  |
+| ------ | -------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| Admin  | Deține controlul complet asupra podcastului #{id}.             | \*                                                                                                                                                                                                                                                                                          |
+| Editor | Gestionează conținutul și publicațiile podcastului #{id}.      | view, edit, manage-import, manage-persons, manage-platforms, manage-publications, manage-notifications, interact-as, episodes.view, episodes.create, episodes.edit, episodes.delete, episodes.manage-persons, episodes.manage-clips, episodes.manage-publications, episodes.manage-comments |
+| Author | Gestionează conținutul podcastului #{id} dar nu poate publica. | view, manage-persons, episodes.view, episodes.create, episodes.edit, episodes.manage-persons, episodes.manage-clips                                                                                                                                                                         |
+| Guest  | Contribuitor al podcastului #{id}.                             | view, episodes.view                                                                                                                                                                                                                                                                         |
 
 <!-- AUTH-PODCAST-ROLES-LIST:END -->
 
@@ -63,26 +63,26 @@ niveluri:
 
 <!-- AUTH-PODCAST-PERMISSIONS-LIST:START - Do not remove or modify this section -->
 
-| permission                   | description                                                              |
-| ---------------------------- | ------------------------------------------------------------------------ |
-| view                         | Can view dashboard and analytics of podcast #{id}.                       |
-| edit                         | Can edit podcast #{id}.                                                  |
-| delete                       | Can delete podcast #{id}.                                                |
-| manage-import                | Can synchronize imported podcast #{id}.                                  |
-| manage-persons               | Can manage subscriptions of podcast #{id}.                               |
-| manage-subscriptions         | Can manage subscriptions of podcast #{id}.                               |
-| manage-contributors          | Can manage contributors of podcast #{id}.                                |
-| manage-platforms             | Can set/remove platform links of podcast #{id}.                          |
-| manage-publications          | Can publish podcast #{id}.                                               |
-| manage-notifications         | Can view and mark notifications as read for podcast #{id}.               |
-| interact-as                  | Can interact as the podcast #{id} to favourite, share or reply to posts. |
-| episodes.view                | Can view dashboard and analytics of podcast #{id}.                       |
-| episodes.create              | Can create episodes for podcast #{id}.                                   |
-| episodes.edit                | Can edit podcast #{id}.                                                  |
-| episodes.delete              | Can delete podcast #{id}.                                                |
-| episodes.manage-persons      | Can manage subscriptions of podcast #{id}.                               |
-| episodes.manage-clips        | Can manage video clips or soundbites of podcast #{id}.                   |
-| episodes.manage-publications | Can publish podcast #{id}.                                               |
-| episodes.manage-comments     | Can create/remove episode comments of podcast #{id}.                     |
+| permisiune                   | descriere                                                                                               |
+| ---------------------------- | ------------------------------------------------------------------------------------------------------- |
+| view                         | Poate vedea panoul de control și analiticele podcastului #{id}.                                         |
+| edit                         | Poate edita podcastul #{id}.                                                                            |
+| delete                       | Poate șterge podcastul #{id}.                                                                           |
+| manage-import                | Poate sincroniza podcastul importat #{id}.                                                              |
+| manage-persons               | Poate administra abonamentele podcastului #{id}.                                                        |
+| manage-subscriptions         | Poate administra abonamentele podcastului #{id}.                                                        |
+| manage-contributors          | Poate administra colaboratorii podcastului #{id}.                                                       |
+| manage-platforms             | Poate seta/elimina link-urile podcastului #{id}.                                                        |
+| manage-publications          | Poate publica podcastul #{id}.                                                                          |
+| manage-notifications         | Poate vizualiza și marca notificările ca fiind citite pentru podcastul #{id}.                           |
+| interact-as                  | Poate interacționa ca podcastul #{id} pentru adăuga la favorite, a distribui sau a răspunde la postări. |
+| episodes.view                | Poate vizualiza panoul de control și analiticile podcastului #{id}.                                     |
+| episodes.create              | Poate crea episoade pentru podcastul #{id}.                                                             |
+| episodes.edit                | Poate edita podcastul #{id}.                                                                            |
+| episodes.delete              | Poate șterge podcastul #{id}.                                                                           |
+| episodes.manage-persons      | Poate administra abonamentele podcastului #{id}.                                                        |
+| episodes.manage-clips        | Poate administra clipuri video sau biții de sunet ai podcastului #{id}.                                 |
+| episodes.manage-publications | Poate publica podcastul #{id}.                                                                          |
+| episodes.manage-comments     | Poate crea/elimina comentariile episodului podcastului #{id}.                                           |
 
 <!-- AUTH-PODCAST-PERMISSIONS-LIST:END -->
diff --git a/docs/src/ro/getting-started/docker.md b/docs/src/ro/getting-started/docker.md
index 5217f7bf428ea99cdc7cff949251ed85edcc7577..4de0f4f3f7767c0b0a2a28964e141e91b497cb31 100644
--- a/docs/src/ro/getting-started/docker.md
+++ b/docs/src/ro/getting-started/docker.md
@@ -14,8 +14,6 @@ compilare automată
   aplicației cu toate dependințele Castopod
 - [**`castopod/web-server`**](https://hub.docker.com/r/castopod/web-server): o
   configurație Nginx pentru Castopod
-- [**`castopod/video-clipper`**](https://hub.docker.com/r/castopod/video-clipper):
-  o imagine opțională ce compilează videoclipuri cu ajutorul ffmpeg
 
 În plus, Castopod necesită o bază de date compatibilă cu MySQL. O bază de date
 Redis poate fi adăugată pentru cache.
@@ -24,7 +22,6 @@ Redis poate fi adăugată pentru cache.
 
 - `develop` [unstable], latest development branch build
 - `beta` [stable], latest beta version build
-- `1.0.0-beta.x` [stable], specific beta version build (since `1.0.0-beta.22`)
 - `latest` [stable], latest version build
 - `1.x.x` [stable], specific version build (since `1.0.0`)
 
@@ -39,7 +36,7 @@ Redis poate fi adăugată pentru cache.
 
     services:
       app:
-        image: castopod/app:latest
+        image: castopod/castopod:latest
         container_name: "castopod-app"
         volumes:
           - castopod-media:/var/www/castopod/public/media
@@ -112,16 +109,6 @@ Redis poate fi adăugată pentru cache.
 
 ## Environment Variables
 
-- **castopod/video-clipper**
-
-  | Variable name              | Type (`default`) | Default          |
-  | -------------------------- | ---------------- | ---------------- |
-  | **`CP_DATABASE_HOSTNAME`** | ?string          | `"mariadb"`      |
-  | **`CP_DATABASE_NAME`**     | ?string          | `MYSQL_DATABASE` |
-  | **`CP_DATABASE_USERNAME`** | ?string          | `MYSQL_USER`     |
-  | **`CP_DATABASE_PASSWORD`** | ?string          | `MYSQL_PASSWORD` |
-  | **`CP_DATABASE_PREFIX`**   | ?string          | `"cp_"`          |
-
 - **castopod/castopod** and **castopod/app**
 
   | Variable name                         | Type (`default`)        | Default          |
diff --git a/docs/src/ro/getting-started/install.md b/docs/src/ro/getting-started/install.md
index 03549bcc7f4cba887d1fdbe1a1ee5f1443b2dbcf..af405daf99f2e38483de298e0551dd20b46495fc 100644
--- a/docs/src/ro/getting-started/install.md
+++ b/docs/src/ro/getting-started/install.md
@@ -19,15 +19,15 @@ If you prefer using Docker, you may skip this and go straight to the
 
 ## Requirements
 
-- PHP v8.1 or higher
+- PHP v8.1 only
 - MySQL version 5.7 or higher or MariaDB version 10.2 or higher
 - HTTPS support
 - An [ntp-synced clock](https://wiki.debian.org/NTP) to validate federation's
   incoming requests
 
-### PHP v8.1 or higher
+### PHP v8.1 only
 
-PHP version 8.1 or higher is required, with the following extensions installed:
+PHP version 8.1 is required, with the following extensions installed:
 
 - [intl](https://php.net/manual/en/intl.requirements.php)
 - [libcurl](https://php.net/manual/en/curl.requirements.php)
@@ -94,29 +94,19 @@ want to generate Video Clips. The following extensions must be installed:
 4. Add **cron tasks** on your web server for various background processes
    (replace the paths accordingly):
 
-   - For social features to work properly, this task is used to broadcast social
-     activities to your followers on the fediverse:
-
-   ```bash
-      * * * * * /path/to/php /path/to/castopod/public/index.php scheduled-activities
-   ```
-
-   - For having your episodes be broadcasted on open hubs upon publication using
-     [WebSub](https://en.wikipedia.org/wiki/WebSub):
-
    ```bash
-      * * * * * /usr/local/bin/php /castopod/public/index.php scheduled-websub-publish
+      * * * * * /path/to/php /path/to/castopod/spark tasks:run >> /dev/null 2>&1
    ```
 
-   - For Video Clips to be created (see
-     [FFmpeg requirements](#ffmpeg-v418-or-higher-for-video-clips)):
-
-   ```bash
-      * * * * * /path/to/php /path/to/castopod/public/index.php scheduled-video-clips
-   ```
+   **Note** - If you do not add this cron task, the following Castopod features
+   will not work:
 
-   > These tasks run **every minute**. You may set the frequency depending on
-   > your needs: every 5, 10 minutes or more.
+   - Importing a podcast from an existing RSS feed
+   - Broadcasting social activities to your followers in the fediverse
+   - Broadcasting episodes to open hubs using
+     [WebSub](https://en.wikipedia.org/wiki/WebSub)
+   - Generating video clips -
+     [requires FFmpeg](#optional-ffmpeg-v418-or-higher-for-video-clips)
 
 ### (recommended) Install Wizard
 
diff --git a/docs/src/ru/getting-started/docker.md b/docs/src/ru/getting-started/docker.md
index 19ce1070a657b7bb7a765121dbf1591a3ab6bd7f..75158bd612eff7da515d5c9cf9c6754b89f77442 100644
--- a/docs/src/ru/getting-started/docker.md
+++ b/docs/src/ru/getting-started/docker.md
@@ -14,8 +14,6 @@ process:
   with all of Castopod dependencies
 - [**`castopod/web-server`**](https://hub.docker.com/r/castopod/web-server): an
   Nginx configuration for Castopod
-- [**`castopod/video-clipper`**](https://hub.docker.com/r/castopod/video-clipper):
-  an optional image building videoclips thanks to ffmpeg
 
 Additionally, Castopod requires a MySQL-compatible database. A Redis database
 can be added as a cache handler.
@@ -24,7 +22,6 @@ can be added as a cache handler.
 
 - `develop` [unstable], latest development branch build
 - `beta` [stable], latest beta version build
-- `1.0.0-beta.x` [stable], specific beta version build (since `1.0.0-beta.22`)
 - `latest` [stable], latest version build
 - `1.x.x` [stable], specific version build (since `1.0.0`)
 
@@ -39,7 +36,7 @@ can be added as a cache handler.
 
     services:
       app:
-        image: castopod/app:latest
+        image: castopod/castopod:latest
         container_name: "castopod-app"
         volumes:
           - castopod-media:/var/www/castopod/public/media
@@ -112,16 +109,6 @@ can be added as a cache handler.
 
 ## Environment Variables
 
-- **castopod/video-clipper**
-
-  | Variable name              | Type (`default`) | Default          |
-  | -------------------------- | ---------------- | ---------------- |
-  | **`CP_DATABASE_HOSTNAME`** | ?string          | `"mariadb"`      |
-  | **`CP_DATABASE_NAME`**     | ?string          | `MYSQL_DATABASE` |
-  | **`CP_DATABASE_USERNAME`** | ?string          | `MYSQL_USER`     |
-  | **`CP_DATABASE_PASSWORD`** | ?string          | `MYSQL_PASSWORD` |
-  | **`CP_DATABASE_PREFIX`**   | ?string          | `"cp_"`          |
-
 - **castopod/castopod** and **castopod/app**
 
   | Variable name                         | Type (`default`)        | Default          |
diff --git a/docs/src/ru/getting-started/install.md b/docs/src/ru/getting-started/install.md
index eab2dca5c395a3830ee148d9dab483c080baaa82..3ce3cf7a1e27fb4ce248ff5586fb484b547e8159 100644
--- a/docs/src/ru/getting-started/install.md
+++ b/docs/src/ru/getting-started/install.md
@@ -19,15 +19,15 @@ If you prefer using Docker, you may skip this and go straight to the
 
 ## Requirements
 
-- PHP v8.1 or higher
+- PHP v8.1 only
 - MySQL version 5.7 or higher or MariaDB version 10.2 or higher
 - HTTPS support
 - An [ntp-synced clock](https://wiki.debian.org/NTP) to validate federation's
   incoming requests
 
-### PHP v8.1 or higher
+### PHP v8.1 only
 
-PHP version 8.1 or higher is required, with the following extensions installed:
+PHP version 8.1 is required, with the following extensions installed:
 
 - [intl](https://php.net/manual/en/intl.requirements.php)
 - [libcurl](https://php.net/manual/en/curl.requirements.php)
@@ -94,29 +94,19 @@ want to generate Video Clips. The following extensions must be installed:
 4. Add **cron tasks** on your web server for various background processes
    (replace the paths accordingly):
 
-   - For social features to work properly, this task is used to broadcast social
-     activities to your followers on the fediverse:
-
-   ```bash
-      * * * * * /path/to/php /path/to/castopod/public/index.php scheduled-activities
-   ```
-
-   - For having your episodes be broadcasted on open hubs upon publication using
-     [WebSub](https://en.wikipedia.org/wiki/WebSub):
-
    ```bash
-      * * * * * /usr/local/bin/php /castopod/public/index.php scheduled-websub-publish
+      * * * * * /path/to/php /path/to/castopod/spark tasks:run >> /dev/null 2>&1
    ```
 
-   - For Video Clips to be created (see
-     [FFmpeg requirements](#ffmpeg-v418-or-higher-for-video-clips)):
-
-   ```bash
-      * * * * * /path/to/php /path/to/castopod/public/index.php scheduled-video-clips
-   ```
+   **Note** - If you do not add this cron task, the following Castopod features
+   will not work:
 
-   > These tasks run **every minute**. You may set the frequency depending on
-   > your needs: every 5, 10 minutes or more.
+   - Importing a podcast from an existing RSS feed
+   - Broadcasting social activities to your followers in the fediverse
+   - Broadcasting episodes to open hubs using
+     [WebSub](https://en.wikipedia.org/wiki/WebSub)
+   - Generating video clips -
+     [requires FFmpeg](#optional-ffmpeg-v418-or-higher-for-video-clips)
 
 ### (recommended) Install Wizard
 
diff --git a/docs/src/sk/getting-started/docker.md b/docs/src/sk/getting-started/docker.md
index 19ce1070a657b7bb7a765121dbf1591a3ab6bd7f..75158bd612eff7da515d5c9cf9c6754b89f77442 100644
--- a/docs/src/sk/getting-started/docker.md
+++ b/docs/src/sk/getting-started/docker.md
@@ -14,8 +14,6 @@ process:
   with all of Castopod dependencies
 - [**`castopod/web-server`**](https://hub.docker.com/r/castopod/web-server): an
   Nginx configuration for Castopod
-- [**`castopod/video-clipper`**](https://hub.docker.com/r/castopod/video-clipper):
-  an optional image building videoclips thanks to ffmpeg
 
 Additionally, Castopod requires a MySQL-compatible database. A Redis database
 can be added as a cache handler.
@@ -24,7 +22,6 @@ can be added as a cache handler.
 
 - `develop` [unstable], latest development branch build
 - `beta` [stable], latest beta version build
-- `1.0.0-beta.x` [stable], specific beta version build (since `1.0.0-beta.22`)
 - `latest` [stable], latest version build
 - `1.x.x` [stable], specific version build (since `1.0.0`)
 
@@ -39,7 +36,7 @@ can be added as a cache handler.
 
     services:
       app:
-        image: castopod/app:latest
+        image: castopod/castopod:latest
         container_name: "castopod-app"
         volumes:
           - castopod-media:/var/www/castopod/public/media
@@ -112,16 +109,6 @@ can be added as a cache handler.
 
 ## Environment Variables
 
-- **castopod/video-clipper**
-
-  | Variable name              | Type (`default`) | Default          |
-  | -------------------------- | ---------------- | ---------------- |
-  | **`CP_DATABASE_HOSTNAME`** | ?string          | `"mariadb"`      |
-  | **`CP_DATABASE_NAME`**     | ?string          | `MYSQL_DATABASE` |
-  | **`CP_DATABASE_USERNAME`** | ?string          | `MYSQL_USER`     |
-  | **`CP_DATABASE_PASSWORD`** | ?string          | `MYSQL_PASSWORD` |
-  | **`CP_DATABASE_PREFIX`**   | ?string          | `"cp_"`          |
-
 - **castopod/castopod** and **castopod/app**
 
   | Variable name                         | Type (`default`)        | Default          |
diff --git a/docs/src/sk/getting-started/install.md b/docs/src/sk/getting-started/install.md
index 03549bcc7f4cba887d1fdbe1a1ee5f1443b2dbcf..af405daf99f2e38483de298e0551dd20b46495fc 100644
--- a/docs/src/sk/getting-started/install.md
+++ b/docs/src/sk/getting-started/install.md
@@ -19,15 +19,15 @@ If you prefer using Docker, you may skip this and go straight to the
 
 ## Requirements
 
-- PHP v8.1 or higher
+- PHP v8.1 only
 - MySQL version 5.7 or higher or MariaDB version 10.2 or higher
 - HTTPS support
 - An [ntp-synced clock](https://wiki.debian.org/NTP) to validate federation's
   incoming requests
 
-### PHP v8.1 or higher
+### PHP v8.1 only
 
-PHP version 8.1 or higher is required, with the following extensions installed:
+PHP version 8.1 is required, with the following extensions installed:
 
 - [intl](https://php.net/manual/en/intl.requirements.php)
 - [libcurl](https://php.net/manual/en/curl.requirements.php)
@@ -94,29 +94,19 @@ want to generate Video Clips. The following extensions must be installed:
 4. Add **cron tasks** on your web server for various background processes
    (replace the paths accordingly):
 
-   - For social features to work properly, this task is used to broadcast social
-     activities to your followers on the fediverse:
-
-   ```bash
-      * * * * * /path/to/php /path/to/castopod/public/index.php scheduled-activities
-   ```
-
-   - For having your episodes be broadcasted on open hubs upon publication using
-     [WebSub](https://en.wikipedia.org/wiki/WebSub):
-
    ```bash
-      * * * * * /usr/local/bin/php /castopod/public/index.php scheduled-websub-publish
+      * * * * * /path/to/php /path/to/castopod/spark tasks:run >> /dev/null 2>&1
    ```
 
-   - For Video Clips to be created (see
-     [FFmpeg requirements](#ffmpeg-v418-or-higher-for-video-clips)):
-
-   ```bash
-      * * * * * /path/to/php /path/to/castopod/public/index.php scheduled-video-clips
-   ```
+   **Note** - If you do not add this cron task, the following Castopod features
+   will not work:
 
-   > These tasks run **every minute**. You may set the frequency depending on
-   > your needs: every 5, 10 minutes or more.
+   - Importing a podcast from an existing RSS feed
+   - Broadcasting social activities to your followers in the fediverse
+   - Broadcasting episodes to open hubs using
+     [WebSub](https://en.wikipedia.org/wiki/WebSub)
+   - Generating video clips -
+     [requires FFmpeg](#optional-ffmpeg-v418-or-higher-for-video-clips)
 
 ### (recommended) Install Wizard
 
diff --git a/docs/src/sr_Latn/getting-started/docker.md b/docs/src/sr_Latn/getting-started/docker.md
index 19ce1070a657b7bb7a765121dbf1591a3ab6bd7f..75158bd612eff7da515d5c9cf9c6754b89f77442 100644
--- a/docs/src/sr_Latn/getting-started/docker.md
+++ b/docs/src/sr_Latn/getting-started/docker.md
@@ -14,8 +14,6 @@ process:
   with all of Castopod dependencies
 - [**`castopod/web-server`**](https://hub.docker.com/r/castopod/web-server): an
   Nginx configuration for Castopod
-- [**`castopod/video-clipper`**](https://hub.docker.com/r/castopod/video-clipper):
-  an optional image building videoclips thanks to ffmpeg
 
 Additionally, Castopod requires a MySQL-compatible database. A Redis database
 can be added as a cache handler.
@@ -24,7 +22,6 @@ can be added as a cache handler.
 
 - `develop` [unstable], latest development branch build
 - `beta` [stable], latest beta version build
-- `1.0.0-beta.x` [stable], specific beta version build (since `1.0.0-beta.22`)
 - `latest` [stable], latest version build
 - `1.x.x` [stable], specific version build (since `1.0.0`)
 
@@ -39,7 +36,7 @@ can be added as a cache handler.
 
     services:
       app:
-        image: castopod/app:latest
+        image: castopod/castopod:latest
         container_name: "castopod-app"
         volumes:
           - castopod-media:/var/www/castopod/public/media
@@ -112,16 +109,6 @@ can be added as a cache handler.
 
 ## Environment Variables
 
-- **castopod/video-clipper**
-
-  | Variable name              | Type (`default`) | Default          |
-  | -------------------------- | ---------------- | ---------------- |
-  | **`CP_DATABASE_HOSTNAME`** | ?string          | `"mariadb"`      |
-  | **`CP_DATABASE_NAME`**     | ?string          | `MYSQL_DATABASE` |
-  | **`CP_DATABASE_USERNAME`** | ?string          | `MYSQL_USER`     |
-  | **`CP_DATABASE_PASSWORD`** | ?string          | `MYSQL_PASSWORD` |
-  | **`CP_DATABASE_PREFIX`**   | ?string          | `"cp_"`          |
-
 - **castopod/castopod** and **castopod/app**
 
   | Variable name                         | Type (`default`)        | Default          |
diff --git a/docs/src/sr_Latn/getting-started/install.md b/docs/src/sr_Latn/getting-started/install.md
index 03549bcc7f4cba887d1fdbe1a1ee5f1443b2dbcf..af405daf99f2e38483de298e0551dd20b46495fc 100644
--- a/docs/src/sr_Latn/getting-started/install.md
+++ b/docs/src/sr_Latn/getting-started/install.md
@@ -19,15 +19,15 @@ If you prefer using Docker, you may skip this and go straight to the
 
 ## Requirements
 
-- PHP v8.1 or higher
+- PHP v8.1 only
 - MySQL version 5.7 or higher or MariaDB version 10.2 or higher
 - HTTPS support
 - An [ntp-synced clock](https://wiki.debian.org/NTP) to validate federation's
   incoming requests
 
-### PHP v8.1 or higher
+### PHP v8.1 only
 
-PHP version 8.1 or higher is required, with the following extensions installed:
+PHP version 8.1 is required, with the following extensions installed:
 
 - [intl](https://php.net/manual/en/intl.requirements.php)
 - [libcurl](https://php.net/manual/en/curl.requirements.php)
@@ -94,29 +94,19 @@ want to generate Video Clips. The following extensions must be installed:
 4. Add **cron tasks** on your web server for various background processes
    (replace the paths accordingly):
 
-   - For social features to work properly, this task is used to broadcast social
-     activities to your followers on the fediverse:
-
-   ```bash
-      * * * * * /path/to/php /path/to/castopod/public/index.php scheduled-activities
-   ```
-
-   - For having your episodes be broadcasted on open hubs upon publication using
-     [WebSub](https://en.wikipedia.org/wiki/WebSub):
-
    ```bash
-      * * * * * /usr/local/bin/php /castopod/public/index.php scheduled-websub-publish
+      * * * * * /path/to/php /path/to/castopod/spark tasks:run >> /dev/null 2>&1
    ```
 
-   - For Video Clips to be created (see
-     [FFmpeg requirements](#ffmpeg-v418-or-higher-for-video-clips)):
-
-   ```bash
-      * * * * * /path/to/php /path/to/castopod/public/index.php scheduled-video-clips
-   ```
+   **Note** - If you do not add this cron task, the following Castopod features
+   will not work:
 
-   > These tasks run **every minute**. You may set the frequency depending on
-   > your needs: every 5, 10 minutes or more.
+   - Importing a podcast from an existing RSS feed
+   - Broadcasting social activities to your followers in the fediverse
+   - Broadcasting episodes to open hubs using
+     [WebSub](https://en.wikipedia.org/wiki/WebSub)
+   - Generating video clips -
+     [requires FFmpeg](#optional-ffmpeg-v418-or-higher-for-video-clips)
 
 ### (recommended) Install Wizard
 
diff --git a/docs/src/sv/getting-started/auth.md b/docs/src/sv/getting-started/auth.md
index d9b869ea2542c8f81787462ae1f211621daac47c..ff5d59c0676113f4f1c0a2abd2b272f0686b4185 100644
--- a/docs/src/sv/getting-started/auth.md
+++ b/docs/src/sv/getting-started/auth.md
@@ -17,11 +17,11 @@ coupled with custom rules. Roles and permissions are defined at two levels:
 
 <!-- AUTH-INSTANCE-ROLES-LIST:START - Do not remove or modify this section -->
 
-| role                | description                             | permissions                                                                                |
-| ------------------- | --------------------------------------- | ------------------------------------------------------------------------------------------ |
-| Super administratör | Har fullständig kontroll över Castopod. | admin.\*, podcasts.\*, users.manage, persons.manage, pages.manage, fediverse.manage-blocks |
-| Hanterare           | Hanterar Castopods innehåll.            | podcasts.create, podcasts.import, persons.manage, pages.manage                             |
-| Podcaster           | Generella användare av Castopod.        | admin.access                                                                               |
+| role        | description                         | permissions                                                                                |
+| ----------- | ----------------------------------- | ------------------------------------------------------------------------------------------ |
+| Super admin | Has complete control over Castopod. | admin.\*, podcasts.\*, users.manage, persons.manage, pages.manage, fediverse.manage-blocks |
+| Manager     | Manages Castopod's content.         | podcasts.create, podcasts.import, persons.manage, pages.manage                             |
+| Podcaster   | General users of Castopod.          | admin.access                                                                               |
 
 <!-- AUTH-INSTANCE-ROLES-LIST:END -->
 
@@ -29,17 +29,17 @@ coupled with custom rules. Roles and permissions are defined at two levels:
 
 <!-- AUTH-INSTANCE-PERMISSIONS-LIST:START - Do not remove or modify this section -->
 
-| permission              | description                                                                   |
-| ----------------------- | ----------------------------------------------------------------------------- |
-| admin.access            | Kan komma åt Castopod admin-området.                                          |
-| admin.settings          | Kan komma åt Castopod-inställningarna.                                        |
-| users.manage            | Kan hantera Castopod-användare.                                               |
-| persons.manage          | Kan hantera personer.                                                         |
-| pages.manage            | Kan hantera sidor.                                                            |
-| podcasts.view           | Kan se alla podcasts.                                                         |
-| podcasts.create         | Kan skapa nya podcasts.                                                       |
-| podcasts.import         | Kan importera podcasts.                                                       |
-| fediverse.manage-blocks | Kan blockera fediverse skådespelare/domäner från att interagera med Castopod. |
+| permission              | description                                                        |
+| ----------------------- | ------------------------------------------------------------------ |
+| admin.access            | Can access the Castopod admin area.                                |
+| admin.settings          | Can access the Castopod settings.                                  |
+| users.manage            | Can manage Castopod users.                                         |
+| persons.manage          | Can manage persons.                                                |
+| pages.manage            | Can manage pages.                                                  |
+| podcasts.view           | Can view all podcasts.                                             |
+| podcasts.create         | Can create new podcasts.                                           |
+| podcasts.import         | Can import podcasts.                                               |
+| fediverse.manage-blocks | Can block fediverse actors/domains from interacting with Castopod. |
 
 <!-- AUTH-INSTANCE-PERMISSIONS-LIST:END -->
 
@@ -49,12 +49,12 @@ coupled with custom rules. Roles and permissions are defined at two levels:
 
 <!-- AUTH-PODCAST-ROLES-LIST:START - Do not remove or modify this section -->
 
-| role       | description                                                   | permissions                                                                                                                                                                                                                                                                                 |
-| ---------- | ------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
-| Admin      | Har fullständig kontroll över podcast #{id}.                  | \*                                                                                                                                                                                                                                                                                          |
-| Redigerare | Hanterar innehåll och publikationer i podcast #{id}.          | view, edit, manage-import, manage-persons, manage-platforms, manage-publications, manage-notifications, interact-as, episodes.view, episodes.create, episodes.edit, episodes.delete, episodes.manage-persons, episodes.manage-clips, episodes.manage-publications, episodes.manage-comments |
-| Författare | Hanterar innehåll i podcast #{id} men kan inte publicera dem. | view, manage-persons, episodes.view, episodes.create, episodes.edit, episodes.manage-persons, episodes.manage-clips                                                                                                                                                                         |
-| Gäst       | Generell bidragsgivare till podcasten #{id}.                  | view, episodes.view                                                                                                                                                                                                                                                                         |
+| role   | description                                               | permissions                                                                                                                                                                                                                                                                                 |
+| ------ | --------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| Admin  | Has complete control of podcast #{id}.                    | \*                                                                                                                                                                                                                                                                                          |
+| Editor | Manages content and publications of podcast #{id}.        | view, edit, manage-import, manage-persons, manage-platforms, manage-publications, manage-notifications, interact-as, episodes.view, episodes.create, episodes.edit, episodes.delete, episodes.manage-persons, episodes.manage-clips, episodes.manage-publications, episodes.manage-comments |
+| Author | Manages content of podcast #{id} but cannot publish them. | view, manage-persons, episodes.view, episodes.create, episodes.edit, episodes.manage-persons, episodes.manage-clips                                                                                                                                                                         |
+| Guest  | General contributor of the podcast #{id}.                 | view, episodes.view                                                                                                                                                                                                                                                                         |
 
 <!-- AUTH-PODCAST-ROLES-LIST:END -->
 
@@ -62,26 +62,26 @@ coupled with custom rules. Roles and permissions are defined at two levels:
 
 <!-- AUTH-PODCAST-PERMISSIONS-LIST:START - Do not remove or modify this section -->
 
-| permission                   | description                                                                      |
-| ---------------------------- | -------------------------------------------------------------------------------- |
-| view                         | Kan visa instrumentpanelen och analysen av podcast #{id}.                        |
-| edit                         | Kan redigera podcast #{id}.                                                      |
-| delete                       | Kan ta bort podcast #{id}.                                                       |
-| manage-import                | Kan synkronisera importerad podcast #{id}.                                       |
-| manage-persons               | Kan hantera prenumerationer på podcast #{id}.                                    |
-| manage-subscriptions         | Kan hantera prenumerationer på podcast #{id}.                                    |
-| manage-contributors          | Kan hantera bidragsgivare för podcast #{id}.                                     |
-| manage-platforms             | Kan sätta/ta bort plattformslänkar för podcast #{id}.                            |
-| manage-publications          | Kan publicera podcast #{id}.                                                     |
-| manage-notifications         | Can view and mark notifications as read for podcast #{id}.                       |
-| interact-as                  | Kan interagera som podcasten #{id} för att favorita, dela eller svara på inlägg. |
-| episodes.view                | Kan visa instrumentpanelen och analysen av podcast #{id}.                        |
-| episodes.create              | Kan skapa avsnitt för podcast #{id}.                                             |
-| episodes.edit                | Kan redigera podcast #{id}.                                                      |
-| episodes.delete              | Kan ta bort podcast #{id}.                                                       |
-| episodes.manage-persons      | Kan hantera prenumerationer på podcast #{id}.                                    |
-| episodes.manage-clips        | Kan hantera videoklipp eller ljudklipp från podcasten #{id}.                     |
-| episodes.manage-publications | Kan publicera podcast #{id}.                                                     |
-| episodes.manage-comments     | Kan skapa/ta bort avsnitt kommentarer från podcasten #{id}.                      |
+| permission                   | description                                                              |
+| ---------------------------- | ------------------------------------------------------------------------ |
+| view                         | Can view dashboard and analytics of podcast #{id}.                       |
+| edit                         | Can edit podcast #{id}.                                                  |
+| delete                       | Can delete podcast #{id}.                                                |
+| manage-import                | Can synchronize imported podcast #{id}.                                  |
+| manage-persons               | Can manage subscriptions of podcast #{id}.                               |
+| manage-subscriptions         | Can manage subscriptions of podcast #{id}.                               |
+| manage-contributors          | Can manage contributors of podcast #{id}.                                |
+| manage-platforms             | Can set/remove platform links of podcast #{id}.                          |
+| manage-publications          | Can publish podcast #{id}.                                               |
+| manage-notifications         | Can view and mark notifications as read for podcast #{id}.               |
+| interact-as                  | Can interact as the podcast #{id} to favourite, share or reply to posts. |
+| episodes.view                | Can view dashboard and analytics of podcast #{id}.                       |
+| episodes.create              | Can create episodes for podcast #{id}.                                   |
+| episodes.edit                | Can edit podcast #{id}.                                                  |
+| episodes.delete              | Can delete podcast #{id}.                                                |
+| episodes.manage-persons      | Can manage subscriptions of podcast #{id}.                               |
+| episodes.manage-clips        | Can manage video clips or soundbites of podcast #{id}.                   |
+| episodes.manage-publications | Can publish podcast #{id}.                                               |
+| episodes.manage-comments     | Can create/remove episode comments of podcast #{id}.                     |
 
 <!-- AUTH-PODCAST-PERMISSIONS-LIST:END -->
diff --git a/docs/src/sv/getting-started/docker.md b/docs/src/sv/getting-started/docker.md
index 2855b568c9d64f22e6026cdd3492a8a2b1dac8e7..762465fbc32ad38f67cbbb20d371d5d1ba4ffec1 100644
--- a/docs/src/sv/getting-started/docker.md
+++ b/docs/src/sv/getting-started/docker.md
@@ -14,8 +14,6 @@ process:
   alla Castopod-beroenden
 - [**`castopod/web-server`**](https://hub.docker.com/r/castopod/web-server): en
   Nginx konfiguration för Castopod
-- [**`castopod/video-clipper`**](https://hub.docker.com/r/castopod/video-clipper):
-  an optional image building videoclips thanks to ffmpeg
 
 Dessutom kräver Castopod en MySQL-kompatibel databas. En Redis databas kan
 läggas till som cachehanterare.
@@ -24,7 +22,6 @@ läggas till som cachehanterare.
 
 - `utveckla` [unstable], senaste utvecklingsgrenen
 - `beta` [stable], senaste betaversionen bygger
-- `1.0.0-beta.x` [stable], specifik betaversion build (sedan `1.0.0-beta.22`)
 - `latest` [stable], latest version build
 - `1.x.x` [stable], specific version build (since `1.0.0`)
 
@@ -39,7 +36,7 @@ läggas till som cachehanterare.
 
     services:
       app:
-        image: castopod/app:latest
+        image: castopod/castopod:latest
         container_name: "castopod-app"
         volumes:
           - castopod-media:/var/www/castopod/public/media
@@ -114,23 +111,13 @@ läggas till som cachehanterare.
 
 ## Miljövariabler
 
-- **castopod/video-clipper**
-
-  | Variabel namn              | Type (`default`) | Standard         |
-  | -------------------------- | ---------------- | ---------------- |
-  | **`CP_DATABASE_HOSTNAME`** | ?string          | `"mariadb"`      |
-  | **`CP_DATABASE_NAME`**     | ?sträng          | `MYSQL_DATABASE` |
-  | **`CP_DATABASE_USERNAME`** | ?string          | `MYSQL_USER`     |
-  | **`CP_DATABASE_PASSWORD`** | ?string          | `MYSQL_PASSWORD` |
-  | **`CP_DATABASE_PREFIX`**   | ?string          | `"cp_"`          |
-
 - **castopod/castopod** and **castopod/app**
 
-  | Variabelt namn                        | Type (`default`)        | Standard         |
+  | Variabel namn                         | Type (`default`)        | Standard         |
   | ------------------------------------- | ----------------------- | ---------------- |
   | **`CP_BASEURL`**                      | sträng                  | `odefinierad`    |
   | **`CP_MEDIA_BASEURL`**                | ?string                 | `CP_BASEURL`     |
-  | **`CP_ADMIN_GATEWAY`**                | ?string                 | `"cp-admin"`     |
+  | **`CP_ADMIN_GATEWAY`**                | ?sträng                 | `"cp-admin"`     |
   | **`CP_AUTH_GATEWAY`**                 | ?string                 | `"cp-auth"`      |
   | **`CP_ANALYTICS_SALT`**               | string                  | `odefinierad`    |
   | **`CP_DATABASE_HOSTNAME`**            | ?string                 | `"mariadb"`      |
@@ -166,8 +153,8 @@ läggas till som cachehanterare.
 
 - **castopod/web-server**
 
-  | Variable name          | Typ                   | Default |
-  | ---------------------- | --------------------- | ------- |
-  | **`CP_APP_HOSTNAME`**  | ?string               | `"app"` |
-  | **`CP_MAX_BODY_SIZE`** | ?number (with suffix) | `512M`  |
-  | **`CP_TIMEOUT`**       | ?number               | `900`   |
+  | Variabelt namn         | Typ                   | Standard |
+  | ---------------------- | --------------------- | -------- |
+  | **`CP_APP_HOSTNAME`**  | ?string               | `"app"`  |
+  | **`CP_MAX_BODY_SIZE`** | ?number (with suffix) | `512M`   |
+  | **`CP_TIMEOUT`**       | ?number               | `900`    |
diff --git a/docs/src/sv/getting-started/install.md b/docs/src/sv/getting-started/install.md
index b47727ee374d99bd5181f88377a8c41d7c993f8b..27aa903abe2d02940f4eed93beb279c74106342a 100644
--- a/docs/src/sv/getting-started/install.md
+++ b/docs/src/sv/getting-started/install.md
@@ -20,15 +20,15 @@ Om du föredrar att använda Docker, kan du hoppa över detta och gå direkt til
 
 ## Krav
 
-- PHP v8.1 or higher
+- PHP v8.1 only
 - MySQL version 5.7 eller högre eller MariaDB version 10.2 eller högre
 - Stöd för HTTPS
 - An [ntp-synced clock](https://wiki.debian.org/NTP) to validate federation's
   incoming requests
 
-### PHP v8.1 or higher
+### PHP v8.1 only
 
-PHP version 8.1 or higher is required, with the following extensions installed:
+PHP version 8.1 is required, with the following extensions installed:
 
 - [intl](https://php.net/manual/en/intl.requirements.php)
 - [libcurl](https://php.net/manual/en/curl.requirements.php)
@@ -92,32 +92,22 @@ generera videoklipp. Följande tillägg måste installeras:
    på webbservern om du inte redan har det.
    - ⚠️ Sätt webbserverdokumentroten till `public/` undermappen i mappen
      `castopod`.
-4. Lägg till **cron-uppgifter** på din webbserver för olika bakgrundsprocesser
-   (byt ut sökvägarna därefter):
-
-   - För att sociala funktioner ska fungera korrekt, används denna uppgift för
-     att sända sociala aktiviteter till dina anhängare på fediverse:
-
-   ```bash
-      * * * * * /path/to/php /path/to/castopod/public/index.php scheduled-activities
-   ```
-
-   - För att dina episoder ska sändas på öppna hubbar vid publicering med
-     [WebSub](https://en.wikipedia.org/wiki/WebSub):
+4. Add **cron tasks** on your web server for various background processes
+   (replace the paths accordingly):
 
    ```bash
-      * * * * * /usr/local/bin/php /castopod/public/index.php scheduled-websub-publish
+      * * * * * /path/to/php /path/to/castopod/spark tasks:run >> /dev/null 2>&1
    ```
 
-   - För att videoklipp ska skapas (se
-     [FFmpeg krav](#ffmpeg-v418-or-higher-for-video-clips)):
-
-   ```bash
-      * * * * * /path/to/php /path/to/castopod/public/index.php scheduled-video-clips
-   ```
+   **Note** - If you do not add this cron task, the following Castopod features
+   will not work:
 
-   > Dessa uppgifter körs **varje minut**. Du kan ställa in frekvensen beroende
-   > på dina behov: var 5, 10 minuter eller mer.
+   - Importing a podcast from an existing RSS feed
+   - Broadcasting social activities to your followers in the fediverse
+   - Broadcasting episodes to open hubs using
+     [WebSub](https://en.wikipedia.org/wiki/WebSub)
+   - Generating video clips -
+     [requires FFmpeg](#optional-ffmpeg-v418-or-higher-for-video-clips)
 
 ### (rekommenderas) Installationsguide
 
diff --git a/docs/src/uk/getting-started/auth.md b/docs/src/uk/getting-started/auth.md
index 0c330f062dd746fb25b8b84833b4ef7487f1e036..f2548d7e51434077baf68be4a3a8f814acc8cf0e 100644
--- a/docs/src/uk/getting-started/auth.md
+++ b/docs/src/uk/getting-started/auth.md
@@ -17,11 +17,11 @@ coupled with custom rules. Roles and permissions are defined at two levels:
 
 <!-- AUTH-INSTANCE-ROLES-LIST:START - Do not remove or modify this section -->
 
-| role        | description                         | permissions                                                                                |
-| ----------- | ----------------------------------- | ------------------------------------------------------------------------------------------ |
-| Super admin | Has complete control over Castopod. | admin.\*, podcasts.\*, users.manage, persons.manage, pages.manage, fediverse.manage-blocks |
-| Manager     | Manages Castopod's content.         | podcasts.create, podcasts.import, persons.manage, pages.manage                             |
-| Podcaster   | General users of Castopod.          | admin.access                                                                               |
+| role       | description                         | permissions                                                                                |
+| ---------- | ----------------------------------- | ------------------------------------------------------------------------------------------ |
+| Суперадмін | Has complete control over Castopod. | admin.\*, podcasts.\*, users.manage, persons.manage, pages.manage, fediverse.manage-blocks |
+| Менеджер   | Manages Castopod's content.         | podcasts.create, podcasts.import, persons.manage, pages.manage                             |
+| Підкастер  | General users of Castopod.          | admin.access                                                                               |
 
 <!-- AUTH-INSTANCE-ROLES-LIST:END -->
 
@@ -29,7 +29,7 @@ coupled with custom rules. Roles and permissions are defined at two levels:
 
 <!-- AUTH-INSTANCE-PERMISSIONS-LIST:START - Do not remove or modify this section -->
 
-| permission              | description                                                        |
+| permission              | Опис                                                               |
 | ----------------------- | ------------------------------------------------------------------ |
 | admin.access            | Can access the Castopod admin area.                                |
 | admin.settings          | Can access the Castopod settings.                                  |
diff --git a/docs/src/uk/getting-started/docker.md b/docs/src/uk/getting-started/docker.md
index 19ce1070a657b7bb7a765121dbf1591a3ab6bd7f..75158bd612eff7da515d5c9cf9c6754b89f77442 100644
--- a/docs/src/uk/getting-started/docker.md
+++ b/docs/src/uk/getting-started/docker.md
@@ -14,8 +14,6 @@ process:
   with all of Castopod dependencies
 - [**`castopod/web-server`**](https://hub.docker.com/r/castopod/web-server): an
   Nginx configuration for Castopod
-- [**`castopod/video-clipper`**](https://hub.docker.com/r/castopod/video-clipper):
-  an optional image building videoclips thanks to ffmpeg
 
 Additionally, Castopod requires a MySQL-compatible database. A Redis database
 can be added as a cache handler.
@@ -24,7 +22,6 @@ can be added as a cache handler.
 
 - `develop` [unstable], latest development branch build
 - `beta` [stable], latest beta version build
-- `1.0.0-beta.x` [stable], specific beta version build (since `1.0.0-beta.22`)
 - `latest` [stable], latest version build
 - `1.x.x` [stable], specific version build (since `1.0.0`)
 
@@ -39,7 +36,7 @@ can be added as a cache handler.
 
     services:
       app:
-        image: castopod/app:latest
+        image: castopod/castopod:latest
         container_name: "castopod-app"
         volumes:
           - castopod-media:/var/www/castopod/public/media
@@ -112,16 +109,6 @@ can be added as a cache handler.
 
 ## Environment Variables
 
-- **castopod/video-clipper**
-
-  | Variable name              | Type (`default`) | Default          |
-  | -------------------------- | ---------------- | ---------------- |
-  | **`CP_DATABASE_HOSTNAME`** | ?string          | `"mariadb"`      |
-  | **`CP_DATABASE_NAME`**     | ?string          | `MYSQL_DATABASE` |
-  | **`CP_DATABASE_USERNAME`** | ?string          | `MYSQL_USER`     |
-  | **`CP_DATABASE_PASSWORD`** | ?string          | `MYSQL_PASSWORD` |
-  | **`CP_DATABASE_PREFIX`**   | ?string          | `"cp_"`          |
-
 - **castopod/castopod** and **castopod/app**
 
   | Variable name                         | Type (`default`)        | Default          |
diff --git a/docs/src/uk/getting-started/install.md b/docs/src/uk/getting-started/install.md
index 03549bcc7f4cba887d1fdbe1a1ee5f1443b2dbcf..af405daf99f2e38483de298e0551dd20b46495fc 100644
--- a/docs/src/uk/getting-started/install.md
+++ b/docs/src/uk/getting-started/install.md
@@ -19,15 +19,15 @@ If you prefer using Docker, you may skip this and go straight to the
 
 ## Requirements
 
-- PHP v8.1 or higher
+- PHP v8.1 only
 - MySQL version 5.7 or higher or MariaDB version 10.2 or higher
 - HTTPS support
 - An [ntp-synced clock](https://wiki.debian.org/NTP) to validate federation's
   incoming requests
 
-### PHP v8.1 or higher
+### PHP v8.1 only
 
-PHP version 8.1 or higher is required, with the following extensions installed:
+PHP version 8.1 is required, with the following extensions installed:
 
 - [intl](https://php.net/manual/en/intl.requirements.php)
 - [libcurl](https://php.net/manual/en/curl.requirements.php)
@@ -94,29 +94,19 @@ want to generate Video Clips. The following extensions must be installed:
 4. Add **cron tasks** on your web server for various background processes
    (replace the paths accordingly):
 
-   - For social features to work properly, this task is used to broadcast social
-     activities to your followers on the fediverse:
-
-   ```bash
-      * * * * * /path/to/php /path/to/castopod/public/index.php scheduled-activities
-   ```
-
-   - For having your episodes be broadcasted on open hubs upon publication using
-     [WebSub](https://en.wikipedia.org/wiki/WebSub):
-
    ```bash
-      * * * * * /usr/local/bin/php /castopod/public/index.php scheduled-websub-publish
+      * * * * * /path/to/php /path/to/castopod/spark tasks:run >> /dev/null 2>&1
    ```
 
-   - For Video Clips to be created (see
-     [FFmpeg requirements](#ffmpeg-v418-or-higher-for-video-clips)):
-
-   ```bash
-      * * * * * /path/to/php /path/to/castopod/public/index.php scheduled-video-clips
-   ```
+   **Note** - If you do not add this cron task, the following Castopod features
+   will not work:
 
-   > These tasks run **every minute**. You may set the frequency depending on
-   > your needs: every 5, 10 minutes or more.
+   - Importing a podcast from an existing RSS feed
+   - Broadcasting social activities to your followers in the fediverse
+   - Broadcasting episodes to open hubs using
+     [WebSub](https://en.wikipedia.org/wiki/WebSub)
+   - Generating video clips -
+     [requires FFmpeg](#optional-ffmpeg-v418-or-higher-for-video-clips)
 
 ### (recommended) Install Wizard
 
diff --git a/docs/src/zh-Hans/getting-started/auth.md b/docs/src/zh-Hans/getting-started/auth.md
index 5c3109d057f6bf63f514b3607fdbaadf15faab17..c307588f588c0b077fe2955ab33ac43bb317a766 100644
--- a/docs/src/zh-Hans/getting-started/auth.md
+++ b/docs/src/zh-Hans/getting-started/auth.md
@@ -17,7 +17,7 @@ Castopod 使用 `codeigniter/shield` 处理身份验证和授权 与自定义规
 
 <!-- AUTH-INSTANCE-ROLES-LIST:START - Do not remove or modify this section -->
 
-| role       | description                  | permissions                                                                                |
+| 角色       | 描述                         | 权限                                                                                       |
 | ---------- | ---------------------------- | ------------------------------------------------------------------------------------------ |
 | 超级管理员 | 拥有对 Castopod 的完全控制。 | admin.\*, podcasts.\*, users.manage, persons.manage, pages.manage, fediverse.manage-blocks |
 | 管理       | 管理 Castopod 的内容。       | podcasts.create, podcasts.import, persons.manage, pages.manage                             |
@@ -29,7 +29,7 @@ Castopod 使用 `codeigniter/shield` 处理身份验证和授权 与自定义规
 
 <!-- AUTH-INSTANCE-PERMISSIONS-LIST:START - Do not remove or modify this section -->
 
-| permission              | description                                 |
+| 权限                    | 描述                                        |
 | ----------------------- | ------------------------------------------- |
 | admin.access            | 可以访问 Castopod 管理区域。                |
 | admin.settings          | 可以访问 Castopod 设置。                    |
@@ -49,7 +49,7 @@ Castopod 使用 `codeigniter/shield` 处理身份验证和授权 与自定义规
 
 <!-- AUTH-PODCAST-ROLES-LIST:START - Do not remove or modify this section -->
 
-| role   | description                         | permissions                                                                                                                                                                                                                                                                                 |
+| 角色   | 描述                                | 权限                                                                                                                                                                                                                                                                                        |
 | ------ | ----------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
 | 管理员 | 完全控制播客 #{id}。                | \*                                                                                                                                                                                                                                                                                          |
 | 编辑   | 管理播客 #{id} 的内容和出版物。     | view, edit, manage-import, manage-persons, manage-platforms, manage-publications, manage-notifications, interact-as, episodes.view, episodes.create, episodes.edit, episodes.delete, episodes.manage-persons, episodes.manage-clips, episodes.manage-publications, episodes.manage-comments |
@@ -62,11 +62,11 @@ Castopod 使用 `codeigniter/shield` 处理身份验证和授权 与自定义规
 
 <!-- AUTH-PODCAST-PERMISSIONS-LIST:START - Do not remove or modify this section -->
 
-| permission                   | description                                         |
+| 权限                         | 描述                                                |
 | ---------------------------- | --------------------------------------------------- |
 | view                         | 可以查看播客 #{id} 的仪表板和分析。                 |
 | edit                         | 可以编辑播客 #{id}。                                |
-| delete                       | 可以删除播客 #{id}。                                |
+| 删除                         | 可以删除播客 #{id}。                                |
 | manage-import                | 可以同步导入的播客 #{id}。                          |
 | manage-persons               | 可以管理播客 #{id} 的订阅。                         |
 | manage-subscriptions         | 可以管理播客 #{id} 的订阅。                         |
diff --git a/docs/src/zh-Hans/getting-started/docker.md b/docs/src/zh-Hans/getting-started/docker.md
index de29f6d7b6d6a6b3468140a1c0a32296b0111935..7467bb2cf6ece01c896c7a904991bbd5e9a3629e 100644
--- a/docs/src/zh-Hans/getting-started/docker.md
+++ b/docs/src/zh-Hans/getting-started/docker.md
@@ -13,8 +13,6 @@ Castopod 在其自动构建期间会将 3 个 Docker 映像推送到 Docker Hub
   所有 Castopod 依赖关系
 - [**`castopod/web-server`**](https://hub.docker.com/r/castopod/web-server):Castopod
   的 Nginx 配置
-- [**`castopod/video-clipper`** ](https://hub.docker.com/r/castopod/video-clipper):
-  感谢 ffmpeg 提供可选图像构建视频剪辑
 
 此外,Castopod 需要一个与 MySQL 兼容的数据库。 Redis 数据库 可以添加为缓存处理器
 。
@@ -23,7 +21,6 @@ Castopod 在其自动构建期间会将 3 个 Docker 映像推送到 Docker Hub
 
 - `develop` [unstable], 最新开发分支版本
 - `beta` [stable],最新的 beta 版本构建
-- `1.0.0-beta.x` [stable],特定 beta 版本构建 (自 `1.0.0-beta.22` 起)
 - `latest` [stable],最新版本构建
 - `1.x.x` [stable],特定版本构建(自 `1.0.0` 起)
 
@@ -38,7 +35,7 @@ Castopod 在其自动构建期间会将 3 个 Docker 映像推送到 Docker Hub
 
     services:
       app:
-        image: castopod/app:latest
+        image: castopod/castopod:latest
         container_name: "castopod-app"
         volumes:
           - castopod-media:/var/www/castopod/public/media
@@ -111,19 +108,9 @@ Castopod 在其自动构建期间会将 3 个 Docker 映像推送到 Docker Hub
 
 ## 环境变量
 
-- **castopod/video-clipper**
-
-  | 变量名称                   | 类型 (`默认值`) | Default          |
-  | -------------------------- | --------------- | ---------------- |
-  | **`CP_DATABASE_HOSTNAME`** | ?string         | `"mariadb"`      |
-  | **`CP_DATABASE_NAME`**     | ?string         | `MYSQL_DATABASE` |
-  | **`CP_DATABASE_USERNAME`** | ?string         | `MYSQL_USER`     |
-  | **`CP_DATABASE_PASSWORD`** | ?string         | `MYSQL_PASSWORD` |
-  | **`CP_DATABASE_PREFIX`**   | ?string         | `"cp_"`          |
-
 - **castopod/castopod** and **castopod/app**
 
-  | 变量名称                              | 类型 (`default`)        | Default          |
+  | 变量名称                              | 类型 (`默认值`)         | Default          |
   | ------------------------------------- | ----------------------- | ---------------- |
   | **`CP_BASEURL`**                      | string                  | `undefined`      |
   | **`CP_MEDIA_BASEURL`**                | ?string                 | `CP_BASEURL`     |
@@ -163,7 +150,7 @@ Castopod 在其自动构建期间会将 3 个 Docker 映像推送到 Docker Hub
 
 - **castopod/web-server**
 
-  | 变量名称               | Type                  | 默认    |
+  | 变量名称               | Type                  | Default |
   | ---------------------- | --------------------- | ------- |
   | **`CP_APP_HOSTNAME`**  | ?string               | `"app"` |
   | **`CP_MAX_BODY_SIZE`** | ?number (with suffix) | `512M`  |
diff --git a/docs/src/zh-Hans/getting-started/install.md b/docs/src/zh-Hans/getting-started/install.md
index b59c6c46cbc1b354e7a7c7e1cbf9db5411ee4059..f2e383dee387ac04c26a9a86e1433b3b0ce7785a 100644
--- a/docs/src/zh-Hans/getting-started/install.md
+++ b/docs/src/zh-Hans/getting-started/install.md
@@ -19,15 +19,15 @@ Castopod 的安装非常简单。 你能在大多数兼容的 PHP-MySQL 的服
 
 ## 要求
 
-- PHP 8.1 或更高版本
+- PHP v8.1 only
 - MySQL 5.7 或更高版本与 MariaDB 10.2 或更高版本
 - HTTPS 支持
 - An [ntp-synced clock](https://wiki.debian.org/NTP) to validate federation's
   incoming requests
 
-### PHP 8.1 或更高版本
+### PHP v8.1 only
 
-需要 PHP 8.1 或更高版本,并安装以下扩展:
+PHP version 8.1 is required, with the following extensions installed:
 
 - [intl](https://php.net/manual/en/intl.requirements.php)
 - [libcurl](https://php.net/manual/en/curl.requirements.php)
@@ -86,30 +86,22 @@ Castopod 仅适用于受支持的 MySQL 5.7 或更高版本的兼容数据库。
 3. 下载最新的 [Castopod](https://castopod.org/) 到 web 服务器并解压(如果尚未下
    载)。
    - ⚠️ 将 web 服务器根目录设置为 `castopod` 文件夹中的 `public/` 子文件夹。
-4. 在 Web 服务器上为各种后台进程添加 **cron 任务** (相应地替换路径)
-
-   - 为了使社交功能正常工作,此任务用于向联邦宇宙中的关注者发送活动:
-
-   ```bash
-      * * * * * /path/to/php /path/to/castopod/public/index.php scheduled-activities
-   ```
-
-   - 使用 [WebSub](https://en.wikipedia.org/wiki/WebSub) 在发布时将您的剧集广播
-     在公共平台:
+4. Add **cron tasks** on your web server for various background processes
+   (replace the paths accordingly):
 
    ```bash
-      * * * * * /usr/local/bin/php /castopod/public/index.php scheduled-websub-publish
+      * * * * * /path/to/php /path/to/castopod/spark tasks:run >> /dev/null 2>&1
    ```
 
-   - 如果需要使用视频素材(请参阅
-     [FFmpeg 要求](#ffmpeg-v418-or-higher-for-video-clips)):
-
-   ```bash
-      * * * * * /path/to/php /path/to/castopod/public/index.php scheduled-video-clips
-   ```
+   **Note** - If you do not add this cron task, the following Castopod features
+   will not work:
 
-   > 这些任务 **每分钟**运行一次。 你可以根据需要设置频率:每 5 分钟,10 分钟或
-   > 更长的时间。
+   - Importing a podcast from an existing RSS feed
+   - Broadcasting social activities to your followers in the fediverse
+   - Broadcasting episodes to open hubs using
+     [WebSub](https://en.wikipedia.org/wiki/WebSub)
+   - Generating video clips -
+     [requires FFmpeg](#optional-ffmpeg-v418-or-higher-for-video-clips)
 
 ### (推荐) 安装向导
 
diff --git a/docs/src/zh-Hans/index.md b/docs/src/zh-Hans/index.md
index 33d5cf3435300eb3da9bfe1a299ea11ed39feb4c..2bbff0a723c07d7131ad88d04b5e9621b17c7b63 100644
--- a/docs/src/zh-Hans/index.md
+++ b/docs/src/zh-Hans/index.md
@@ -130,7 +130,7 @@ great and [a lot of them](https://podcastindex.org/apps) are jumping into the
 Podcasting 2.0 wagon just like Castopod!
 
 Each of these solutions differ from one another, you may compare with the
-[list of features](#功能特色).
+[list of features](#features).
 
 That being said, there are two main differences with other podcasting solutions:
 
diff --git a/modules/Admin/Language/ar/Breadcrumb.php b/modules/Admin/Language/ar/Breadcrumb.php
index 12263f986ddb47c1f822be8d545dfc5ae47dfa7e..66a2065d109a285e9193502b59a14d90e471b485 100644
--- a/modules/Admin/Language/ar/Breadcrumb.php
+++ b/modules/Admin/Language/ar/Breadcrumb.php
@@ -36,7 +36,7 @@ return [
     'users' => 'مستخدمون',
     'my-account' => 'حسابي',
     'change-password' => 'تغيير الكلمة السرية',
-    'import' => 'feed import',
+    'imports' => 'imports',
     'platforms' => 'منصات',
     'social' => 'شبكات التواصل الاجتماعي',
     'funding' => 'funding',
diff --git a/modules/Admin/Language/ar/Navigation.php b/modules/Admin/Language/ar/Navigation.php
index 5fab3c3ec7565e309b9938849dacc8aad0ee998d..e87f69c6f95b8d47ec59bc44d7540265eee24c81 100644
--- a/modules/Admin/Language/ar/Navigation.php
+++ b/modules/Admin/Language/ar/Navigation.php
@@ -17,7 +17,8 @@ return [
     'podcasts' => 'البودكاستات',
     'podcast-list' => 'كافة البودكاستات',
     'podcast-create' => 'بودكاست جديد',
-    'podcast-import' => 'استيراد بودكاست',
+    'all-podcast-imports' => 'All Podcast imports',
+    'podcast-imports-add' => 'Import a podcast',
     'persons' => 'أشخاص',
     'person-list' => 'All persons',
     'person-create' => 'New person',
diff --git a/modules/Admin/Language/ar/Podcast.php b/modules/Admin/Language/ar/Podcast.php
index d3d649382911d1d0dc630dabe9d2df6e62c729a8..949479d40b096b1a8810ae977ee9ba5664c167fe 100644
--- a/modules/Admin/Language/ar/Podcast.php
+++ b/modules/Admin/Language/ar/Podcast.php
@@ -13,6 +13,7 @@ return [
     'no_podcast' => 'No podcast found!',
     'create' => 'إنشاء بودكاست',
     'import' => 'استيراد بودكاست',
+    'all_imports' => 'Podcast imports',
     'new_episode' => 'حلقة جديدة',
     'view' => 'View podcast',
     'edit' => 'Edit podcast',
@@ -25,6 +26,8 @@ return [
     'latest_episodes' => 'أحدث الحلقات',
     'see_all_episodes' => 'See all episodes',
     'draft' => 'Draft',
+    'sync_feed' => 'Synchronize feed',
+    'sync_feed_hint' => 'Import this podcast\'s latest episodes',
     'messages' => [
         'createSuccess' => 'Podcast successfully created!',
         'editSuccess' => 'Podcast has been successfully updated!',
@@ -48,7 +51,6 @@ return [
             other {# episodes were}
         } added to the podcast!',
         'podcastFeedUpToDate' => 'Podcast is already up to date.',
-        'podcastNotImported' => 'Podcast could not be updated as it was not imported.',
         'publishError' => 'This podcast is either already published or scheduled for publication.',
         'publishEditError' => 'This podcast is not scheduled for publication.',
         'publishCancelSuccess' => 'Podcast publication successfully cancelled!',
@@ -125,8 +127,6 @@ return [
         'new_feed_url' => 'New feed URL',
         'new_feed_url_hint' => 'Use this field when you move to another domain or podcast hosting platform. By default, the value is set to the current RSS URL if the podcast is imported.',
         'old_feed_url' => 'Old feed URL',
-        'update_feed' => 'Update feed',
-        'update_feed_tip' => 'Import this podcast\'s latest episodes',
         'partnership' => 'Partnership',
         'partner_id' => 'ID',
         'partner_link_url' => 'Link URL',
diff --git a/modules/Admin/Language/ar/PodcastNavigation.php b/modules/Admin/Language/ar/PodcastNavigation.php
index ad114d10219d056a6fc1535f9158ab96c32b5bee..1f34f48cf2af9f5119744d53fd9a00f7b1255048 100644
--- a/modules/Admin/Language/ar/PodcastNavigation.php
+++ b/modules/Admin/Language/ar/PodcastNavigation.php
@@ -14,6 +14,7 @@ return [
     'podcast-view' => 'الرئيسية',
     'podcast-edit' => 'Edit podcast',
     'podcast-persons-manage' => 'Manage persons',
+    'podcast-imports' => 'Podcast imports',
     'episodes' => 'الحلقات',
     'episode-list' => 'جميع الحلقات',
     'episode-create' => 'حلقة جديدة',
diff --git a/modules/Admin/Language/br/Breadcrumb.php b/modules/Admin/Language/br/Breadcrumb.php
index 8bcec91fee2673eb14aba59a8fd414b383307332..040724513599437ab0c8e2fa138b5e0eb558db52 100644
--- a/modules/Admin/Language/br/Breadcrumb.php
+++ b/modules/Admin/Language/br/Breadcrumb.php
@@ -36,7 +36,7 @@ return [
     'users' => 'implijerien·ezed',
     'my-account' => 'ma c\'hont',
     'change-password' => 'kemmañ ar ger-tremen',
-    'import' => 'enporzhiañ ul lanv',
+    'imports' => 'imports',
     'platforms' => 'savennoù',
     'social' => 'rouedadoù sokial',
     'funding' => 'arc\'hantaouiñ',
diff --git a/modules/Admin/Language/br/Navigation.php b/modules/Admin/Language/br/Navigation.php
index a445181f9ca58821d2ae426e316e3d52fff49116..80783da73b8cbbd660a04bff21afa97d248c7ae7 100644
--- a/modules/Admin/Language/br/Navigation.php
+++ b/modules/Admin/Language/br/Navigation.php
@@ -17,7 +17,8 @@ return [
     'podcasts' => 'Podkastoù',
     'podcast-list' => 'An holl bodkastoù',
     'podcast-create' => 'Krouiñ ur podkast',
-    'podcast-import' => 'Enporzhiañ ur podkast',
+    'all-podcast-imports' => 'All Podcast imports',
+    'podcast-imports-add' => 'Import a podcast',
     'persons' => 'Emellerien·ezed',
     'person-list' => 'An holl emellerien·ezed',
     'person-create' => 'Krouiñ un emeller·ez',
diff --git a/modules/Admin/Language/br/Podcast.php b/modules/Admin/Language/br/Podcast.php
index d7e35ea7f23c30dd5da7ed42492c5529a1deb05c..0ef55dbfff28325cb56ccbdce6a196f197235f8e 100644
--- a/modules/Admin/Language/br/Podcast.php
+++ b/modules/Admin/Language/br/Podcast.php
@@ -13,6 +13,7 @@ return [
     'no_podcast' => 'N\'eo bet kavet podkast ebet!',
     'create' => 'Krouiñ ur podkast',
     'import' => 'Enporzhiañ ur podkast',
+    'all_imports' => 'Podcast imports',
     'new_episode' => 'Rann nevez',
     'view' => 'Gwelet ar podkast',
     'edit' => 'Kemmañ ar podkast',
@@ -25,6 +26,8 @@ return [
     'latest_episodes' => 'Rannoù diwezhañ',
     'see_all_episodes' => 'Gwelet an holl rannoù',
     'draft' => 'Brouilhed',
+    'sync_feed' => 'Synchronize feed',
+    'sync_feed_hint' => 'Import this podcast\'s latest episodes',
     'messages' => [
         'createSuccess' => 'Krouet eo bet ar podkast gant berzh!',
         'editSuccess' => 'Hizivaet eo bet ar podkast gant berzh!',
@@ -51,7 +54,6 @@ return [
             other {# rann}
         } a zo bet ouzhpennet d\'ar podkast gant berzh!',
         'podcastFeedUpToDate' => 'Hizivaet eo bet ar podkast dija.',
-        'podcastNotImported' => 'C\'hwitadenn war hizivadenn ar podkast peogwir n\'eo ket bet enporzhiet.',
         'publishError' => 'Ar podkast-mañ a zo bet embannet dija pe steuñvet eo e embannadur.',
         'publishEditError' => 'N\'eo ket steuñvet embannadur ar podkast-mañ.',
         'publishCancelSuccess' => 'Nullet eo bet embannadur ar podkast gant berzh!',
@@ -128,8 +130,6 @@ return [
         'new_feed_url' => 'URL nevez al lanv',
         'new_feed_url_hint' => 'Implijit ar vaezienn-mañ pa cheñchit anv domani pe savenn herberc\'hiañ ho podkast. M\'eo enporzhiet ar podkast e vez lakaet enni URL a-vremañ al lanv dre ziouer.',
         'old_feed_url' => 'URL kozh al lanv',
-        'update_feed' => 'Hizivaat al lanv',
-        'update_feed_tip' => 'Enporzhiañ rannoù diwezhañ ar podkast-mañ',
         'partnership' => 'Kevelerezh',
         'partner_id' => 'ID',
         'partner_link_url' => 'Ere URL',
diff --git a/modules/Admin/Language/br/PodcastNavigation.php b/modules/Admin/Language/br/PodcastNavigation.php
index 5c3842caa6882934ba2df46bba3fb94077446840..928b6a9fb485acdc86fe107f7e4f017298a1bc31 100644
--- a/modules/Admin/Language/br/PodcastNavigation.php
+++ b/modules/Admin/Language/br/PodcastNavigation.php
@@ -14,6 +14,7 @@ return [
     'podcast-view' => 'Degemer',
     'podcast-edit' => 'Kemmañ ar podkast',
     'podcast-persons-manage' => 'Merañ an emellerien·ezed',
+    'podcast-imports' => 'Podcast imports',
     'episodes' => 'Rannoù',
     'episode-list' => 'An holl rannoù',
     'episode-create' => 'Rann nevez',
diff --git a/modules/Admin/Language/ca/Breadcrumb.php b/modules/Admin/Language/ca/Breadcrumb.php
index 1861a680ea0bbb5e8e9538d52b68ad322917e1e4..d16b4eaa735ea1133a6d01f7bc25905c3956165d 100644
--- a/modules/Admin/Language/ca/Breadcrumb.php
+++ b/modules/Admin/Language/ca/Breadcrumb.php
@@ -36,7 +36,7 @@ return [
     'users' => 'usuaris',
     'my-account' => 'el meu compte',
     'change-password' => 'canviar la contrasenya',
-    'import' => 'importar un feed',
+    'imports' => 'imports',
     'platforms' => 'plataformes',
     'social' => 'xarxes socials',
     'funding' => 'financiació',
diff --git a/modules/Admin/Language/ca/Navigation.php b/modules/Admin/Language/ca/Navigation.php
index 2d75ea4f5e012d6b1ebae65129793923cf5e71e6..1141ea257799f22c14766c3c828ac0a23c339aca 100644
--- a/modules/Admin/Language/ca/Navigation.php
+++ b/modules/Admin/Language/ca/Navigation.php
@@ -17,7 +17,8 @@ return [
     'podcasts' => 'Podcasts',
     'podcast-list' => 'Tots els podcasts',
     'podcast-create' => 'Nou podcast',
-    'podcast-import' => 'Importar un podcast',
+    'all-podcast-imports' => 'All Podcast imports',
+    'podcast-imports-add' => 'Import a podcast',
     'persons' => 'Persones',
     'person-list' => 'Totes les persones',
     'person-create' => 'Persona nova',
diff --git a/modules/Admin/Language/ca/Podcast.php b/modules/Admin/Language/ca/Podcast.php
index 2e0adad78039989f3052bfca332518587c6a744a..514112d89eb9f9d6b4dfb51518b52dccca98f15a 100644
--- a/modules/Admin/Language/ca/Podcast.php
+++ b/modules/Admin/Language/ca/Podcast.php
@@ -13,6 +13,7 @@ return [
     'no_podcast' => 'No s\'han trobat podcasts!',
     'create' => 'Crear un podcast',
     'import' => 'Importar el podcast',
+    'all_imports' => 'Podcast imports',
     'new_episode' => 'Nou episodi',
     'view' => 'Veure el podcast',
     'edit' => 'Editar el podcast',
@@ -25,6 +26,8 @@ return [
     'latest_episodes' => 'Darrers episodis',
     'see_all_episodes' => 'Veure tots els episodis',
     'draft' => 'Esborrany',
+    'sync_feed' => 'Synchronize feed',
+    'sync_feed_hint' => 'Import this podcast\'s latest episodes',
     'messages' => [
         'createSuccess' => 'Podcast creat correctament.',
         'editSuccess' => 'El podcast s´ha actualitzat correctament.',
@@ -48,7 +51,6 @@ return [
             other {s\'han afegit # episodis}
         } al podcast.',
         'podcastFeedUpToDate' => 'El podcast ja està actualitzat.',
-        'podcastNotImported' => 'No s\'ha pogut actualitzar el podcast perquè no s\'havia importat.',
         'publishError' => 'Aquest podcast ja està publicat o bé està programat per a la seva publicació.',
         'publishEditError' => 'Aquest podcast no està programat per a la seva publicació.',
         'publishCancelSuccess' => 'La publicació del podcast s\'ha cancel·lat correctament.',
@@ -125,8 +127,6 @@ return [
         'new_feed_url' => 'Nova adreça URL del fil RSS',
         'new_feed_url_hint' => 'Utilitzeu aquest camp quan us moveu a un altre domini o plataforma d\'allotjament de podcasts. De manera predeterminada, el valor s\'estableix a l\'URL RSS actual si s\'importa el podcast.',
         'old_feed_url' => 'Antiga adreça URL del fil RSS',
-        'update_feed' => 'Actualitzar el fil',
-        'update_feed_tip' => 'Importar els darrers episodis d\'aquest podcast',
         'partnership' => 'Socis',
         'partner_id' => 'ID',
         'partner_link_url' => 'URL de l\'enllaç',
diff --git a/modules/Admin/Language/ca/PodcastNavigation.php b/modules/Admin/Language/ca/PodcastNavigation.php
index b69962826c0365f9df511e7a9b9cbdeb25996288..d8cb6e3e5c865b53aba396583dc34e68e319b400 100644
--- a/modules/Admin/Language/ca/PodcastNavigation.php
+++ b/modules/Admin/Language/ca/PodcastNavigation.php
@@ -14,6 +14,7 @@ return [
     'podcast-view' => 'Inici',
     'podcast-edit' => 'Editar el podcast',
     'podcast-persons-manage' => 'Administrar persones',
+    'podcast-imports' => 'Podcast imports',
     'episodes' => 'Episodis',
     'episode-list' => 'Tots els episodis',
     'episode-create' => 'Nou episodi',
diff --git a/modules/Admin/Language/da/Breadcrumb.php b/modules/Admin/Language/da/Breadcrumb.php
index 558b90f76560802609ce10ed4e320521f494db53..ca6822629d0c311ca92359c4182ad8ce0ae2c86d 100644
--- a/modules/Admin/Language/da/Breadcrumb.php
+++ b/modules/Admin/Language/da/Breadcrumb.php
@@ -36,7 +36,7 @@ return [
     'users' => 'users',
     'my-account' => 'my account',
     'change-password' => 'change password',
-    'import' => 'feed import',
+    'imports' => 'imports',
     'platforms' => 'platforms',
     'social' => 'social networks',
     'funding' => 'funding',
diff --git a/modules/Admin/Language/da/Navigation.php b/modules/Admin/Language/da/Navigation.php
index 610f14345d427177b5bcbea0b56c1f56512b70ff..d0ddb4c46d3474076f5b24b7421acae0c60558d7 100644
--- a/modules/Admin/Language/da/Navigation.php
+++ b/modules/Admin/Language/da/Navigation.php
@@ -17,7 +17,8 @@ return [
     'podcasts' => 'Podcasts',
     'podcast-list' => 'All podcasts',
     'podcast-create' => 'New podcast',
-    'podcast-import' => 'Import a podcast',
+    'all-podcast-imports' => 'All Podcast imports',
+    'podcast-imports-add' => 'Import a podcast',
     'persons' => 'Persons',
     'person-list' => 'All persons',
     'person-create' => 'New person',
diff --git a/modules/Admin/Language/da/Podcast.php b/modules/Admin/Language/da/Podcast.php
index 2d46aff53156ca301dceb74443d75da60e0cd6e7..08768f1b91ff54f9153ce84d9ee17c33b96d567f 100644
--- a/modules/Admin/Language/da/Podcast.php
+++ b/modules/Admin/Language/da/Podcast.php
@@ -13,6 +13,7 @@ return [
     'no_podcast' => 'No podcast found!',
     'create' => 'Create podcast',
     'import' => 'Import podcast',
+    'all_imports' => 'Podcast imports',
     'new_episode' => 'New Episode',
     'view' => 'View podcast',
     'edit' => 'Edit podcast',
@@ -25,6 +26,8 @@ return [
     'latest_episodes' => 'Latest episodes',
     'see_all_episodes' => 'See all episodes',
     'draft' => 'Draft',
+    'sync_feed' => 'Synchronize feed',
+    'sync_feed_hint' => 'Import this podcast\'s latest episodes',
     'messages' => [
         'createSuccess' => 'Podcast successfully created!',
         'editSuccess' => 'Podcast has been successfully updated!',
@@ -48,7 +51,6 @@ return [
             other {# episodes were}
         } added to the podcast!',
         'podcastFeedUpToDate' => 'Podcast is already up to date.',
-        'podcastNotImported' => 'Podcast could not be updated as it was not imported.',
         'publishError' => 'This podcast is either already published or scheduled for publication.',
         'publishEditError' => 'This podcast is not scheduled for publication.',
         'publishCancelSuccess' => 'Podcast publication successfully cancelled!',
@@ -125,8 +127,6 @@ return [
         'new_feed_url' => 'New feed URL',
         'new_feed_url_hint' => 'Use this field when you move to another domain or podcast hosting platform. By default, the value is set to the current RSS URL if the podcast is imported.',
         'old_feed_url' => 'Old feed URL',
-        'update_feed' => 'Update feed',
-        'update_feed_tip' => 'Import this podcast\'s latest episodes',
         'partnership' => 'Partnership',
         'partner_id' => 'ID',
         'partner_link_url' => 'Link URL',
diff --git a/modules/Admin/Language/da/PodcastNavigation.php b/modules/Admin/Language/da/PodcastNavigation.php
index b4d7ddc0899ebd78178fd75359ca189cd947dc52..a5c98b6c67fdf8722c7229310b1deb1bdc3b0fa3 100644
--- a/modules/Admin/Language/da/PodcastNavigation.php
+++ b/modules/Admin/Language/da/PodcastNavigation.php
@@ -14,6 +14,7 @@ return [
     'podcast-view' => 'Home',
     'podcast-edit' => 'Edit podcast',
     'podcast-persons-manage' => 'Manage persons',
+    'podcast-imports' => 'Podcast imports',
     'episodes' => 'Episodes',
     'episode-list' => 'All episodes',
     'episode-create' => 'New episode',
diff --git a/modules/Admin/Language/de/Breadcrumb.php b/modules/Admin/Language/de/Breadcrumb.php
index c5f02651f305472277299ecdc16bef526bc2a91e..65ad6b2b7ad25763907906116e9a37f7a37ca47f 100644
--- a/modules/Admin/Language/de/Breadcrumb.php
+++ b/modules/Admin/Language/de/Breadcrumb.php
@@ -36,7 +36,7 @@ return [
     'users' => 'Benutzer',
     'my-account' => 'Mein Konto',
     'change-password' => 'Passwort ändern',
-    'import' => 'Feed-Import',
+    'imports' => 'imports',
     'platforms' => 'Plattformen',
     'social' => 'soziale Netzwerke',
     'funding' => 'Finanzierung',
diff --git a/modules/Admin/Language/de/Navigation.php b/modules/Admin/Language/de/Navigation.php
index 1c98e0e53e790a1fe564f9b73fd4d1b776cdcf7e..47d74d1ee36247260932ea34685141a5bd469ce3 100644
--- a/modules/Admin/Language/de/Navigation.php
+++ b/modules/Admin/Language/de/Navigation.php
@@ -17,7 +17,8 @@ return [
     'podcasts' => 'Podcasts',
     'podcast-list' => 'Alle Podcasts',
     'podcast-create' => 'Neuer Podcast',
-    'podcast-import' => 'Podcast importieren',
+    'all-podcast-imports' => 'All Podcast imports',
+    'podcast-imports-add' => 'Import a podcast',
     'persons' => 'Mitwirkende',
     'person-list' => 'Alle Mitwirkenden',
     'person-create' => 'Neuer Mitwirkender',
diff --git a/modules/Admin/Language/de/Podcast.php b/modules/Admin/Language/de/Podcast.php
index 5cafc4c684c44d3b61d3b73f811ed4dd7c04ff70..c50c8df958aeb183159c0ebc12372aaa9ee76efe 100644
--- a/modules/Admin/Language/de/Podcast.php
+++ b/modules/Admin/Language/de/Podcast.php
@@ -13,6 +13,7 @@ return [
     'no_podcast' => 'Kein Podcast gefunden!',
     'create' => 'Podcast erstellen',
     'import' => 'Podcast importieren',
+    'all_imports' => 'Podcast imports',
     'new_episode' => 'Neue Folge',
     'view' => 'Podcast ansehen',
     'edit' => 'Podcast bearbeiten',
@@ -25,6 +26,8 @@ return [
     'latest_episodes' => 'Neueste Folgen',
     'see_all_episodes' => 'Alle Folgen anzeigen',
     'draft' => 'Entwurf',
+    'sync_feed' => 'Synchronize feed',
+    'sync_feed_hint' => 'Import this podcast\'s latest episodes',
     'messages' => [
         'createSuccess' => 'Podcast erfolgreich erstellt!',
         'editSuccess' => 'Der Podcast wurde erfolgreich aktualisiert!',
@@ -48,7 +51,6 @@ return [
             other {# Episoden wurden}
         } zum Podcast hinzugefügt!',
         'podcastFeedUpToDate' => 'Der Podcast ist bereits auf dem neuesten Stand.',
-        'podcastNotImported' => 'Der Podcast konnte nicht aktualisiert werden, da er nicht importiert wurde.',
         'publishError' => 'Dieser Podcast ist entweder bereits veröffentlicht oder zur Veröffentlichung geplant.',
         'publishEditError' => 'Dieser Podcast ist nicht zur Veröffentlichung geplant.',
         'publishCancelSuccess' => 'Veröffentlichung des Podcasts erfolgreich abgebrochen!',
@@ -125,8 +127,6 @@ return [
         'new_feed_url' => 'Neue Feed-URL',
         'new_feed_url_hint' => 'Benutzen Sie dieses Feld, wenn Sie zu einer anderen Domain oder Podcast-Plattform wechseln. Standardmäßig wird der Wert auf die aktuelle RSS URL gesetzt, wenn der Podcast importiert wird.',
         'old_feed_url' => 'Alte Feed-URL',
-        'update_feed' => 'Feed aktualisieren',
-        'update_feed_tip' => 'Importiere die neusten Episoden dieses Podcasts',
         'partnership' => 'Partnerschaft:en',
         'partner_id' => 'ID',
         'partner_link_url' => 'Link',
diff --git a/modules/Admin/Language/de/PodcastNavigation.php b/modules/Admin/Language/de/PodcastNavigation.php
index 0ca281f00c9d0adca3079ba7b112d9e93542786f..974a157e25e128e532c98bd169dbffd9f067990f 100644
--- a/modules/Admin/Language/de/PodcastNavigation.php
+++ b/modules/Admin/Language/de/PodcastNavigation.php
@@ -14,6 +14,7 @@ return [
     'podcast-view' => 'Startseite',
     'podcast-edit' => 'Podcast bearbeiten',
     'podcast-persons-manage' => 'Mitwirkende verwalten',
+    'podcast-imports' => 'Podcast imports',
     'episodes' => 'Folgen',
     'episode-list' => 'Alle Episoden',
     'episode-create' => 'Neue Episoden',
diff --git a/modules/Admin/Language/el/Breadcrumb.php b/modules/Admin/Language/el/Breadcrumb.php
index 78a071a70652e28ed5fdad6b3594975a3ee8348f..aa52554d2d7ff53c5590790acc6dfe12988dc874 100644
--- a/modules/Admin/Language/el/Breadcrumb.php
+++ b/modules/Admin/Language/el/Breadcrumb.php
@@ -36,7 +36,7 @@ return [
     'users' => 'χρήστες',
     'my-account' => 'ο λογαριασμός μου',
     'change-password' => 'αλλαγή κωδικού πρόσβασης',
-    'import' => 'εισαγωγή ροής',
+    'imports' => 'imports',
     'platforms' => 'πλατφόρμες',
     'social' => 'κοινωνικά δίκτυα',
     'funding' => 'χρηματοδότηση',
diff --git a/modules/Admin/Language/el/Navigation.php b/modules/Admin/Language/el/Navigation.php
index e454c1210c73461efe4de6bfaeedf3ebd62ff3ba..8a163b0d9f12fecb5523d15e714a663c6097795a 100644
--- a/modules/Admin/Language/el/Navigation.php
+++ b/modules/Admin/Language/el/Navigation.php
@@ -17,7 +17,8 @@ return [
     'podcasts' => 'Podcasts',
     'podcast-list' => 'Όλα τα podcasts',
     'podcast-create' => 'Νέο podcast',
-    'podcast-import' => 'Εισαγωγή ενός podcast',
+    'all-podcast-imports' => 'All Podcast imports',
+    'podcast-imports-add' => 'Import a podcast',
     'persons' => 'Πρόσωπα',
     'person-list' => 'Όλα τα άτομα',
     'person-create' => 'Νέο άτομο',
diff --git a/modules/Admin/Language/el/Podcast.php b/modules/Admin/Language/el/Podcast.php
index be2b74fa1c8cfd235b4bb4f4a901b0660cbff845..f1f26c73d914834833376edcc70ab8be2ce64db6 100644
--- a/modules/Admin/Language/el/Podcast.php
+++ b/modules/Admin/Language/el/Podcast.php
@@ -13,6 +13,7 @@ return [
     'no_podcast' => 'Δεν βρέθηκαν podcast!',
     'create' => 'Δημιουργία podcast',
     'import' => 'Εισαγωγή ενός podcast',
+    'all_imports' => 'Podcast imports',
     'new_episode' => 'Νέο Επεισόδιο',
     'view' => 'Προβολή podcast',
     'edit' => 'Επεξεργασία podcast',
@@ -25,6 +26,8 @@ return [
     'latest_episodes' => 'Τελευταία επεισόδια',
     'see_all_episodes' => 'Δείτε όλα τα επεισόδια',
     'draft' => 'Πρόχειρο',
+    'sync_feed' => 'Synchronize feed',
+    'sync_feed_hint' => 'Import this podcast\'s latest episodes',
     'messages' => [
         'createSuccess' => 'Το επεισόδιο δημιουργήθηκε με επιτυχία!',
         'editSuccess' => 'Το Podcast ενημερώθηκε με επιτυχία!',
@@ -48,7 +51,6 @@ return [
             other {# επεισόδια ήταν}
         } προστέθηκαν στο podcast!',
         'podcastFeedUpToDate' => 'Το Podcast είναι ήδη ενημερωμένο.',
-        'podcastNotImported' => 'Το Podcast δεν μπόρεσε να ενημερωθεί καθώς δεν εισήχθη.',
         'publishError' => 'Αυτό το podcast είτε έχει ήδη δημοσιευθεί είτε έχει προγραμματιστεί για δημοσίευση.',
         'publishEditError' => 'Αυτό το podcast δεν έχει προγραμματιστεί για δημοσίευση.',
         'publishCancelSuccess' => 'Η δημοσίευση του επεισοδίου ακυρώθηκε επιτυχώς!',
@@ -125,8 +127,6 @@ return [
         'new_feed_url' => 'New feed URL',
         'new_feed_url_hint' => 'Use this field when you move to another domain or podcast hosting platform. By default, the value is set to the current RSS URL if the podcast is imported.',
         'old_feed_url' => 'Old feed URL',
-        'update_feed' => 'Update feed',
-        'update_feed_tip' => 'Import this podcast\'s latest episodes',
         'partnership' => 'Partnership',
         'partner_id' => 'ID',
         'partner_link_url' => 'Link URL',
diff --git a/modules/Admin/Language/el/PodcastNavigation.php b/modules/Admin/Language/el/PodcastNavigation.php
index 213a52affe19eac5fccbe935a96d7c051a314dac..735dc9acc7242db5bd80a7def215bf43621ccaf6 100644
--- a/modules/Admin/Language/el/PodcastNavigation.php
+++ b/modules/Admin/Language/el/PodcastNavigation.php
@@ -14,6 +14,7 @@ return [
     'podcast-view' => 'Αρχική σελίδα',
     'podcast-edit' => 'Επεξεργασία podcast',
     'podcast-persons-manage' => 'Διαχείριση ατόμων',
+    'podcast-imports' => 'Podcast imports',
     'episodes' => 'Επεισόδια',
     'episode-list' => 'Όλα τα επεισόδια',
     'episode-create' => 'Νέο Επεισόδιο',
diff --git a/modules/Admin/Language/es/Breadcrumb.php b/modules/Admin/Language/es/Breadcrumb.php
index 74bf0ec719c23d562092a4fd41cd8196609830ba..cc0b23bc449c1f584863a4c5b49743689b810bcb 100644
--- a/modules/Admin/Language/es/Breadcrumb.php
+++ b/modules/Admin/Language/es/Breadcrumb.php
@@ -36,7 +36,7 @@ return [
     'users' => 'usuarios',
     'my-account' => 'mi cuenta',
     'change-password' => 'cambiar contraseña',
-    'import' => 'importar feed',
+    'imports' => 'imports',
     'platforms' => 'plataformas',
     'social' => 'redes sociales',
     'funding' => 'financiación | fondos',
diff --git a/modules/Admin/Language/es/Navigation.php b/modules/Admin/Language/es/Navigation.php
index 8e59c56edcfd4bb4d311696c76bc6aa376aa4f00..52648483c0a74f7ac8d09fe9e9aceb22d64a3944 100644
--- a/modules/Admin/Language/es/Navigation.php
+++ b/modules/Admin/Language/es/Navigation.php
@@ -17,7 +17,8 @@ return [
     'podcasts' => 'Podcasts',
     'podcast-list' => 'Todos los podcasts',
     'podcast-create' => 'Nuevo podcast',
-    'podcast-import' => 'Importar un podcast',
+    'all-podcast-imports' => 'All Podcast imports',
+    'podcast-imports-add' => 'Import a podcast',
     'persons' => 'Personas',
     'person-list' => 'Todas las personas',
     'person-create' => 'Nueva persona',
diff --git a/modules/Admin/Language/es/Podcast.php b/modules/Admin/Language/es/Podcast.php
index 5e83f1187d8831d94f31e515f8246af3581156ff..24c05c1f74964763a6b7312547ede871b5ee2ede 100644
--- a/modules/Admin/Language/es/Podcast.php
+++ b/modules/Admin/Language/es/Podcast.php
@@ -13,6 +13,7 @@ return [
     'no_podcast' => 'No se encontró el podcast!',
     'create' => 'Crear podcasts',
     'import' => 'Importar un podcast',
+    'all_imports' => 'Podcast imports',
     'new_episode' => 'Nuevo episodio',
     'view' => 'Ver Podcast',
     'edit' => 'Editar el Podcast',
@@ -25,6 +26,8 @@ return [
     'latest_episodes' => 'Últimos Episodios',
     'see_all_episodes' => 'Mostrar todos los episodios',
     'draft' => 'Borrador',
+    'sync_feed' => 'Synchronize feed',
+    'sync_feed_hint' => 'Import this podcast\'s latest episodes',
     'messages' => [
         'createSuccess' => '¡El Podcast ha sido creado con éxito!',
         'editSuccess' => 'El Podcast se ha actualizado correctamente!',
@@ -48,7 +51,6 @@ return [
             other {se han añadido # episodios}
         } al podcast!',
         'podcastFeedUpToDate' => 'El Podcast ya está actualizado.',
-        'podcastNotImported' => 'Podcast no pudo ser actualizado porque no fue importado.',
         'publishError' => 'Este podcast ya ha sido publicado o está programado para su publicación.',
         'publishEditError' => 'Este podcast no está programado para ser publicado.',
         'publishCancelSuccess' => '¡La publicación del podcast ha sido cancelada con éxito!',
@@ -125,8 +127,6 @@ return [
         'new_feed_url' => 'Nueva URL de feed',
         'new_feed_url_hint' => 'Utilice este campo cuando se mueva a otro dominio o plataforma de alojamiento podcast. De forma predeterminada, el valor se establece en la URL actual de RSS si el podcast es importado.',
         'old_feed_url' => 'Antigua URL del feed RSS',
-        'update_feed' => 'Actualizar el feed',
-        'update_feed_tip' => 'Importar los últimos episodios de este podcast',
         'partnership' => 'Asociación',
         'partner_id' => 'ID',
         'partner_link_url' => 'URL del enlace',
diff --git a/modules/Admin/Language/es/PodcastNavigation.php b/modules/Admin/Language/es/PodcastNavigation.php
index afa57101c461a61e545d1d4ab007c8fde8190149..a9accfab7853b684f3ca0ac56652e5dd080a9c7b 100644
--- a/modules/Admin/Language/es/PodcastNavigation.php
+++ b/modules/Admin/Language/es/PodcastNavigation.php
@@ -14,6 +14,7 @@ return [
     'podcast-view' => 'Inicio',
     'podcast-edit' => 'Editar podcast',
     'podcast-persons-manage' => 'Administrar personas',
+    'podcast-imports' => 'Podcast imports',
     'episodes' => 'Episodios',
     'episode-list' => 'Todos los episodios',
     'episode-create' => 'Nuevo episodio',
diff --git a/modules/Admin/Language/fa/Breadcrumb.php b/modules/Admin/Language/fa/Breadcrumb.php
index 558b90f76560802609ce10ed4e320521f494db53..ca6822629d0c311ca92359c4182ad8ce0ae2c86d 100644
--- a/modules/Admin/Language/fa/Breadcrumb.php
+++ b/modules/Admin/Language/fa/Breadcrumb.php
@@ -36,7 +36,7 @@ return [
     'users' => 'users',
     'my-account' => 'my account',
     'change-password' => 'change password',
-    'import' => 'feed import',
+    'imports' => 'imports',
     'platforms' => 'platforms',
     'social' => 'social networks',
     'funding' => 'funding',
diff --git a/modules/Admin/Language/fa/Navigation.php b/modules/Admin/Language/fa/Navigation.php
index 610f14345d427177b5bcbea0b56c1f56512b70ff..d0ddb4c46d3474076f5b24b7421acae0c60558d7 100644
--- a/modules/Admin/Language/fa/Navigation.php
+++ b/modules/Admin/Language/fa/Navigation.php
@@ -17,7 +17,8 @@ return [
     'podcasts' => 'Podcasts',
     'podcast-list' => 'All podcasts',
     'podcast-create' => 'New podcast',
-    'podcast-import' => 'Import a podcast',
+    'all-podcast-imports' => 'All Podcast imports',
+    'podcast-imports-add' => 'Import a podcast',
     'persons' => 'Persons',
     'person-list' => 'All persons',
     'person-create' => 'New person',
diff --git a/modules/Admin/Language/fa/Podcast.php b/modules/Admin/Language/fa/Podcast.php
index 2d46aff53156ca301dceb74443d75da60e0cd6e7..08768f1b91ff54f9153ce84d9ee17c33b96d567f 100644
--- a/modules/Admin/Language/fa/Podcast.php
+++ b/modules/Admin/Language/fa/Podcast.php
@@ -13,6 +13,7 @@ return [
     'no_podcast' => 'No podcast found!',
     'create' => 'Create podcast',
     'import' => 'Import podcast',
+    'all_imports' => 'Podcast imports',
     'new_episode' => 'New Episode',
     'view' => 'View podcast',
     'edit' => 'Edit podcast',
@@ -25,6 +26,8 @@ return [
     'latest_episodes' => 'Latest episodes',
     'see_all_episodes' => 'See all episodes',
     'draft' => 'Draft',
+    'sync_feed' => 'Synchronize feed',
+    'sync_feed_hint' => 'Import this podcast\'s latest episodes',
     'messages' => [
         'createSuccess' => 'Podcast successfully created!',
         'editSuccess' => 'Podcast has been successfully updated!',
@@ -48,7 +51,6 @@ return [
             other {# episodes were}
         } added to the podcast!',
         'podcastFeedUpToDate' => 'Podcast is already up to date.',
-        'podcastNotImported' => 'Podcast could not be updated as it was not imported.',
         'publishError' => 'This podcast is either already published or scheduled for publication.',
         'publishEditError' => 'This podcast is not scheduled for publication.',
         'publishCancelSuccess' => 'Podcast publication successfully cancelled!',
@@ -125,8 +127,6 @@ return [
         'new_feed_url' => 'New feed URL',
         'new_feed_url_hint' => 'Use this field when you move to another domain or podcast hosting platform. By default, the value is set to the current RSS URL if the podcast is imported.',
         'old_feed_url' => 'Old feed URL',
-        'update_feed' => 'Update feed',
-        'update_feed_tip' => 'Import this podcast\'s latest episodes',
         'partnership' => 'Partnership',
         'partner_id' => 'ID',
         'partner_link_url' => 'Link URL',
diff --git a/modules/Admin/Language/fa/PodcastNavigation.php b/modules/Admin/Language/fa/PodcastNavigation.php
index b4d7ddc0899ebd78178fd75359ca189cd947dc52..a5c98b6c67fdf8722c7229310b1deb1bdc3b0fa3 100644
--- a/modules/Admin/Language/fa/PodcastNavigation.php
+++ b/modules/Admin/Language/fa/PodcastNavigation.php
@@ -14,6 +14,7 @@ return [
     'podcast-view' => 'Home',
     'podcast-edit' => 'Edit podcast',
     'podcast-persons-manage' => 'Manage persons',
+    'podcast-imports' => 'Podcast imports',
     'episodes' => 'Episodes',
     'episode-list' => 'All episodes',
     'episode-create' => 'New episode',
diff --git a/modules/Admin/Language/fr/Breadcrumb.php b/modules/Admin/Language/fr/Breadcrumb.php
index 1ddcb23cc99919e4df459722fcb998cae62b73ca..69b8205b1c37ea0b2592fba35f18a4b1149e03cf 100644
--- a/modules/Admin/Language/fr/Breadcrumb.php
+++ b/modules/Admin/Language/fr/Breadcrumb.php
@@ -36,7 +36,7 @@ return [
     'users' => 'utilisateurs',
     'my-account' => 'mon compte',
     'change-password' => 'changer le mot de passe',
-    'import' => 'importer un flux',
+    'imports' => 'imports',
     'platforms' => 'plateformes',
     'social' => 'réseaux sociaux',
     'funding' => 'financement',
diff --git a/modules/Admin/Language/fr/Navigation.php b/modules/Admin/Language/fr/Navigation.php
index e5ccf2976e9c0d3cc40cbf29a51345a25bb0b9c6..b15f2bc07910e6f3284905df4c7621f711ef1bd0 100644
--- a/modules/Admin/Language/fr/Navigation.php
+++ b/modules/Admin/Language/fr/Navigation.php
@@ -17,7 +17,8 @@ return [
     'podcasts' => 'Podcasts',
     'podcast-list' => 'Tous les podcasts',
     'podcast-create' => 'Créer un podcast',
-    'podcast-import' => 'Importer un podcast',
+    'all-podcast-imports' => 'All Podcast imports',
+    'podcast-imports-add' => 'Import a podcast',
     'persons' => 'Intervenants',
     'person-list' => 'Tous les intervenants',
     'person-create' => 'Créer un intervenant',
diff --git a/modules/Admin/Language/fr/Podcast.php b/modules/Admin/Language/fr/Podcast.php
index ca69055f86b0b2da6238dfd60998916d3472e66c..597e2127e166f5ed0ca53f7ebff85fa194c89571 100644
--- a/modules/Admin/Language/fr/Podcast.php
+++ b/modules/Admin/Language/fr/Podcast.php
@@ -13,6 +13,7 @@ return [
     'no_podcast' => 'Aucun podcast trouvé !',
     'create' => 'Créer un podcast',
     'import' => 'Importer un podcast',
+    'all_imports' => 'Podcast imports',
     'new_episode' => 'Créer un épisode',
     'view' => 'Voir le podcast',
     'edit' => 'Modifier le podcast',
@@ -25,6 +26,8 @@ return [
     'latest_episodes' => 'Derniers épisodes',
     'see_all_episodes' => 'Voir tous les épisodes',
     'draft' => 'Brouillon',
+    'sync_feed' => 'Synchronize feed',
+    'sync_feed_hint' => 'Import this podcast\'s latest episodes',
     'messages' => [
         'createSuccess' => 'Le podcast a été créé avec succès !',
         'editSuccess' => 'Le podcast a bien été mis à jour !',
@@ -48,7 +51,6 @@ return [
             other {# épisodes ont été}
         } ajoutés au podcast!',
         'podcastFeedUpToDate' => 'Le podcast est déjà à jour.',
-        'podcastNotImported' => 'Le podcast n\'a pas pu être mis à jour car il n\'a pas été importé.',
         'publishError' => 'Ce podcast est soit déjà publié, soit programmé pour publication.',
         'publishEditError' => 'Ce podcast n\'est pas programmé pour publication.',
         'publishCancelSuccess' => 'Publication de Podcast annulée avec succès !',
@@ -125,8 +127,6 @@ return [
         'new_feed_url' => 'URL du nouveau flux',
         'new_feed_url_hint' => 'Utilisez ce champ lorsque vous déplacez ce podcast vers un autre domaine ou que vous changez d’hébergeur. Par défaut, ce champ est rempli avec l’URL du flux actuel si le podcast est importé.',
         'old_feed_url' => 'URL de l\'ancien flux',
-        'update_feed' => 'Actualiser ce flux',
-        'update_feed_tip' => 'Importer les derniers épisodes de ce podcast',
         'partnership' => 'Partenariat',
         'partner_id' => 'ID',
         'partner_link_url' => 'URL lien',
diff --git a/modules/Admin/Language/fr/PodcastNavigation.php b/modules/Admin/Language/fr/PodcastNavigation.php
index d49055b28dafa80075757275eb461d6a6bde8572..9edb8e80cb59c776df95e9c181cf5bbb419d25a9 100644
--- a/modules/Admin/Language/fr/PodcastNavigation.php
+++ b/modules/Admin/Language/fr/PodcastNavigation.php
@@ -14,6 +14,7 @@ return [
     'podcast-view' => 'Accueil',
     'podcast-edit' => 'Modifier le podcast',
     'podcast-persons-manage' => 'Gestion des intervenants',
+    'podcast-imports' => 'Podcast imports',
     'episodes' => 'Épisodes',
     'episode-list' => 'Tous les épisodes',
     'episode-create' => 'Créer un épisode',
diff --git a/modules/Admin/Language/fr2/Breadcrumb.php b/modules/Admin/Language/fr2/Breadcrumb.php
index c2e761ca0162a66abfc02b7aa4528cc1b496dbc5..daa88fbb073312243b2d4eaf762857f3c9f2a335 100644
--- a/modules/Admin/Language/fr2/Breadcrumb.php
+++ b/modules/Admin/Language/fr2/Breadcrumb.php
@@ -36,7 +36,7 @@ return [
     'users' => 'utilisateurs',
     'my-account' => 'mon compte',
     'change-password' => 'changer le mot de passe',
-    'import' => 'importer un flux',
+    'imports' => 'imports',
     'platforms' => 'plateformes',
     'social' => 'réseaux sociaux',
     'funding' => 'financement',
diff --git a/modules/Admin/Language/fr2/Navigation.php b/modules/Admin/Language/fr2/Navigation.php
index 610f14345d427177b5bcbea0b56c1f56512b70ff..d0ddb4c46d3474076f5b24b7421acae0c60558d7 100644
--- a/modules/Admin/Language/fr2/Navigation.php
+++ b/modules/Admin/Language/fr2/Navigation.php
@@ -17,7 +17,8 @@ return [
     'podcasts' => 'Podcasts',
     'podcast-list' => 'All podcasts',
     'podcast-create' => 'New podcast',
-    'podcast-import' => 'Import a podcast',
+    'all-podcast-imports' => 'All Podcast imports',
+    'podcast-imports-add' => 'Import a podcast',
     'persons' => 'Persons',
     'person-list' => 'All persons',
     'person-create' => 'New person',
diff --git a/modules/Admin/Language/fr2/Podcast.php b/modules/Admin/Language/fr2/Podcast.php
index 2d46aff53156ca301dceb74443d75da60e0cd6e7..08768f1b91ff54f9153ce84d9ee17c33b96d567f 100644
--- a/modules/Admin/Language/fr2/Podcast.php
+++ b/modules/Admin/Language/fr2/Podcast.php
@@ -13,6 +13,7 @@ return [
     'no_podcast' => 'No podcast found!',
     'create' => 'Create podcast',
     'import' => 'Import podcast',
+    'all_imports' => 'Podcast imports',
     'new_episode' => 'New Episode',
     'view' => 'View podcast',
     'edit' => 'Edit podcast',
@@ -25,6 +26,8 @@ return [
     'latest_episodes' => 'Latest episodes',
     'see_all_episodes' => 'See all episodes',
     'draft' => 'Draft',
+    'sync_feed' => 'Synchronize feed',
+    'sync_feed_hint' => 'Import this podcast\'s latest episodes',
     'messages' => [
         'createSuccess' => 'Podcast successfully created!',
         'editSuccess' => 'Podcast has been successfully updated!',
@@ -48,7 +51,6 @@ return [
             other {# episodes were}
         } added to the podcast!',
         'podcastFeedUpToDate' => 'Podcast is already up to date.',
-        'podcastNotImported' => 'Podcast could not be updated as it was not imported.',
         'publishError' => 'This podcast is either already published or scheduled for publication.',
         'publishEditError' => 'This podcast is not scheduled for publication.',
         'publishCancelSuccess' => 'Podcast publication successfully cancelled!',
@@ -125,8 +127,6 @@ return [
         'new_feed_url' => 'New feed URL',
         'new_feed_url_hint' => 'Use this field when you move to another domain or podcast hosting platform. By default, the value is set to the current RSS URL if the podcast is imported.',
         'old_feed_url' => 'Old feed URL',
-        'update_feed' => 'Update feed',
-        'update_feed_tip' => 'Import this podcast\'s latest episodes',
         'partnership' => 'Partnership',
         'partner_id' => 'ID',
         'partner_link_url' => 'Link URL',
diff --git a/modules/Admin/Language/fr2/PodcastNavigation.php b/modules/Admin/Language/fr2/PodcastNavigation.php
index b4d7ddc0899ebd78178fd75359ca189cd947dc52..a5c98b6c67fdf8722c7229310b1deb1bdc3b0fa3 100644
--- a/modules/Admin/Language/fr2/PodcastNavigation.php
+++ b/modules/Admin/Language/fr2/PodcastNavigation.php
@@ -14,6 +14,7 @@ return [
     'podcast-view' => 'Home',
     'podcast-edit' => 'Edit podcast',
     'podcast-persons-manage' => 'Manage persons',
+    'podcast-imports' => 'Podcast imports',
     'episodes' => 'Episodes',
     'episode-list' => 'All episodes',
     'episode-create' => 'New episode',
diff --git a/modules/Admin/Language/fr_CA/Breadcrumb.php b/modules/Admin/Language/fr_CA/Breadcrumb.php
index 558b90f76560802609ce10ed4e320521f494db53..ca6822629d0c311ca92359c4182ad8ce0ae2c86d 100644
--- a/modules/Admin/Language/fr_CA/Breadcrumb.php
+++ b/modules/Admin/Language/fr_CA/Breadcrumb.php
@@ -36,7 +36,7 @@ return [
     'users' => 'users',
     'my-account' => 'my account',
     'change-password' => 'change password',
-    'import' => 'feed import',
+    'imports' => 'imports',
     'platforms' => 'platforms',
     'social' => 'social networks',
     'funding' => 'funding',
diff --git a/modules/Admin/Language/fr_CA/Navigation.php b/modules/Admin/Language/fr_CA/Navigation.php
index 610f14345d427177b5bcbea0b56c1f56512b70ff..d0ddb4c46d3474076f5b24b7421acae0c60558d7 100644
--- a/modules/Admin/Language/fr_CA/Navigation.php
+++ b/modules/Admin/Language/fr_CA/Navigation.php
@@ -17,7 +17,8 @@ return [
     'podcasts' => 'Podcasts',
     'podcast-list' => 'All podcasts',
     'podcast-create' => 'New podcast',
-    'podcast-import' => 'Import a podcast',
+    'all-podcast-imports' => 'All Podcast imports',
+    'podcast-imports-add' => 'Import a podcast',
     'persons' => 'Persons',
     'person-list' => 'All persons',
     'person-create' => 'New person',
diff --git a/modules/Admin/Language/fr_CA/Podcast.php b/modules/Admin/Language/fr_CA/Podcast.php
index 2d46aff53156ca301dceb74443d75da60e0cd6e7..08768f1b91ff54f9153ce84d9ee17c33b96d567f 100644
--- a/modules/Admin/Language/fr_CA/Podcast.php
+++ b/modules/Admin/Language/fr_CA/Podcast.php
@@ -13,6 +13,7 @@ return [
     'no_podcast' => 'No podcast found!',
     'create' => 'Create podcast',
     'import' => 'Import podcast',
+    'all_imports' => 'Podcast imports',
     'new_episode' => 'New Episode',
     'view' => 'View podcast',
     'edit' => 'Edit podcast',
@@ -25,6 +26,8 @@ return [
     'latest_episodes' => 'Latest episodes',
     'see_all_episodes' => 'See all episodes',
     'draft' => 'Draft',
+    'sync_feed' => 'Synchronize feed',
+    'sync_feed_hint' => 'Import this podcast\'s latest episodes',
     'messages' => [
         'createSuccess' => 'Podcast successfully created!',
         'editSuccess' => 'Podcast has been successfully updated!',
@@ -48,7 +51,6 @@ return [
             other {# episodes were}
         } added to the podcast!',
         'podcastFeedUpToDate' => 'Podcast is already up to date.',
-        'podcastNotImported' => 'Podcast could not be updated as it was not imported.',
         'publishError' => 'This podcast is either already published or scheduled for publication.',
         'publishEditError' => 'This podcast is not scheduled for publication.',
         'publishCancelSuccess' => 'Podcast publication successfully cancelled!',
@@ -125,8 +127,6 @@ return [
         'new_feed_url' => 'New feed URL',
         'new_feed_url_hint' => 'Use this field when you move to another domain or podcast hosting platform. By default, the value is set to the current RSS URL if the podcast is imported.',
         'old_feed_url' => 'Old feed URL',
-        'update_feed' => 'Update feed',
-        'update_feed_tip' => 'Import this podcast\'s latest episodes',
         'partnership' => 'Partnership',
         'partner_id' => 'ID',
         'partner_link_url' => 'Link URL',
diff --git a/modules/Admin/Language/fr_CA/PodcastNavigation.php b/modules/Admin/Language/fr_CA/PodcastNavigation.php
index b4d7ddc0899ebd78178fd75359ca189cd947dc52..a5c98b6c67fdf8722c7229310b1deb1bdc3b0fa3 100644
--- a/modules/Admin/Language/fr_CA/PodcastNavigation.php
+++ b/modules/Admin/Language/fr_CA/PodcastNavigation.php
@@ -14,6 +14,7 @@ return [
     'podcast-view' => 'Home',
     'podcast-edit' => 'Edit podcast',
     'podcast-persons-manage' => 'Manage persons',
+    'podcast-imports' => 'Podcast imports',
     'episodes' => 'Episodes',
     'episode-list' => 'All episodes',
     'episode-create' => 'New episode',
diff --git a/modules/Admin/Language/gd/Breadcrumb.php b/modules/Admin/Language/gd/Breadcrumb.php
index 558b90f76560802609ce10ed4e320521f494db53..ca6822629d0c311ca92359c4182ad8ce0ae2c86d 100644
--- a/modules/Admin/Language/gd/Breadcrumb.php
+++ b/modules/Admin/Language/gd/Breadcrumb.php
@@ -36,7 +36,7 @@ return [
     'users' => 'users',
     'my-account' => 'my account',
     'change-password' => 'change password',
-    'import' => 'feed import',
+    'imports' => 'imports',
     'platforms' => 'platforms',
     'social' => 'social networks',
     'funding' => 'funding',
diff --git a/modules/Admin/Language/gd/Navigation.php b/modules/Admin/Language/gd/Navigation.php
index 610f14345d427177b5bcbea0b56c1f56512b70ff..d0ddb4c46d3474076f5b24b7421acae0c60558d7 100644
--- a/modules/Admin/Language/gd/Navigation.php
+++ b/modules/Admin/Language/gd/Navigation.php
@@ -17,7 +17,8 @@ return [
     'podcasts' => 'Podcasts',
     'podcast-list' => 'All podcasts',
     'podcast-create' => 'New podcast',
-    'podcast-import' => 'Import a podcast',
+    'all-podcast-imports' => 'All Podcast imports',
+    'podcast-imports-add' => 'Import a podcast',
     'persons' => 'Persons',
     'person-list' => 'All persons',
     'person-create' => 'New person',
diff --git a/modules/Admin/Language/gd/Podcast.php b/modules/Admin/Language/gd/Podcast.php
index 2d46aff53156ca301dceb74443d75da60e0cd6e7..08768f1b91ff54f9153ce84d9ee17c33b96d567f 100644
--- a/modules/Admin/Language/gd/Podcast.php
+++ b/modules/Admin/Language/gd/Podcast.php
@@ -13,6 +13,7 @@ return [
     'no_podcast' => 'No podcast found!',
     'create' => 'Create podcast',
     'import' => 'Import podcast',
+    'all_imports' => 'Podcast imports',
     'new_episode' => 'New Episode',
     'view' => 'View podcast',
     'edit' => 'Edit podcast',
@@ -25,6 +26,8 @@ return [
     'latest_episodes' => 'Latest episodes',
     'see_all_episodes' => 'See all episodes',
     'draft' => 'Draft',
+    'sync_feed' => 'Synchronize feed',
+    'sync_feed_hint' => 'Import this podcast\'s latest episodes',
     'messages' => [
         'createSuccess' => 'Podcast successfully created!',
         'editSuccess' => 'Podcast has been successfully updated!',
@@ -48,7 +51,6 @@ return [
             other {# episodes were}
         } added to the podcast!',
         'podcastFeedUpToDate' => 'Podcast is already up to date.',
-        'podcastNotImported' => 'Podcast could not be updated as it was not imported.',
         'publishError' => 'This podcast is either already published or scheduled for publication.',
         'publishEditError' => 'This podcast is not scheduled for publication.',
         'publishCancelSuccess' => 'Podcast publication successfully cancelled!',
@@ -125,8 +127,6 @@ return [
         'new_feed_url' => 'New feed URL',
         'new_feed_url_hint' => 'Use this field when you move to another domain or podcast hosting platform. By default, the value is set to the current RSS URL if the podcast is imported.',
         'old_feed_url' => 'Old feed URL',
-        'update_feed' => 'Update feed',
-        'update_feed_tip' => 'Import this podcast\'s latest episodes',
         'partnership' => 'Partnership',
         'partner_id' => 'ID',
         'partner_link_url' => 'Link URL',
diff --git a/modules/Admin/Language/gd/PodcastNavigation.php b/modules/Admin/Language/gd/PodcastNavigation.php
index b4d7ddc0899ebd78178fd75359ca189cd947dc52..a5c98b6c67fdf8722c7229310b1deb1bdc3b0fa3 100644
--- a/modules/Admin/Language/gd/PodcastNavigation.php
+++ b/modules/Admin/Language/gd/PodcastNavigation.php
@@ -14,6 +14,7 @@ return [
     'podcast-view' => 'Home',
     'podcast-edit' => 'Edit podcast',
     'podcast-persons-manage' => 'Manage persons',
+    'podcast-imports' => 'Podcast imports',
     'episodes' => 'Episodes',
     'episode-list' => 'All episodes',
     'episode-create' => 'New episode',
diff --git a/modules/Admin/Language/gl/Breadcrumb.php b/modules/Admin/Language/gl/Breadcrumb.php
index c0c53dd830acb03c0dca0451fd950b2d7e7f83ad..bd34250a4fc29f78c968832a8f4904f5183b09da 100644
--- a/modules/Admin/Language/gl/Breadcrumb.php
+++ b/modules/Admin/Language/gl/Breadcrumb.php
@@ -36,7 +36,7 @@ return [
     'users' => 'usuarias',
     'my-account' => 'a miña conta',
     'change-password' => 'cambiar contrasinal',
-    'import' => 'importar fonte',
+    'imports' => 'imports',
     'platforms' => 'plataformas',
     'social' => 'redes sociais',
     'funding' => 'financiamento',
diff --git a/modules/Admin/Language/gl/Navigation.php b/modules/Admin/Language/gl/Navigation.php
index 1193c14e55dce5bb7d13ed50d8c5830571f98a1e..e599dd06cba2706e782e993e330a9ca88be6d988 100644
--- a/modules/Admin/Language/gl/Navigation.php
+++ b/modules/Admin/Language/gl/Navigation.php
@@ -17,7 +17,8 @@ return [
     'podcasts' => 'Podcasts',
     'podcast-list' => 'Tódolos podcast',
     'podcast-create' => 'Novo podcast',
-    'podcast-import' => 'Importar un podcast',
+    'all-podcast-imports' => 'All Podcast imports',
+    'podcast-imports-add' => 'Import a podcast',
     'persons' => 'Persoas',
     'person-list' => 'Tódalas persoas',
     'person-create' => 'Nova persoa',
diff --git a/modules/Admin/Language/gl/Podcast.php b/modules/Admin/Language/gl/Podcast.php
index 821a8ec4a72895621d98e58675f31acb46f360ec..5cc869daeaf4b742f0b0fdaffb0f08545da90918 100644
--- a/modules/Admin/Language/gl/Podcast.php
+++ b/modules/Admin/Language/gl/Podcast.php
@@ -13,6 +13,7 @@ return [
     'no_podcast' => 'Non se atopan podcast!',
     'create' => 'Crear un podcast',
     'import' => 'Importar podcast',
+    'all_imports' => 'Podcast imports',
     'new_episode' => 'Novo Episodio',
     'view' => 'Ver podcast',
     'edit' => 'Editar podcast',
@@ -25,6 +26,8 @@ return [
     'latest_episodes' => 'Últimos episodios',
     'see_all_episodes' => 'Ver tódolos episodios',
     'draft' => 'Borrador',
+    'sync_feed' => 'Synchronize feed',
+    'sync_feed_hint' => 'Import this podcast\'s latest episodes',
     'messages' => [
         'createSuccess' => 'Podcast creado correctamente!',
         'editSuccess' => 'Episodio actualizado correctamente!',
@@ -48,7 +51,6 @@ return [
             other {# episodios foron engadidos}
         } ao podcast!',
         'podcastFeedUpToDate' => 'O podcast xa está ao día.',
-        'podcastNotImported' => 'Non se actualizou o podcast porque non fora importado.',
         'publishError' => 'Este podcast ou ben xa foi publicado ou está programada a súa publicación.',
         'publishEditError' => 'Este podcast non ten a publicación programada.',
         'publishCancelSuccess' => 'Cancelouse correctamente a publicación do podcast!',
@@ -125,8 +127,6 @@ return [
         'new_feed_url' => 'New feed URL',
         'new_feed_url_hint' => 'Use this field when you move to another domain or podcast hosting platform. By default, the value is set to the current RSS URL if the podcast is imported.',
         'old_feed_url' => 'Old feed URL',
-        'update_feed' => 'Update feed',
-        'update_feed_tip' => 'Import this podcast\'s latest episodes',
         'partnership' => 'Partnership',
         'partner_id' => 'ID',
         'partner_link_url' => 'Link URL',
diff --git a/modules/Admin/Language/gl/PodcastNavigation.php b/modules/Admin/Language/gl/PodcastNavigation.php
index b4d7ddc0899ebd78178fd75359ca189cd947dc52..a5c98b6c67fdf8722c7229310b1deb1bdc3b0fa3 100644
--- a/modules/Admin/Language/gl/PodcastNavigation.php
+++ b/modules/Admin/Language/gl/PodcastNavigation.php
@@ -14,6 +14,7 @@ return [
     'podcast-view' => 'Home',
     'podcast-edit' => 'Edit podcast',
     'podcast-persons-manage' => 'Manage persons',
+    'podcast-imports' => 'Podcast imports',
     'episodes' => 'Episodes',
     'episode-list' => 'All episodes',
     'episode-create' => 'New episode',
diff --git a/modules/Admin/Language/id/Breadcrumb.php b/modules/Admin/Language/id/Breadcrumb.php
index d4623ff99d7482416d9c23e476793e868d2e70c0..d68fe34514ced54412ac2298e1f5267aeba94e26 100644
--- a/modules/Admin/Language/id/Breadcrumb.php
+++ b/modules/Admin/Language/id/Breadcrumb.php
@@ -36,7 +36,7 @@ return [
     'users' => 'pengguna',
     'my-account' => 'akun saya',
     'change-password' => 'ubah kata sandi',
-    'import' => 'feed import',
+    'imports' => 'imports',
     'platforms' => 'platforms',
     'social' => 'social networks',
     'funding' => 'funding',
diff --git a/modules/Admin/Language/id/Navigation.php b/modules/Admin/Language/id/Navigation.php
index 610f14345d427177b5bcbea0b56c1f56512b70ff..d0ddb4c46d3474076f5b24b7421acae0c60558d7 100644
--- a/modules/Admin/Language/id/Navigation.php
+++ b/modules/Admin/Language/id/Navigation.php
@@ -17,7 +17,8 @@ return [
     'podcasts' => 'Podcasts',
     'podcast-list' => 'All podcasts',
     'podcast-create' => 'New podcast',
-    'podcast-import' => 'Import a podcast',
+    'all-podcast-imports' => 'All Podcast imports',
+    'podcast-imports-add' => 'Import a podcast',
     'persons' => 'Persons',
     'person-list' => 'All persons',
     'person-create' => 'New person',
diff --git a/modules/Admin/Language/id/Podcast.php b/modules/Admin/Language/id/Podcast.php
index 2d46aff53156ca301dceb74443d75da60e0cd6e7..08768f1b91ff54f9153ce84d9ee17c33b96d567f 100644
--- a/modules/Admin/Language/id/Podcast.php
+++ b/modules/Admin/Language/id/Podcast.php
@@ -13,6 +13,7 @@ return [
     'no_podcast' => 'No podcast found!',
     'create' => 'Create podcast',
     'import' => 'Import podcast',
+    'all_imports' => 'Podcast imports',
     'new_episode' => 'New Episode',
     'view' => 'View podcast',
     'edit' => 'Edit podcast',
@@ -25,6 +26,8 @@ return [
     'latest_episodes' => 'Latest episodes',
     'see_all_episodes' => 'See all episodes',
     'draft' => 'Draft',
+    'sync_feed' => 'Synchronize feed',
+    'sync_feed_hint' => 'Import this podcast\'s latest episodes',
     'messages' => [
         'createSuccess' => 'Podcast successfully created!',
         'editSuccess' => 'Podcast has been successfully updated!',
@@ -48,7 +51,6 @@ return [
             other {# episodes were}
         } added to the podcast!',
         'podcastFeedUpToDate' => 'Podcast is already up to date.',
-        'podcastNotImported' => 'Podcast could not be updated as it was not imported.',
         'publishError' => 'This podcast is either already published or scheduled for publication.',
         'publishEditError' => 'This podcast is not scheduled for publication.',
         'publishCancelSuccess' => 'Podcast publication successfully cancelled!',
@@ -125,8 +127,6 @@ return [
         'new_feed_url' => 'New feed URL',
         'new_feed_url_hint' => 'Use this field when you move to another domain or podcast hosting platform. By default, the value is set to the current RSS URL if the podcast is imported.',
         'old_feed_url' => 'Old feed URL',
-        'update_feed' => 'Update feed',
-        'update_feed_tip' => 'Import this podcast\'s latest episodes',
         'partnership' => 'Partnership',
         'partner_id' => 'ID',
         'partner_link_url' => 'Link URL',
diff --git a/modules/Admin/Language/id/PodcastNavigation.php b/modules/Admin/Language/id/PodcastNavigation.php
index b4d7ddc0899ebd78178fd75359ca189cd947dc52..a5c98b6c67fdf8722c7229310b1deb1bdc3b0fa3 100644
--- a/modules/Admin/Language/id/PodcastNavigation.php
+++ b/modules/Admin/Language/id/PodcastNavigation.php
@@ -14,6 +14,7 @@ return [
     'podcast-view' => 'Home',
     'podcast-edit' => 'Edit podcast',
     'podcast-persons-manage' => 'Manage persons',
+    'podcast-imports' => 'Podcast imports',
     'episodes' => 'Episodes',
     'episode-list' => 'All episodes',
     'episode-create' => 'New episode',
diff --git a/modules/Admin/Language/it/Breadcrumb.php b/modules/Admin/Language/it/Breadcrumb.php
index 05a72562f5bcaa719c13a04996a4abda70eb1ecf..60d86070a96b3dc2b33094550231306f2062a1ae 100644
--- a/modules/Admin/Language/it/Breadcrumb.php
+++ b/modules/Admin/Language/it/Breadcrumb.php
@@ -36,7 +36,7 @@ return [
     'users' => 'utenti',
     'my-account' => 'il mio profilo',
     'change-password' => 'cambia la password',
-    'import' => 'importazione feed',
+    'imports' => 'imports',
     'platforms' => 'piattaforme',
     'social' => 'social networks',
     'funding' => 'finanziamento',
diff --git a/modules/Admin/Language/it/Navigation.php b/modules/Admin/Language/it/Navigation.php
index 610f14345d427177b5bcbea0b56c1f56512b70ff..d0ddb4c46d3474076f5b24b7421acae0c60558d7 100644
--- a/modules/Admin/Language/it/Navigation.php
+++ b/modules/Admin/Language/it/Navigation.php
@@ -17,7 +17,8 @@ return [
     'podcasts' => 'Podcasts',
     'podcast-list' => 'All podcasts',
     'podcast-create' => 'New podcast',
-    'podcast-import' => 'Import a podcast',
+    'all-podcast-imports' => 'All Podcast imports',
+    'podcast-imports-add' => 'Import a podcast',
     'persons' => 'Persons',
     'person-list' => 'All persons',
     'person-create' => 'New person',
diff --git a/modules/Admin/Language/it/Podcast.php b/modules/Admin/Language/it/Podcast.php
index 2d46aff53156ca301dceb74443d75da60e0cd6e7..08768f1b91ff54f9153ce84d9ee17c33b96d567f 100644
--- a/modules/Admin/Language/it/Podcast.php
+++ b/modules/Admin/Language/it/Podcast.php
@@ -13,6 +13,7 @@ return [
     'no_podcast' => 'No podcast found!',
     'create' => 'Create podcast',
     'import' => 'Import podcast',
+    'all_imports' => 'Podcast imports',
     'new_episode' => 'New Episode',
     'view' => 'View podcast',
     'edit' => 'Edit podcast',
@@ -25,6 +26,8 @@ return [
     'latest_episodes' => 'Latest episodes',
     'see_all_episodes' => 'See all episodes',
     'draft' => 'Draft',
+    'sync_feed' => 'Synchronize feed',
+    'sync_feed_hint' => 'Import this podcast\'s latest episodes',
     'messages' => [
         'createSuccess' => 'Podcast successfully created!',
         'editSuccess' => 'Podcast has been successfully updated!',
@@ -48,7 +51,6 @@ return [
             other {# episodes were}
         } added to the podcast!',
         'podcastFeedUpToDate' => 'Podcast is already up to date.',
-        'podcastNotImported' => 'Podcast could not be updated as it was not imported.',
         'publishError' => 'This podcast is either already published or scheduled for publication.',
         'publishEditError' => 'This podcast is not scheduled for publication.',
         'publishCancelSuccess' => 'Podcast publication successfully cancelled!',
@@ -125,8 +127,6 @@ return [
         'new_feed_url' => 'New feed URL',
         'new_feed_url_hint' => 'Use this field when you move to another domain or podcast hosting platform. By default, the value is set to the current RSS URL if the podcast is imported.',
         'old_feed_url' => 'Old feed URL',
-        'update_feed' => 'Update feed',
-        'update_feed_tip' => 'Import this podcast\'s latest episodes',
         'partnership' => 'Partnership',
         'partner_id' => 'ID',
         'partner_link_url' => 'Link URL',
diff --git a/modules/Admin/Language/it/PodcastNavigation.php b/modules/Admin/Language/it/PodcastNavigation.php
index b4d7ddc0899ebd78178fd75359ca189cd947dc52..a5c98b6c67fdf8722c7229310b1deb1bdc3b0fa3 100644
--- a/modules/Admin/Language/it/PodcastNavigation.php
+++ b/modules/Admin/Language/it/PodcastNavigation.php
@@ -14,6 +14,7 @@ return [
     'podcast-view' => 'Home',
     'podcast-edit' => 'Edit podcast',
     'podcast-persons-manage' => 'Manage persons',
+    'podcast-imports' => 'Podcast imports',
     'episodes' => 'Episodes',
     'episode-list' => 'All episodes',
     'episode-create' => 'New episode',
diff --git a/modules/Admin/Language/ko/Breadcrumb.php b/modules/Admin/Language/ko/Breadcrumb.php
index 558b90f76560802609ce10ed4e320521f494db53..ca6822629d0c311ca92359c4182ad8ce0ae2c86d 100644
--- a/modules/Admin/Language/ko/Breadcrumb.php
+++ b/modules/Admin/Language/ko/Breadcrumb.php
@@ -36,7 +36,7 @@ return [
     'users' => 'users',
     'my-account' => 'my account',
     'change-password' => 'change password',
-    'import' => 'feed import',
+    'imports' => 'imports',
     'platforms' => 'platforms',
     'social' => 'social networks',
     'funding' => 'funding',
diff --git a/modules/Admin/Language/ko/Navigation.php b/modules/Admin/Language/ko/Navigation.php
index 610f14345d427177b5bcbea0b56c1f56512b70ff..d0ddb4c46d3474076f5b24b7421acae0c60558d7 100644
--- a/modules/Admin/Language/ko/Navigation.php
+++ b/modules/Admin/Language/ko/Navigation.php
@@ -17,7 +17,8 @@ return [
     'podcasts' => 'Podcasts',
     'podcast-list' => 'All podcasts',
     'podcast-create' => 'New podcast',
-    'podcast-import' => 'Import a podcast',
+    'all-podcast-imports' => 'All Podcast imports',
+    'podcast-imports-add' => 'Import a podcast',
     'persons' => 'Persons',
     'person-list' => 'All persons',
     'person-create' => 'New person',
diff --git a/modules/Admin/Language/ko/Podcast.php b/modules/Admin/Language/ko/Podcast.php
index 2d46aff53156ca301dceb74443d75da60e0cd6e7..08768f1b91ff54f9153ce84d9ee17c33b96d567f 100644
--- a/modules/Admin/Language/ko/Podcast.php
+++ b/modules/Admin/Language/ko/Podcast.php
@@ -13,6 +13,7 @@ return [
     'no_podcast' => 'No podcast found!',
     'create' => 'Create podcast',
     'import' => 'Import podcast',
+    'all_imports' => 'Podcast imports',
     'new_episode' => 'New Episode',
     'view' => 'View podcast',
     'edit' => 'Edit podcast',
@@ -25,6 +26,8 @@ return [
     'latest_episodes' => 'Latest episodes',
     'see_all_episodes' => 'See all episodes',
     'draft' => 'Draft',
+    'sync_feed' => 'Synchronize feed',
+    'sync_feed_hint' => 'Import this podcast\'s latest episodes',
     'messages' => [
         'createSuccess' => 'Podcast successfully created!',
         'editSuccess' => 'Podcast has been successfully updated!',
@@ -48,7 +51,6 @@ return [
             other {# episodes were}
         } added to the podcast!',
         'podcastFeedUpToDate' => 'Podcast is already up to date.',
-        'podcastNotImported' => 'Podcast could not be updated as it was not imported.',
         'publishError' => 'This podcast is either already published or scheduled for publication.',
         'publishEditError' => 'This podcast is not scheduled for publication.',
         'publishCancelSuccess' => 'Podcast publication successfully cancelled!',
@@ -125,8 +127,6 @@ return [
         'new_feed_url' => 'New feed URL',
         'new_feed_url_hint' => 'Use this field when you move to another domain or podcast hosting platform. By default, the value is set to the current RSS URL if the podcast is imported.',
         'old_feed_url' => 'Old feed URL',
-        'update_feed' => 'Update feed',
-        'update_feed_tip' => 'Import this podcast\'s latest episodes',
         'partnership' => 'Partnership',
         'partner_id' => 'ID',
         'partner_link_url' => 'Link URL',
diff --git a/modules/Admin/Language/ko/PodcastNavigation.php b/modules/Admin/Language/ko/PodcastNavigation.php
index b4d7ddc0899ebd78178fd75359ca189cd947dc52..a5c98b6c67fdf8722c7229310b1deb1bdc3b0fa3 100644
--- a/modules/Admin/Language/ko/PodcastNavigation.php
+++ b/modules/Admin/Language/ko/PodcastNavigation.php
@@ -14,6 +14,7 @@ return [
     'podcast-view' => 'Home',
     'podcast-edit' => 'Edit podcast',
     'podcast-persons-manage' => 'Manage persons',
+    'podcast-imports' => 'Podcast imports',
     'episodes' => 'Episodes',
     'episode-list' => 'All episodes',
     'episode-create' => 'New episode',
diff --git a/modules/Admin/Language/nl/Breadcrumb.php b/modules/Admin/Language/nl/Breadcrumb.php
index 53bcfedb0cf18d20ca01a4f74f6048b8be250885..ff66e639344037c330c158ff9168495856a1cc17 100644
--- a/modules/Admin/Language/nl/Breadcrumb.php
+++ b/modules/Admin/Language/nl/Breadcrumb.php
@@ -36,7 +36,7 @@ return [
     'users' => 'gebruikers',
     'my-account' => 'mijn account',
     'change-password' => 'wachtwoord wijzigen',
-    'import' => 'feed importeren',
+    'imports' => 'imports',
     'platforms' => 'platformen',
     'social' => 'sociale netwerken',
     'funding' => 'financiering',
diff --git a/modules/Admin/Language/nl/Navigation.php b/modules/Admin/Language/nl/Navigation.php
index 610f14345d427177b5bcbea0b56c1f56512b70ff..d0ddb4c46d3474076f5b24b7421acae0c60558d7 100644
--- a/modules/Admin/Language/nl/Navigation.php
+++ b/modules/Admin/Language/nl/Navigation.php
@@ -17,7 +17,8 @@ return [
     'podcasts' => 'Podcasts',
     'podcast-list' => 'All podcasts',
     'podcast-create' => 'New podcast',
-    'podcast-import' => 'Import a podcast',
+    'all-podcast-imports' => 'All Podcast imports',
+    'podcast-imports-add' => 'Import a podcast',
     'persons' => 'Persons',
     'person-list' => 'All persons',
     'person-create' => 'New person',
diff --git a/modules/Admin/Language/nl/Podcast.php b/modules/Admin/Language/nl/Podcast.php
index 2d46aff53156ca301dceb74443d75da60e0cd6e7..08768f1b91ff54f9153ce84d9ee17c33b96d567f 100644
--- a/modules/Admin/Language/nl/Podcast.php
+++ b/modules/Admin/Language/nl/Podcast.php
@@ -13,6 +13,7 @@ return [
     'no_podcast' => 'No podcast found!',
     'create' => 'Create podcast',
     'import' => 'Import podcast',
+    'all_imports' => 'Podcast imports',
     'new_episode' => 'New Episode',
     'view' => 'View podcast',
     'edit' => 'Edit podcast',
@@ -25,6 +26,8 @@ return [
     'latest_episodes' => 'Latest episodes',
     'see_all_episodes' => 'See all episodes',
     'draft' => 'Draft',
+    'sync_feed' => 'Synchronize feed',
+    'sync_feed_hint' => 'Import this podcast\'s latest episodes',
     'messages' => [
         'createSuccess' => 'Podcast successfully created!',
         'editSuccess' => 'Podcast has been successfully updated!',
@@ -48,7 +51,6 @@ return [
             other {# episodes were}
         } added to the podcast!',
         'podcastFeedUpToDate' => 'Podcast is already up to date.',
-        'podcastNotImported' => 'Podcast could not be updated as it was not imported.',
         'publishError' => 'This podcast is either already published or scheduled for publication.',
         'publishEditError' => 'This podcast is not scheduled for publication.',
         'publishCancelSuccess' => 'Podcast publication successfully cancelled!',
@@ -125,8 +127,6 @@ return [
         'new_feed_url' => 'New feed URL',
         'new_feed_url_hint' => 'Use this field when you move to another domain or podcast hosting platform. By default, the value is set to the current RSS URL if the podcast is imported.',
         'old_feed_url' => 'Old feed URL',
-        'update_feed' => 'Update feed',
-        'update_feed_tip' => 'Import this podcast\'s latest episodes',
         'partnership' => 'Partnership',
         'partner_id' => 'ID',
         'partner_link_url' => 'Link URL',
diff --git a/modules/Admin/Language/nl/PodcastNavigation.php b/modules/Admin/Language/nl/PodcastNavigation.php
index b4d7ddc0899ebd78178fd75359ca189cd947dc52..a5c98b6c67fdf8722c7229310b1deb1bdc3b0fa3 100644
--- a/modules/Admin/Language/nl/PodcastNavigation.php
+++ b/modules/Admin/Language/nl/PodcastNavigation.php
@@ -14,6 +14,7 @@ return [
     'podcast-view' => 'Home',
     'podcast-edit' => 'Edit podcast',
     'podcast-persons-manage' => 'Manage persons',
+    'podcast-imports' => 'Podcast imports',
     'episodes' => 'Episodes',
     'episode-list' => 'All episodes',
     'episode-create' => 'New episode',
diff --git a/modules/Admin/Language/nn-NO/Breadcrumb.php b/modules/Admin/Language/nn-NO/Breadcrumb.php
index 9f583e3d7798b0c5bcd05413c880c4905c75f120..8e133d91ceb6ab87497795d3b0fab1e2d9cd1a7c 100644
--- a/modules/Admin/Language/nn-NO/Breadcrumb.php
+++ b/modules/Admin/Language/nn-NO/Breadcrumb.php
@@ -36,7 +36,7 @@ return [
     'users' => 'brukarar',
     'my-account' => 'kontoen min',
     'change-password' => 'endre passord',
-    'import' => 'importer straumar',
+    'imports' => 'imports',
     'platforms' => 'plattformer',
     'social' => 'sosiale nettverk',
     'funding' => 'finansiering',
diff --git a/modules/Admin/Language/nn-NO/Navigation.php b/modules/Admin/Language/nn-NO/Navigation.php
index 5909973df5c7b67937f3d12c0cb805d979e13380..808c5a52e177035ece28e20a275ea9ae69625756 100644
--- a/modules/Admin/Language/nn-NO/Navigation.php
+++ b/modules/Admin/Language/nn-NO/Navigation.php
@@ -17,7 +17,8 @@ return [
     'podcasts' => 'Podkastar',
     'podcast-list' => 'Alle podkastar',
     'podcast-create' => 'Ny podkast',
-    'podcast-import' => 'Importer ein podkast',
+    'all-podcast-imports' => 'All Podcast imports',
+    'podcast-imports-add' => 'Import a podcast',
     'persons' => 'Personar',
     'person-list' => 'Alle personar',
     'person-create' => 'Ny person',
diff --git a/modules/Admin/Language/nn-NO/Podcast.php b/modules/Admin/Language/nn-NO/Podcast.php
index b54572948d080f05c7ebe781e26cf601f989da0c..65394f7235c2a9e0dd342ecd568a47792c019438 100644
--- a/modules/Admin/Language/nn-NO/Podcast.php
+++ b/modules/Admin/Language/nn-NO/Podcast.php
@@ -13,6 +13,7 @@ return [
     'no_podcast' => 'Fann ingen podkast!',
     'create' => 'Lag ein podcast',
     'import' => 'Importer ein podkast',
+    'all_imports' => 'Podcast imports',
     'new_episode' => 'Ny episode',
     'view' => 'Sjå podkasten',
     'edit' => 'Rediger podkasten',
@@ -25,6 +26,8 @@ return [
     'latest_episodes' => 'Dei nyaste episodane',
     'see_all_episodes' => 'Sjå alle episodane',
     'draft' => 'Kladd',
+    'sync_feed' => 'Synchronize feed',
+    'sync_feed_hint' => 'Import this podcast\'s latest episodes',
     'messages' => [
         'createSuccess' => 'Podkasten er oppretta!',
         'editSuccess' => 'Podkasten er oppdatert!',
@@ -48,7 +51,6 @@ return [
             other {# episodar vart lagde}
         } til podkasten!',
         'podcastFeedUpToDate' => 'Podkasten er allereie oppdatert.',
-        'podcastNotImported' => 'Greidde ikkje oppdatera podkasten fordi han ikkje vart importert.',
         'publishError' => 'Denne podkasten er allereie lagt ut eller planlagt for offentleggjering.',
         'publishEditError' => 'Denne podkasten er ikkje planlagt publisert.',
         'publishCancelSuccess' => 'Du har avbrote å leggja ut podkasten.',
@@ -112,8 +114,8 @@ return [
         'premium_by_default_hint' => 'Podkastepisodane vil få premium som standardmerking. Du kan likevel ha nokre episodar, trailerar eller bonusar som offentlege.',
         'op3' => 'Open Podcast Prefix-prosjekt (OP3)',
         'op3_hint' => 'Value your analytics data with OP3, an open-source and trusted third party analytics service. Share, validate and compare your analytics data with the open podcasting ecosystem.',
-        'op3_enable' => 'Enable OP3 analytics service',
-        'op3_enable_hint' => 'For security reasons, premium episodes\' analytics data will not be shared with OP3.',
+        'op3_enable' => 'Bruk OP3-analysetenesta',
+        'op3_enable_hint' => 'Av tryggleiksgrunnar deler me ikkje analysedata for premium-episodar med OP3.',
         'payment_pointer' => 'Betalingspunkt for nettkommersialisering',
         'payment_pointer_hint' =>
             'Det er her du vil få inn pengar frå nettkommersialiseringa',
@@ -124,9 +126,7 @@ return [
         'custom_rss_hint' => 'Dette blir sett inn i ❬channel❭-elementet.',
         'new_feed_url' => 'Ny straum-URL',
         'new_feed_url_hint' => 'Bruk dette feltet når du flyttar til eit anna domene eller vertsplattform. Standardvalet for verdien er den noverande RSS-adresse viss podkasten er importert.',
-        'old_feed_url' => 'Old feed URL',
-        'update_feed' => 'Update feed',
-        'update_feed_tip' => 'Import this podcast\'s latest episodes',
+        'old_feed_url' => 'Gamal straum-URL',
         'partnership' => 'Partnarskap',
         'partner_id' => 'ID',
         'partner_link_url' => 'Lenke-URL',
@@ -135,9 +135,9 @@ return [
         'partner_link_url_hint' => 'Lenkeadressa til den generelle partnaren',
         'partner_image_url_hint' => 'Biletadressa til den generelle partnaren',
         'status_section_title' => 'Status',
-        'block' => 'Podcast should be hidden from public catalogues',
+        'block' => 'Podkasten skal gøymast frå offentlege katalogar',
         'block_hint' =>
-            'The podcast show or hide status: toggling this on prevents the entire podcast from appearing in Apple Podcasts, Google Podcasts, and any third party apps that pull shows from these directories. (Not guaranteed)',
+            'Vis- eller gøym- status for podkasten: Dersom du skrur på dette, hindrar det heile podkasten frå å syna i Apple podcasts, Google podcasts og andre tredjeparts-appar som hentar podkastar frå desse (men ingen garanti)',
         'complete' => 'Podkasten vil ikkje få fleire episodar',
         'lock' => 'Hindre at podkasten blir kopiert',
         'lock_hint' =>
@@ -259,36 +259,36 @@ return [
         'tv_reviews' => 'TV-meldingar',
     ],
     'publish_form' => [
-        'back_to_podcast_dashboard' => 'Back to podcast dashboard',
-        'post' => 'Your announcement post',
+        'back_to_podcast_dashboard' => 'Tilbake til podkast-styringspanelet',
+        'post' => 'Kunngjeringsinnlegget ditt',
         'post_hint' =>
-            "Write a message to announce the publication of your podcast. The message will be featured in your podcast's homepage.",
-        'message_placeholder' => 'Write your message…',
-        'submit' => 'Publish',
-        'publication_date' => 'Publication date',
+            "Skriv ei melding for å kunngjera at du legg ut podkasten. Dette vil stå på hiemesida til podkasten din.",
+        'message_placeholder' => 'Skriv kunngjeringa di…',
+        'submit' => 'Legg ut',
+        'publication_date' => 'Publiseringsdato',
         'publication_method' => [
-            'now' => 'Now',
-            'schedule' => 'Schedule',
+            'now' => 'No',
+            'schedule' => 'Tidsplan',
         ],
-        'scheduled_publication_date' => 'Scheduled publication date',
+        'scheduled_publication_date' => 'Planlagd publiseringsdato',
         'scheduled_publication_date_hint' =>
-            'You can schedule the podcast release by setting a future publication date. This field must be formatted as YYYY-MM-DD HH:mm',
-        'submit_edit' => 'Edit publication',
-        'cancel_publication' => 'Cancel publication',
-        'message_warning' => 'You did not write a message for your announcement post!',
-        'message_warning_hint' => 'Having a message increases social engagement, resulting in a better visibility for your podcast.',
-        'message_warning_submit' => 'Publish anyway',
+            'Du kan planleggja å offengleggjera podkasten seinare ved å skriva inn eit publiseringstidspunkt. Feltet må vera i formatet ÅÅÅÅ-MM-DD HH:mm',
+        'submit_edit' => 'Rediger publiseringa',
+        'cancel_publication' => 'Avbryt publisering',
+        'message_warning' => 'Du skreiv inga melding til kunngjeringsinnlegget ditt!',
+        'message_warning_hint' => 'Viss du skriv ei melding, kan det gje meir sosialt engasjement og syta for at podkasten din blir meir synleg.',
+        'message_warning_submit' => 'Legg ut likevel',
     ],
     'publication_status_banner' => [
-        'draft_mode' => 'draft mode',
-        'not_published' => 'This podcast is not yet published.',
-        'scheduled' => 'This podcast is scheduled for publication on {publication_date}.',
+        'draft_mode' => 'kladdemodus',
+        'not_published' => 'Denne podkasten er ikkje lagt ut enno.',
+        'scheduled' => 'Denne podkasten er planlagt for utgjeving {publication_date}.',
     ],
     'delete_form' => [
         'disclaimer' =>
-            "Deleting the podcast will delete all episodes, media files, posts and analytics associated with it. This action is irreversible, you will not be able to retrieve them afterwards.",
-        'understand' => 'I understand, I want the podcast to be permanently deleted',
-        'submit' => 'Delete',
+            "Viss du slettar podkasten, vil det sletta alle episodar, mediafiler, innlegg og analyse som høyrer til. Du kan ikkje angra dette, og vil ikkje få det tilbake etterpå.",
+        'understand' => 'Eg forstår, og vil sletta podkasten for alltid',
+        'submit' => 'Slett',
     ],
     'by' => 'Av {publisher}',
     'season' => 'Sesong {seasonNumber}',
@@ -298,12 +298,12 @@ return [
     'no_episode' => 'Fann ingen episode!',
     'follow' => 'Fylg',
     'followers' => '{numberOfFollowers, plural,
-        one {# follower}
-        other {# followers}
+        one {# fylgjar}
+        other {# fylgjarar}
     }',
     'posts' => '{numberOfPosts, plural,
-        one {# post}
-        other {# posts}
+        one {# innlegg}
+        other {# innlegg}
     }',
     'activity' => 'Aktivitet',
     'episodes' => 'Episodar',
diff --git a/modules/Admin/Language/nn-NO/PodcastNavigation.php b/modules/Admin/Language/nn-NO/PodcastNavigation.php
index 0d1bb49ef264b6474c04028d703bbe79b4fd5c50..bc4a10ebede662d8286f274bf3297b3bac380626 100644
--- a/modules/Admin/Language/nn-NO/PodcastNavigation.php
+++ b/modules/Admin/Language/nn-NO/PodcastNavigation.php
@@ -14,6 +14,7 @@ return [
     'podcast-view' => 'Heim',
     'podcast-edit' => 'Rediger podkasten',
     'podcast-persons-manage' => 'Handter personar',
+    'podcast-imports' => 'Podcast imports',
     'episodes' => 'Episodar',
     'episode-list' => 'Alle episodane',
     'episode-create' => 'Ny episode',
diff --git a/modules/Admin/Language/nn-NO/Settings.php b/modules/Admin/Language/nn-NO/Settings.php
index 6d9f6641f4bd5d18a3194d278e67104ca1255fd1..d05ccfc93d73e7837facab7be5c860f0ac0f5890 100644
--- a/modules/Admin/Language/nn-NO/Settings.php
+++ b/modules/Admin/Language/nn-NO/Settings.php
@@ -15,7 +15,7 @@ return [
         'site_icon' => 'Sideikon',
         'site_icon_delete' => 'Slett sideikonet',
         'site_icon_hint' => 'Nettstadikon er det du ser i fanene på nettlesaren, bokmerkelina og når du legg til ein nettstad som snarveg på mobile einingar.',
-        'site_icon_helper' => 'Icon must be squared and at least 512px wide and tall.',
+        'site_icon_helper' => 'Ikonet må vera kvadratisk og minst 512pkt breitt og høgt.',
         'site_name' => 'Nettstadnamn',
         'site_description' => 'Skildring av nettstaden',
         'submit' => 'Lagre',
@@ -35,8 +35,8 @@ return [
         'reset_counts_helper' => 'Dette nullstiller alle datateljarar (tal på fylgjarar, innlegg, kommentarar…).',
         'rewrite_media' => 'Overskriv metadata for medium',
         'rewrite_media_helper' => 'Dette vil sletta alle overflødige mediafiler og laga dei på nytt (bilete, lydfiler, transkriberingar, kapittel, …)',
-        'rename_episodes_files' => 'Rename episode audio files',
-        'rename_episodes_files_hint' => 'This option will rename all episodes audio files to a random string of characters. Use this if one of your private episodes link was leaked as this will effectively hide it.',
+        'rename_episodes_files' => 'Gje episode-lydfilene nytt namn',
+        'rename_episodes_files_hint' => 'Dette alternativet gjev alle episode-lydfilene tilfeldige nye namn. Bruk dette viss lenka til dei private episodane vart leken, for då blir ho i praksis gøymt att.',
         'clear_cache' => 'Slett bufferinnhald',
         'clear_cache_helper' => 'Dette tømmer redis-mellomlageret eller skrivbare/mellomlagra filer.',
         'run' => 'Gjer reinhald',
diff --git a/modules/Admin/Language/oc/Breadcrumb.php b/modules/Admin/Language/oc/Breadcrumb.php
index 558b90f76560802609ce10ed4e320521f494db53..ca6822629d0c311ca92359c4182ad8ce0ae2c86d 100644
--- a/modules/Admin/Language/oc/Breadcrumb.php
+++ b/modules/Admin/Language/oc/Breadcrumb.php
@@ -36,7 +36,7 @@ return [
     'users' => 'users',
     'my-account' => 'my account',
     'change-password' => 'change password',
-    'import' => 'feed import',
+    'imports' => 'imports',
     'platforms' => 'platforms',
     'social' => 'social networks',
     'funding' => 'funding',
diff --git a/modules/Admin/Language/oc/Navigation.php b/modules/Admin/Language/oc/Navigation.php
index 610f14345d427177b5bcbea0b56c1f56512b70ff..d0ddb4c46d3474076f5b24b7421acae0c60558d7 100644
--- a/modules/Admin/Language/oc/Navigation.php
+++ b/modules/Admin/Language/oc/Navigation.php
@@ -17,7 +17,8 @@ return [
     'podcasts' => 'Podcasts',
     'podcast-list' => 'All podcasts',
     'podcast-create' => 'New podcast',
-    'podcast-import' => 'Import a podcast',
+    'all-podcast-imports' => 'All Podcast imports',
+    'podcast-imports-add' => 'Import a podcast',
     'persons' => 'Persons',
     'person-list' => 'All persons',
     'person-create' => 'New person',
diff --git a/modules/Admin/Language/oc/Podcast.php b/modules/Admin/Language/oc/Podcast.php
index 2d46aff53156ca301dceb74443d75da60e0cd6e7..08768f1b91ff54f9153ce84d9ee17c33b96d567f 100644
--- a/modules/Admin/Language/oc/Podcast.php
+++ b/modules/Admin/Language/oc/Podcast.php
@@ -13,6 +13,7 @@ return [
     'no_podcast' => 'No podcast found!',
     'create' => 'Create podcast',
     'import' => 'Import podcast',
+    'all_imports' => 'Podcast imports',
     'new_episode' => 'New Episode',
     'view' => 'View podcast',
     'edit' => 'Edit podcast',
@@ -25,6 +26,8 @@ return [
     'latest_episodes' => 'Latest episodes',
     'see_all_episodes' => 'See all episodes',
     'draft' => 'Draft',
+    'sync_feed' => 'Synchronize feed',
+    'sync_feed_hint' => 'Import this podcast\'s latest episodes',
     'messages' => [
         'createSuccess' => 'Podcast successfully created!',
         'editSuccess' => 'Podcast has been successfully updated!',
@@ -48,7 +51,6 @@ return [
             other {# episodes were}
         } added to the podcast!',
         'podcastFeedUpToDate' => 'Podcast is already up to date.',
-        'podcastNotImported' => 'Podcast could not be updated as it was not imported.',
         'publishError' => 'This podcast is either already published or scheduled for publication.',
         'publishEditError' => 'This podcast is not scheduled for publication.',
         'publishCancelSuccess' => 'Podcast publication successfully cancelled!',
@@ -125,8 +127,6 @@ return [
         'new_feed_url' => 'New feed URL',
         'new_feed_url_hint' => 'Use this field when you move to another domain or podcast hosting platform. By default, the value is set to the current RSS URL if the podcast is imported.',
         'old_feed_url' => 'Old feed URL',
-        'update_feed' => 'Update feed',
-        'update_feed_tip' => 'Import this podcast\'s latest episodes',
         'partnership' => 'Partnership',
         'partner_id' => 'ID',
         'partner_link_url' => 'Link URL',
diff --git a/modules/Admin/Language/oc/PodcastNavigation.php b/modules/Admin/Language/oc/PodcastNavigation.php
index b4d7ddc0899ebd78178fd75359ca189cd947dc52..a5c98b6c67fdf8722c7229310b1deb1bdc3b0fa3 100644
--- a/modules/Admin/Language/oc/PodcastNavigation.php
+++ b/modules/Admin/Language/oc/PodcastNavigation.php
@@ -14,6 +14,7 @@ return [
     'podcast-view' => 'Home',
     'podcast-edit' => 'Edit podcast',
     'podcast-persons-manage' => 'Manage persons',
+    'podcast-imports' => 'Podcast imports',
     'episodes' => 'Episodes',
     'episode-list' => 'All episodes',
     'episode-create' => 'New episode',
diff --git a/modules/Admin/Language/pl/Breadcrumb.php b/modules/Admin/Language/pl/Breadcrumb.php
index 78249d87abe450e40babe062bd2abbd477b70850..4e95f1138ac296bbfc2bf4d82e82411d8f392191 100644
--- a/modules/Admin/Language/pl/Breadcrumb.php
+++ b/modules/Admin/Language/pl/Breadcrumb.php
@@ -36,7 +36,7 @@ return [
     'users' => 'użytkownicy',
     'my-account' => 'moje konto',
     'change-password' => 'zmień hasło',
-    'import' => 'import kanału',
+    'imports' => 'imports',
     'platforms' => 'platformy',
     'social' => 'sieci społecznościowe',
     'funding' => 'finansowanie',
diff --git a/modules/Admin/Language/pl/Navigation.php b/modules/Admin/Language/pl/Navigation.php
index f28a261560fa758987fbf1d6b52911f213e455d1..cacec2c9b20f8e78ff0358e07b624fca419a92b9 100644
--- a/modules/Admin/Language/pl/Navigation.php
+++ b/modules/Admin/Language/pl/Navigation.php
@@ -17,7 +17,8 @@ return [
     'podcasts' => 'Podcasty',
     'podcast-list' => 'Wszystkie podcasty',
     'podcast-create' => 'Nowy podcast',
-    'podcast-import' => 'Importuj podcast',
+    'all-podcast-imports' => 'All Podcast imports',
+    'podcast-imports-add' => 'Import a podcast',
     'persons' => 'Osoby',
     'person-list' => 'Wszystkie osoby',
     'person-create' => 'Nowa osoba',
diff --git a/modules/Admin/Language/pl/Podcast.php b/modules/Admin/Language/pl/Podcast.php
index 62f674c5c9003e7f0ecb4021e98d9294b724f2b8..d1d1b7c443d363472646690ea28812b0df8c6d05 100644
--- a/modules/Admin/Language/pl/Podcast.php
+++ b/modules/Admin/Language/pl/Podcast.php
@@ -13,6 +13,7 @@ return [
     'no_podcast' => 'Nie znaleziono podcastu!',
     'create' => 'Stwórz podcast',
     'import' => 'Importuj podcast',
+    'all_imports' => 'Podcast imports',
     'new_episode' => 'Nowy Odcinek',
     'view' => 'Wyświetl podcast',
     'edit' => 'Edytuj podcast',
@@ -25,6 +26,8 @@ return [
     'latest_episodes' => 'Najnowsze odcinki',
     'see_all_episodes' => 'Zobacz wszystkie odcinki',
     'draft' => 'Wersja robocza',
+    'sync_feed' => 'Synchronize feed',
+    'sync_feed_hint' => 'Import this podcast\'s latest episodes',
     'messages' => [
         'createSuccess' => 'Podcast został pomyślnie utworzony!',
         'editSuccess' => 'Podcast został pomyślnie zaktualizowany!',
@@ -48,7 +51,6 @@ return [
             other {# episodes were}
         } added to the podcast!',
         'podcastFeedUpToDate' => 'Podcast jest już aktualny.',
-        'podcastNotImported' => 'Podcast could not be updated as it was not imported.',
         'publishError' => 'This podcast is either already published or scheduled for publication.',
         'publishEditError' => 'This podcast is not scheduled for publication.',
         'publishCancelSuccess' => 'Podcast publication successfully cancelled!',
@@ -125,8 +127,6 @@ return [
         'new_feed_url' => 'Nowy adres URL kanału',
         'new_feed_url_hint' => 'Użyj tego pola, gdy przenosisz się do innej domeny lub platformy hostingowej podcastu. Domyślnie wartość jest ustawiona na bieżący adres URL RSS, jeśli podcast jest importowany.',
         'old_feed_url' => 'Old feed URL',
-        'update_feed' => 'Update feed',
-        'update_feed_tip' => 'Import this podcast\'s latest episodes',
         'partnership' => 'Partnerstwo',
         'partner_id' => 'ID',
         'partner_link_url' => 'Adres URL linku',
diff --git a/modules/Admin/Language/pl/PodcastNavigation.php b/modules/Admin/Language/pl/PodcastNavigation.php
index 0309c726b2bc3fb3d9d844f4ce76f4c542828336..fe8d119bc6d5cc6a9f756f73d4bfe6a49662016f 100644
--- a/modules/Admin/Language/pl/PodcastNavigation.php
+++ b/modules/Admin/Language/pl/PodcastNavigation.php
@@ -14,6 +14,7 @@ return [
     'podcast-view' => 'PoczÄ…tek',
     'podcast-edit' => 'Edytuj podcast',
     'podcast-persons-manage' => 'ZarzÄ…dzaj osobami',
+    'podcast-imports' => 'Podcast imports',
     'episodes' => 'Odcinki',
     'episode-list' => 'Wszystkie odcinki',
     'episode-create' => 'Nowy odcinek',
diff --git a/modules/Admin/Language/pt-BR/Breadcrumb.php b/modules/Admin/Language/pt-BR/Breadcrumb.php
index 6854db6aa82becf051003583f8f347a3f53fa1fa..d252ede2d654bb2045544c6eb47ed2ab41034469 100644
--- a/modules/Admin/Language/pt-BR/Breadcrumb.php
+++ b/modules/Admin/Language/pt-BR/Breadcrumb.php
@@ -36,7 +36,7 @@ return [
     'users' => 'usuários',
     'my-account' => 'minha conta',
     'change-password' => 'alterar senha',
-    'import' => 'importar feed',
+    'imports' => 'imports',
     'platforms' => 'plataformas',
     'social' => 'redes sociais',
     'funding' => 'financiamento',
diff --git a/modules/Admin/Language/pt-BR/Navigation.php b/modules/Admin/Language/pt-BR/Navigation.php
index 91994d0635e2b4d5ae0ebbd24ed0760ee7f0bcef..0e8ca75b78c89ef5596b6b1b064e3cddc722e1b4 100644
--- a/modules/Admin/Language/pt-BR/Navigation.php
+++ b/modules/Admin/Language/pt-BR/Navigation.php
@@ -17,7 +17,8 @@ return [
     'podcasts' => 'Podcasts',
     'podcast-list' => 'Todos os podcasts',
     'podcast-create' => 'Novo podcast',
-    'podcast-import' => 'Importar um podcast',
+    'all-podcast-imports' => 'All Podcast imports',
+    'podcast-imports-add' => 'Import a podcast',
     'persons' => 'Pessoas',
     'person-list' => 'Todas as pessoas',
     'person-create' => 'Nova pessoa',
diff --git a/modules/Admin/Language/pt-BR/Podcast.php b/modules/Admin/Language/pt-BR/Podcast.php
index 7f2295dc14c260249c6afe34d91bf433254fbbe2..471387b709514dd81df4d4ac2ecba12b4f00b2e2 100644
--- a/modules/Admin/Language/pt-BR/Podcast.php
+++ b/modules/Admin/Language/pt-BR/Podcast.php
@@ -13,6 +13,7 @@ return [
     'no_podcast' => 'Nenhum podcast encontrado!',
     'create' => 'Criar podcast',
     'import' => 'Importar podcast',
+    'all_imports' => 'Podcast imports',
     'new_episode' => 'Novo Episódio',
     'view' => 'Ver podcast',
     'edit' => 'Editar podcast',
@@ -25,6 +26,8 @@ return [
     'latest_episodes' => 'Últimos episódios',
     'see_all_episodes' => 'Ver todos os episódios',
     'draft' => 'Rascunho',
+    'sync_feed' => 'Synchronize feed',
+    'sync_feed_hint' => 'Import this podcast\'s latest episodes',
     'messages' => [
         'createSuccess' => 'Podcast criado com sucesso!',
         'editSuccess' => 'Podcast foi atualizado com sucesso!',
@@ -48,7 +51,6 @@ return [
             other {# episódios foram adicionados}
         } ao podcast!',
         'podcastFeedUpToDate' => 'O Podcast já está atualizado.',
-        'podcastNotImported' => 'O Podcast não pôde ser atualizado pois não foi importado.',
         'publishError' => 'Este podcast já está publicado ou agendado para publicação.',
         'publishEditError' => 'Este podcast não está agendado para publicação.',
         'publishCancelSuccess' => 'Publicação do Podcast cancelada com sucesso!',
@@ -125,8 +127,6 @@ return [
         'new_feed_url' => 'Nova URL de feed',
         'new_feed_url_hint' => 'Use este campo ao mover este podcast para outro domínio ou alterar hosts. Por padrão, este campo é preenchido com a URL do feed RSS atual se o podcast for importado.',
         'old_feed_url' => 'URL de feed antigo',
-        'update_feed' => 'Atualizar feed',
-        'update_feed_tip' => 'Importar os últimos episódios deste podcast',
         'partnership' => 'Parceria',
         'partner_id' => 'ID',
         'partner_link_url' => 'URL do link',
diff --git a/modules/Admin/Language/pt-BR/PodcastNavigation.php b/modules/Admin/Language/pt-BR/PodcastNavigation.php
index 29e4b78624deb9529d75e1384b9175757bcfd9e0..7841e71a1fe7ffd22a0e367cb9d1308566f35996 100644
--- a/modules/Admin/Language/pt-BR/PodcastNavigation.php
+++ b/modules/Admin/Language/pt-BR/PodcastNavigation.php
@@ -14,6 +14,7 @@ return [
     'podcast-view' => 'Início',
     'podcast-edit' => 'Editar podcast',
     'podcast-persons-manage' => 'Gerenciar pessoas',
+    'podcast-imports' => 'Podcast imports',
     'episodes' => 'Episódios',
     'episode-list' => 'Todos os episódios',
     'episode-create' => 'Novo episódio',
diff --git a/modules/Admin/Language/pt/Breadcrumb.php b/modules/Admin/Language/pt/Breadcrumb.php
index 558b90f76560802609ce10ed4e320521f494db53..ca6822629d0c311ca92359c4182ad8ce0ae2c86d 100644
--- a/modules/Admin/Language/pt/Breadcrumb.php
+++ b/modules/Admin/Language/pt/Breadcrumb.php
@@ -36,7 +36,7 @@ return [
     'users' => 'users',
     'my-account' => 'my account',
     'change-password' => 'change password',
-    'import' => 'feed import',
+    'imports' => 'imports',
     'platforms' => 'platforms',
     'social' => 'social networks',
     'funding' => 'funding',
diff --git a/modules/Admin/Language/pt/Navigation.php b/modules/Admin/Language/pt/Navigation.php
index 610f14345d427177b5bcbea0b56c1f56512b70ff..d0ddb4c46d3474076f5b24b7421acae0c60558d7 100644
--- a/modules/Admin/Language/pt/Navigation.php
+++ b/modules/Admin/Language/pt/Navigation.php
@@ -17,7 +17,8 @@ return [
     'podcasts' => 'Podcasts',
     'podcast-list' => 'All podcasts',
     'podcast-create' => 'New podcast',
-    'podcast-import' => 'Import a podcast',
+    'all-podcast-imports' => 'All Podcast imports',
+    'podcast-imports-add' => 'Import a podcast',
     'persons' => 'Persons',
     'person-list' => 'All persons',
     'person-create' => 'New person',
diff --git a/modules/Admin/Language/pt/Podcast.php b/modules/Admin/Language/pt/Podcast.php
index 2d46aff53156ca301dceb74443d75da60e0cd6e7..08768f1b91ff54f9153ce84d9ee17c33b96d567f 100644
--- a/modules/Admin/Language/pt/Podcast.php
+++ b/modules/Admin/Language/pt/Podcast.php
@@ -13,6 +13,7 @@ return [
     'no_podcast' => 'No podcast found!',
     'create' => 'Create podcast',
     'import' => 'Import podcast',
+    'all_imports' => 'Podcast imports',
     'new_episode' => 'New Episode',
     'view' => 'View podcast',
     'edit' => 'Edit podcast',
@@ -25,6 +26,8 @@ return [
     'latest_episodes' => 'Latest episodes',
     'see_all_episodes' => 'See all episodes',
     'draft' => 'Draft',
+    'sync_feed' => 'Synchronize feed',
+    'sync_feed_hint' => 'Import this podcast\'s latest episodes',
     'messages' => [
         'createSuccess' => 'Podcast successfully created!',
         'editSuccess' => 'Podcast has been successfully updated!',
@@ -48,7 +51,6 @@ return [
             other {# episodes were}
         } added to the podcast!',
         'podcastFeedUpToDate' => 'Podcast is already up to date.',
-        'podcastNotImported' => 'Podcast could not be updated as it was not imported.',
         'publishError' => 'This podcast is either already published or scheduled for publication.',
         'publishEditError' => 'This podcast is not scheduled for publication.',
         'publishCancelSuccess' => 'Podcast publication successfully cancelled!',
@@ -125,8 +127,6 @@ return [
         'new_feed_url' => 'New feed URL',
         'new_feed_url_hint' => 'Use this field when you move to another domain or podcast hosting platform. By default, the value is set to the current RSS URL if the podcast is imported.',
         'old_feed_url' => 'Old feed URL',
-        'update_feed' => 'Update feed',
-        'update_feed_tip' => 'Import this podcast\'s latest episodes',
         'partnership' => 'Partnership',
         'partner_id' => 'ID',
         'partner_link_url' => 'Link URL',
diff --git a/modules/Admin/Language/pt/PodcastNavigation.php b/modules/Admin/Language/pt/PodcastNavigation.php
index b4d7ddc0899ebd78178fd75359ca189cd947dc52..a5c98b6c67fdf8722c7229310b1deb1bdc3b0fa3 100644
--- a/modules/Admin/Language/pt/PodcastNavigation.php
+++ b/modules/Admin/Language/pt/PodcastNavigation.php
@@ -14,6 +14,7 @@ return [
     'podcast-view' => 'Home',
     'podcast-edit' => 'Edit podcast',
     'podcast-persons-manage' => 'Manage persons',
+    'podcast-imports' => 'Podcast imports',
     'episodes' => 'Episodes',
     'episode-list' => 'All episodes',
     'episode-create' => 'New episode',
diff --git a/modules/Admin/Language/ro/Breadcrumb.php b/modules/Admin/Language/ro/Breadcrumb.php
index 558b90f76560802609ce10ed4e320521f494db53..ca6822629d0c311ca92359c4182ad8ce0ae2c86d 100644
--- a/modules/Admin/Language/ro/Breadcrumb.php
+++ b/modules/Admin/Language/ro/Breadcrumb.php
@@ -36,7 +36,7 @@ return [
     'users' => 'users',
     'my-account' => 'my account',
     'change-password' => 'change password',
-    'import' => 'feed import',
+    'imports' => 'imports',
     'platforms' => 'platforms',
     'social' => 'social networks',
     'funding' => 'funding',
diff --git a/modules/Admin/Language/ro/Navigation.php b/modules/Admin/Language/ro/Navigation.php
index 610f14345d427177b5bcbea0b56c1f56512b70ff..d0ddb4c46d3474076f5b24b7421acae0c60558d7 100644
--- a/modules/Admin/Language/ro/Navigation.php
+++ b/modules/Admin/Language/ro/Navigation.php
@@ -17,7 +17,8 @@ return [
     'podcasts' => 'Podcasts',
     'podcast-list' => 'All podcasts',
     'podcast-create' => 'New podcast',
-    'podcast-import' => 'Import a podcast',
+    'all-podcast-imports' => 'All Podcast imports',
+    'podcast-imports-add' => 'Import a podcast',
     'persons' => 'Persons',
     'person-list' => 'All persons',
     'person-create' => 'New person',
diff --git a/modules/Admin/Language/ro/Podcast.php b/modules/Admin/Language/ro/Podcast.php
index 2d46aff53156ca301dceb74443d75da60e0cd6e7..08768f1b91ff54f9153ce84d9ee17c33b96d567f 100644
--- a/modules/Admin/Language/ro/Podcast.php
+++ b/modules/Admin/Language/ro/Podcast.php
@@ -13,6 +13,7 @@ return [
     'no_podcast' => 'No podcast found!',
     'create' => 'Create podcast',
     'import' => 'Import podcast',
+    'all_imports' => 'Podcast imports',
     'new_episode' => 'New Episode',
     'view' => 'View podcast',
     'edit' => 'Edit podcast',
@@ -25,6 +26,8 @@ return [
     'latest_episodes' => 'Latest episodes',
     'see_all_episodes' => 'See all episodes',
     'draft' => 'Draft',
+    'sync_feed' => 'Synchronize feed',
+    'sync_feed_hint' => 'Import this podcast\'s latest episodes',
     'messages' => [
         'createSuccess' => 'Podcast successfully created!',
         'editSuccess' => 'Podcast has been successfully updated!',
@@ -48,7 +51,6 @@ return [
             other {# episodes were}
         } added to the podcast!',
         'podcastFeedUpToDate' => 'Podcast is already up to date.',
-        'podcastNotImported' => 'Podcast could not be updated as it was not imported.',
         'publishError' => 'This podcast is either already published or scheduled for publication.',
         'publishEditError' => 'This podcast is not scheduled for publication.',
         'publishCancelSuccess' => 'Podcast publication successfully cancelled!',
@@ -125,8 +127,6 @@ return [
         'new_feed_url' => 'New feed URL',
         'new_feed_url_hint' => 'Use this field when you move to another domain or podcast hosting platform. By default, the value is set to the current RSS URL if the podcast is imported.',
         'old_feed_url' => 'Old feed URL',
-        'update_feed' => 'Update feed',
-        'update_feed_tip' => 'Import this podcast\'s latest episodes',
         'partnership' => 'Partnership',
         'partner_id' => 'ID',
         'partner_link_url' => 'Link URL',
diff --git a/modules/Admin/Language/ro/PodcastNavigation.php b/modules/Admin/Language/ro/PodcastNavigation.php
index b4d7ddc0899ebd78178fd75359ca189cd947dc52..a5c98b6c67fdf8722c7229310b1deb1bdc3b0fa3 100644
--- a/modules/Admin/Language/ro/PodcastNavigation.php
+++ b/modules/Admin/Language/ro/PodcastNavigation.php
@@ -14,6 +14,7 @@ return [
     'podcast-view' => 'Home',
     'podcast-edit' => 'Edit podcast',
     'podcast-persons-manage' => 'Manage persons',
+    'podcast-imports' => 'Podcast imports',
     'episodes' => 'Episodes',
     'episode-list' => 'All episodes',
     'episode-create' => 'New episode',
diff --git a/modules/Admin/Language/ru/Breadcrumb.php b/modules/Admin/Language/ru/Breadcrumb.php
index 8383e4c791fac7ea557dfd2316f2fa2d14b32d25..956be05f8edbe2a12b223cee719aa88fa645c5a7 100644
--- a/modules/Admin/Language/ru/Breadcrumb.php
+++ b/modules/Admin/Language/ru/Breadcrumb.php
@@ -36,7 +36,7 @@ return [
     'users' => 'пользователи',
     'my-account' => 'мой аккаунт',
     'change-password' => 'сменить пароль',
-    'import' => 'импорт ленты',
+    'imports' => 'imports',
     'platforms' => 'платформы',
     'social' => 'социальные сети',
     'funding' => 'финансирование',
diff --git a/modules/Admin/Language/ru/Navigation.php b/modules/Admin/Language/ru/Navigation.php
index 610f14345d427177b5bcbea0b56c1f56512b70ff..d0ddb4c46d3474076f5b24b7421acae0c60558d7 100644
--- a/modules/Admin/Language/ru/Navigation.php
+++ b/modules/Admin/Language/ru/Navigation.php
@@ -17,7 +17,8 @@ return [
     'podcasts' => 'Podcasts',
     'podcast-list' => 'All podcasts',
     'podcast-create' => 'New podcast',
-    'podcast-import' => 'Import a podcast',
+    'all-podcast-imports' => 'All Podcast imports',
+    'podcast-imports-add' => 'Import a podcast',
     'persons' => 'Persons',
     'person-list' => 'All persons',
     'person-create' => 'New person',
diff --git a/modules/Admin/Language/ru/Podcast.php b/modules/Admin/Language/ru/Podcast.php
index 2d46aff53156ca301dceb74443d75da60e0cd6e7..08768f1b91ff54f9153ce84d9ee17c33b96d567f 100644
--- a/modules/Admin/Language/ru/Podcast.php
+++ b/modules/Admin/Language/ru/Podcast.php
@@ -13,6 +13,7 @@ return [
     'no_podcast' => 'No podcast found!',
     'create' => 'Create podcast',
     'import' => 'Import podcast',
+    'all_imports' => 'Podcast imports',
     'new_episode' => 'New Episode',
     'view' => 'View podcast',
     'edit' => 'Edit podcast',
@@ -25,6 +26,8 @@ return [
     'latest_episodes' => 'Latest episodes',
     'see_all_episodes' => 'See all episodes',
     'draft' => 'Draft',
+    'sync_feed' => 'Synchronize feed',
+    'sync_feed_hint' => 'Import this podcast\'s latest episodes',
     'messages' => [
         'createSuccess' => 'Podcast successfully created!',
         'editSuccess' => 'Podcast has been successfully updated!',
@@ -48,7 +51,6 @@ return [
             other {# episodes were}
         } added to the podcast!',
         'podcastFeedUpToDate' => 'Podcast is already up to date.',
-        'podcastNotImported' => 'Podcast could not be updated as it was not imported.',
         'publishError' => 'This podcast is either already published or scheduled for publication.',
         'publishEditError' => 'This podcast is not scheduled for publication.',
         'publishCancelSuccess' => 'Podcast publication successfully cancelled!',
@@ -125,8 +127,6 @@ return [
         'new_feed_url' => 'New feed URL',
         'new_feed_url_hint' => 'Use this field when you move to another domain or podcast hosting platform. By default, the value is set to the current RSS URL if the podcast is imported.',
         'old_feed_url' => 'Old feed URL',
-        'update_feed' => 'Update feed',
-        'update_feed_tip' => 'Import this podcast\'s latest episodes',
         'partnership' => 'Partnership',
         'partner_id' => 'ID',
         'partner_link_url' => 'Link URL',
diff --git a/modules/Admin/Language/ru/PodcastNavigation.php b/modules/Admin/Language/ru/PodcastNavigation.php
index b4d7ddc0899ebd78178fd75359ca189cd947dc52..a5c98b6c67fdf8722c7229310b1deb1bdc3b0fa3 100644
--- a/modules/Admin/Language/ru/PodcastNavigation.php
+++ b/modules/Admin/Language/ru/PodcastNavigation.php
@@ -14,6 +14,7 @@ return [
     'podcast-view' => 'Home',
     'podcast-edit' => 'Edit podcast',
     'podcast-persons-manage' => 'Manage persons',
+    'podcast-imports' => 'Podcast imports',
     'episodes' => 'Episodes',
     'episode-list' => 'All episodes',
     'episode-create' => 'New episode',
diff --git a/modules/Admin/Language/sk/Breadcrumb.php b/modules/Admin/Language/sk/Breadcrumb.php
index f837c95b0413f4564a480343e34692e8b7e48076..c411de81227b35f10ec530b4830f72f2074091f5 100644
--- a/modules/Admin/Language/sk/Breadcrumb.php
+++ b/modules/Admin/Language/sk/Breadcrumb.php
@@ -36,7 +36,7 @@ return [
     'users' => 'používatelia',
     'my-account' => 'môj účet',
     'change-password' => 'zmeniť heslo',
-    'import' => 'import kanála',
+    'imports' => 'imports',
     'platforms' => 'platformy',
     'social' => 'sociálne siete',
     'funding' => 'financovanie',
diff --git a/modules/Admin/Language/sk/Navigation.php b/modules/Admin/Language/sk/Navigation.php
index b9ef4b1858f98fdae825a5ebf863dd607da904d9..cf13a993005d6c5525efb712c308301fe93cf9b7 100644
--- a/modules/Admin/Language/sk/Navigation.php
+++ b/modules/Admin/Language/sk/Navigation.php
@@ -17,7 +17,8 @@ return [
     'podcasts' => 'Podcasty',
     'podcast-list' => 'VÅ¡etky podcasty',
     'podcast-create' => 'Nový podcast',
-    'podcast-import' => 'Importovať podcast',
+    'all-podcast-imports' => 'All Podcast imports',
+    'podcast-imports-add' => 'Import a podcast',
     'persons' => 'Osobnosti',
     'person-list' => 'VÅ¡etky osobnosti',
     'person-create' => 'Nová osobnosť',
diff --git a/modules/Admin/Language/sk/Podcast.php b/modules/Admin/Language/sk/Podcast.php
index f1c27de20d406bb380d53cc5eba0c596dcbf0c6a..8708b54af4a86035fb2ec874c014af29503684c6 100644
--- a/modules/Admin/Language/sk/Podcast.php
+++ b/modules/Admin/Language/sk/Podcast.php
@@ -13,6 +13,7 @@ return [
     'no_podcast' => 'Žiadny podcast nenájdený!',
     'create' => 'Vytvoriť podcast',
     'import' => 'Importovať podcast',
+    'all_imports' => 'Podcast imports',
     'new_episode' => 'Nová časť',
     'view' => 'Zobraziť podcast',
     'edit' => 'Upraviť podcast',
@@ -25,6 +26,8 @@ return [
     'latest_episodes' => 'Posledné časti',
     'see_all_episodes' => 'Pozrieť všetky časti',
     'draft' => 'Koncept',
+    'sync_feed' => 'Synchronize feed',
+    'sync_feed_hint' => 'Import this podcast\'s latest episodes',
     'messages' => [
         'createSuccess' => 'Podcast úspešne vytvorený!',
         'editSuccess' => 'Podcast has been successfully updated!',
@@ -47,8 +50,7 @@ return [
             one {# episode was}
             other {# episodes were}
         } added to the podcast!',
-        'podcastFeedUpToDate' => 'Podcast is already up to date.',
-        'podcastNotImported' => 'Podcast could not be updated as it was not imported.',
+        'podcastFeedUpToDate' => 'Podcast už je aktualizovaný.',
         'publishError' => 'This podcast is either already published or scheduled for publication.',
         'publishEditError' => 'This podcast is not scheduled for publication.',
         'publishCancelSuccess' => 'Podcast publication successfully cancelled!',
@@ -57,7 +59,7 @@ return [
     'form' => [
         'identity_section_title' => 'Podcast identity',
         'identity_section_subtitle' => 'These fields allow you to get noticed.',
-        'cover' => 'Podcast cover',
+        'cover' => 'Obal podcastu',
         'cover_size_hint' => 'Cover must be squared and at least 1400px wide and tall.',
         'banner' => 'Podcast banner',
         'banner_size_hint' => 'Banner must have a 3:1 ratio and be at least 1500px wide.',
@@ -88,12 +90,12 @@ return [
             'clean' => 'Clean',
             'explicit' => 'Explicit',
         ],
-        'author_section_title' => 'Author',
-        'author_section_subtitle' => 'Who is managing the podcast?',
-        'owner_name' => 'Owner name',
+        'author_section_title' => 'Autor',
+        'author_section_subtitle' => 'Kto spravuje tento podcast?',
+        'owner_name' => 'Meno vlastníka',
         'owner_name_hint' =>
             'For administrative use only. Visible in the public RSS feed.',
-        'owner_email' => 'Owner email',
+        'owner_email' => 'Email vlastníka',
         'owner_email_hint' =>
             'Will be used by most platforms to verify the podcast ownership. Visible in the public RSS feed.',
         'publisher' => 'Vydavateľ',
@@ -125,8 +127,6 @@ return [
         'new_feed_url' => 'New feed URL',
         'new_feed_url_hint' => 'Use this field when you move to another domain or podcast hosting platform. By default, the value is set to the current RSS URL if the podcast is imported.',
         'old_feed_url' => 'Old feed URL',
-        'update_feed' => 'Update feed',
-        'update_feed_tip' => 'Import this podcast\'s latest episodes',
         'partnership' => 'Partnership',
         'partner_id' => 'ID',
         'partner_link_url' => 'URL adresa odkazu',
diff --git a/modules/Admin/Language/sk/PodcastNavigation.php b/modules/Admin/Language/sk/PodcastNavigation.php
index b4d7ddc0899ebd78178fd75359ca189cd947dc52..a5c98b6c67fdf8722c7229310b1deb1bdc3b0fa3 100644
--- a/modules/Admin/Language/sk/PodcastNavigation.php
+++ b/modules/Admin/Language/sk/PodcastNavigation.php
@@ -14,6 +14,7 @@ return [
     'podcast-view' => 'Home',
     'podcast-edit' => 'Edit podcast',
     'podcast-persons-manage' => 'Manage persons',
+    'podcast-imports' => 'Podcast imports',
     'episodes' => 'Episodes',
     'episode-list' => 'All episodes',
     'episode-create' => 'New episode',
diff --git a/modules/Admin/Language/sr_Latn/Breadcrumb.php b/modules/Admin/Language/sr_Latn/Breadcrumb.php
index f9e57ca1308aaaa6af6171a1a25339715f3593ac..678127b04a40d27d46652ea930da79673cb7e522 100644
--- a/modules/Admin/Language/sr_Latn/Breadcrumb.php
+++ b/modules/Admin/Language/sr_Latn/Breadcrumb.php
@@ -36,7 +36,7 @@ return [
     'users' => 'korisnici',
     'my-account' => 'moj nalog',
     'change-password' => 'promenite lozinku',
-    'import' => 'importuj feed',
+    'imports' => 'imports',
     'platforms' => 'platforme',
     'social' => 'društvene mreže',
     'funding' => 'finansiranje',
diff --git a/modules/Admin/Language/sr_Latn/Navigation.php b/modules/Admin/Language/sr_Latn/Navigation.php
index b23a798113077a0eb6bb0cd380a048c8e7a087de..0f790cf16757379832779a3533bba630b029a5da 100644
--- a/modules/Admin/Language/sr_Latn/Navigation.php
+++ b/modules/Admin/Language/sr_Latn/Navigation.php
@@ -17,7 +17,8 @@ return [
     'podcasts' => 'Podkasti',
     'podcast-list' => 'Svi podkasti',
     'podcast-create' => 'Novi podkast',
-    'podcast-import' => 'Uvezi podkast',
+    'all-podcast-imports' => 'All Podcast imports',
+    'podcast-imports-add' => 'Import a podcast',
     'persons' => 'Osobe',
     'person-list' => 'Sve osobe',
     'person-create' => 'Nova osoba',
diff --git a/modules/Admin/Language/sr_Latn/Podcast.php b/modules/Admin/Language/sr_Latn/Podcast.php
index 72c3b387b080d88e2a4472e1d53a1de8aa997549..d11c96fa08b42d831ca65a33a6b7c5f3a8146231 100644
--- a/modules/Admin/Language/sr_Latn/Podcast.php
+++ b/modules/Admin/Language/sr_Latn/Podcast.php
@@ -13,6 +13,7 @@ return [
     'no_podcast' => 'Nema pronađenih podkasta!',
     'create' => 'Napravi podkast',
     'import' => 'Uvezi podkast',
+    'all_imports' => 'Podcast imports',
     'new_episode' => 'Nova epizoda',
     'view' => 'Pogledaj epizodu',
     'edit' => 'Uredi podkast',
@@ -25,6 +26,8 @@ return [
     'latest_episodes' => 'Najnovije epizode',
     'see_all_episodes' => 'Prikaži sve epizode',
     'draft' => 'Nacrt',
+    'sync_feed' => 'Synchronize feed',
+    'sync_feed_hint' => 'Import this podcast\'s latest episodes',
     'messages' => [
         'createSuccess' => 'Podkast uspešno kreiran!',
         'editSuccess' => 'Podkast je uspešno ažuriran!',
@@ -48,7 +51,6 @@ return [
             other {# epizode su}
         } deo podkasta!',
         'podcastFeedUpToDate' => 'Podkast je već ažuriran.',
-        'podcastNotImported' => 'Podkast nije moguće ažurirati jer nije uvezen.',
         'publishError' => 'Ovaj podkast je ili već objavljen ili zakazan za objavu.',
         'publishEditError' => 'Ovaj podkast nije zakazan za objavu.',
         'publishCancelSuccess' => 'Objavljivanje podkasta je uspešno otkazano!',
@@ -125,8 +127,6 @@ return [
         'new_feed_url' => 'New feed URL',
         'new_feed_url_hint' => 'Use this field when you move to another domain or podcast hosting platform. By default, the value is set to the current RSS URL if the podcast is imported.',
         'old_feed_url' => 'Old feed URL',
-        'update_feed' => 'Update feed',
-        'update_feed_tip' => 'Import this podcast\'s latest episodes',
         'partnership' => 'Partnership',
         'partner_id' => 'ID',
         'partner_link_url' => 'URL adresa veze',
diff --git a/modules/Admin/Language/sr_Latn/PodcastNavigation.php b/modules/Admin/Language/sr_Latn/PodcastNavigation.php
index 491b6773b9308fb617a8fe3de065e5b6c8c29679..2cee80179b1e27f934fa3f324b9d9938d91e2213 100644
--- a/modules/Admin/Language/sr_Latn/PodcastNavigation.php
+++ b/modules/Admin/Language/sr_Latn/PodcastNavigation.php
@@ -14,6 +14,7 @@ return [
     'podcast-view' => 'Home',
     'podcast-edit' => 'Edit podcast',
     'podcast-persons-manage' => 'Manage persons',
+    'podcast-imports' => 'Podcast imports',
     'episodes' => 'Episodes',
     'episode-list' => 'All episodes',
     'episode-create' => 'New episode',
diff --git a/modules/Admin/Language/sv/Breadcrumb.php b/modules/Admin/Language/sv/Breadcrumb.php
index 7cc65c0bf8d410d09d67b39856c9928f8a506420..a2c8137881f7348dfc1aadffdf0b34af93499805 100644
--- a/modules/Admin/Language/sv/Breadcrumb.php
+++ b/modules/Admin/Language/sv/Breadcrumb.php
@@ -36,7 +36,7 @@ return [
     'users' => 'användare',
     'my-account' => 'mitt konto',
     'change-password' => 'ändra lösenord',
-    'import' => 'import av flöde',
+    'imports' => 'imports',
     'platforms' => 'plattformar',
     'social' => 'sociala nätverk',
     'funding' => 'finansiering',
diff --git a/modules/Admin/Language/sv/Navigation.php b/modules/Admin/Language/sv/Navigation.php
index ea1f6de5ae98214e01a79c76c62651db28e99572..783d31457f1ed17093f900943297f2fd4d373234 100644
--- a/modules/Admin/Language/sv/Navigation.php
+++ b/modules/Admin/Language/sv/Navigation.php
@@ -17,7 +17,8 @@ return [
     'podcasts' => 'Podcasts',
     'podcast-list' => 'Alla podcasts',
     'podcast-create' => 'Ny podcast',
-    'podcast-import' => 'Importera en podcast',
+    'all-podcast-imports' => 'All Podcast imports',
+    'podcast-imports-add' => 'Import a podcast',
     'persons' => 'Personer',
     'person-list' => 'Alla personer',
     'person-create' => 'Ny person',
diff --git a/modules/Admin/Language/sv/Podcast.php b/modules/Admin/Language/sv/Podcast.php
index 1daef524e65da97061824beaf52580d0d0208b43..fa2c50d1a7bbabd0e3eb009b7331fcd331dbae0d 100644
--- a/modules/Admin/Language/sv/Podcast.php
+++ b/modules/Admin/Language/sv/Podcast.php
@@ -13,6 +13,7 @@ return [
     'no_podcast' => 'Ingen podcast hittades!',
     'create' => 'Skapa podcast',
     'import' => 'Importera podcast',
+    'all_imports' => 'Podcast imports',
     'new_episode' => 'Nytt avsnitt',
     'view' => 'Visa podcast',
     'edit' => 'Redigera podcast',
@@ -25,6 +26,8 @@ return [
     'latest_episodes' => 'Senaste avsnitt',
     'see_all_episodes' => 'Se alla avsnitt',
     'draft' => 'Utkast',
+    'sync_feed' => 'Synchronize feed',
+    'sync_feed_hint' => 'Import this podcast\'s latest episodes',
     'messages' => [
         'createSuccess' => 'Podcast har skapats!',
         'editSuccess' => 'Podcasten har uppdaterats!',
@@ -48,7 +51,6 @@ return [
             other {# episoder var}
         } lades till i podcasten!',
         'podcastFeedUpToDate' => 'Podcasten är redan uppdaterad.',
-        'podcastNotImported' => 'Podcast kunde inte uppdateras eftersom den inte importerades.',
         'publishError' => 'Denna podcast är antingen redan publicerad eller schemalagd för publicering.',
         'publishEditError' => 'Denna podcast är inte schemalagd för publicering.',
         'publishCancelSuccess' => 'Podcast publicering avbröts!',
@@ -125,8 +127,6 @@ return [
         'new_feed_url' => 'Ny flödes-URL',
         'new_feed_url_hint' => 'Använd detta fält när du flyttar till en annan domän eller podcast webbhotell. Som standard är värdet inställt på nuvarande RSS-URL om podcasten importeras.',
         'old_feed_url' => 'Gammal flödes-URL',
-        'update_feed' => 'Uppdatera flöde',
-        'update_feed_tip' => 'Importera den här podcastens senaste avsnitt',
         'partnership' => 'Samarbete',
         'partner_id' => 'ID',
         'partner_link_url' => 'Länk url',
diff --git a/modules/Admin/Language/sv/PodcastNavigation.php b/modules/Admin/Language/sv/PodcastNavigation.php
index 6fe010c875a7e095cc4bf12dd8dea26cff610b5a..4774ba9ef42d301bbebdf41b0c8447dbbc990822 100644
--- a/modules/Admin/Language/sv/PodcastNavigation.php
+++ b/modules/Admin/Language/sv/PodcastNavigation.php
@@ -14,6 +14,7 @@ return [
     'podcast-view' => 'Hem',
     'podcast-edit' => 'Redigera podcast',
     'podcast-persons-manage' => 'Hantera personer',
+    'podcast-imports' => 'Podcast imports',
     'episodes' => 'Avsnitt',
     'episode-list' => 'Alla avsnitt',
     'episode-create' => 'Nytt avsnitt',
diff --git a/modules/Admin/Language/uk/Breadcrumb.php b/modules/Admin/Language/uk/Breadcrumb.php
index 558b90f76560802609ce10ed4e320521f494db53..ca6822629d0c311ca92359c4182ad8ce0ae2c86d 100644
--- a/modules/Admin/Language/uk/Breadcrumb.php
+++ b/modules/Admin/Language/uk/Breadcrumb.php
@@ -36,7 +36,7 @@ return [
     'users' => 'users',
     'my-account' => 'my account',
     'change-password' => 'change password',
-    'import' => 'feed import',
+    'imports' => 'imports',
     'platforms' => 'platforms',
     'social' => 'social networks',
     'funding' => 'funding',
diff --git a/modules/Admin/Language/uk/Navigation.php b/modules/Admin/Language/uk/Navigation.php
index 610f14345d427177b5bcbea0b56c1f56512b70ff..d0ddb4c46d3474076f5b24b7421acae0c60558d7 100644
--- a/modules/Admin/Language/uk/Navigation.php
+++ b/modules/Admin/Language/uk/Navigation.php
@@ -17,7 +17,8 @@ return [
     'podcasts' => 'Podcasts',
     'podcast-list' => 'All podcasts',
     'podcast-create' => 'New podcast',
-    'podcast-import' => 'Import a podcast',
+    'all-podcast-imports' => 'All Podcast imports',
+    'podcast-imports-add' => 'Import a podcast',
     'persons' => 'Persons',
     'person-list' => 'All persons',
     'person-create' => 'New person',
diff --git a/modules/Admin/Language/uk/Podcast.php b/modules/Admin/Language/uk/Podcast.php
index 2d46aff53156ca301dceb74443d75da60e0cd6e7..08768f1b91ff54f9153ce84d9ee17c33b96d567f 100644
--- a/modules/Admin/Language/uk/Podcast.php
+++ b/modules/Admin/Language/uk/Podcast.php
@@ -13,6 +13,7 @@ return [
     'no_podcast' => 'No podcast found!',
     'create' => 'Create podcast',
     'import' => 'Import podcast',
+    'all_imports' => 'Podcast imports',
     'new_episode' => 'New Episode',
     'view' => 'View podcast',
     'edit' => 'Edit podcast',
@@ -25,6 +26,8 @@ return [
     'latest_episodes' => 'Latest episodes',
     'see_all_episodes' => 'See all episodes',
     'draft' => 'Draft',
+    'sync_feed' => 'Synchronize feed',
+    'sync_feed_hint' => 'Import this podcast\'s latest episodes',
     'messages' => [
         'createSuccess' => 'Podcast successfully created!',
         'editSuccess' => 'Podcast has been successfully updated!',
@@ -48,7 +51,6 @@ return [
             other {# episodes were}
         } added to the podcast!',
         'podcastFeedUpToDate' => 'Podcast is already up to date.',
-        'podcastNotImported' => 'Podcast could not be updated as it was not imported.',
         'publishError' => 'This podcast is either already published or scheduled for publication.',
         'publishEditError' => 'This podcast is not scheduled for publication.',
         'publishCancelSuccess' => 'Podcast publication successfully cancelled!',
@@ -125,8 +127,6 @@ return [
         'new_feed_url' => 'New feed URL',
         'new_feed_url_hint' => 'Use this field when you move to another domain or podcast hosting platform. By default, the value is set to the current RSS URL if the podcast is imported.',
         'old_feed_url' => 'Old feed URL',
-        'update_feed' => 'Update feed',
-        'update_feed_tip' => 'Import this podcast\'s latest episodes',
         'partnership' => 'Partnership',
         'partner_id' => 'ID',
         'partner_link_url' => 'Link URL',
diff --git a/modules/Admin/Language/uk/PodcastNavigation.php b/modules/Admin/Language/uk/PodcastNavigation.php
index b4d7ddc0899ebd78178fd75359ca189cd947dc52..a5c98b6c67fdf8722c7229310b1deb1bdc3b0fa3 100644
--- a/modules/Admin/Language/uk/PodcastNavigation.php
+++ b/modules/Admin/Language/uk/PodcastNavigation.php
@@ -14,6 +14,7 @@ return [
     'podcast-view' => 'Home',
     'podcast-edit' => 'Edit podcast',
     'podcast-persons-manage' => 'Manage persons',
+    'podcast-imports' => 'Podcast imports',
     'episodes' => 'Episodes',
     'episode-list' => 'All episodes',
     'episode-create' => 'New episode',
diff --git a/modules/Admin/Language/zh-Hans/Breadcrumb.php b/modules/Admin/Language/zh-Hans/Breadcrumb.php
index b360c8b818a1873c41902ade040b4f5d0dca1945..8aef36b2df16cb78a534feb5da714cc726b5f557 100644
--- a/modules/Admin/Language/zh-Hans/Breadcrumb.php
+++ b/modules/Admin/Language/zh-Hans/Breadcrumb.php
@@ -36,7 +36,7 @@ return [
     'users' => '用户',
     'my-account' => '我的帐户',
     'change-password' => '修改密码',
-    'import' => '订阅源导入',
+    'imports' => 'imports',
     'platforms' => '平台',
     'social' => '社交网络',
     'funding' => '资金支持',
diff --git a/modules/Admin/Language/zh-Hans/Navigation.php b/modules/Admin/Language/zh-Hans/Navigation.php
index 52d57ac3eb0b2ba79c6e425cd7a868e4906c6ae9..401f08b38afe06193b160f98d99725f1758cfa8c 100644
--- a/modules/Admin/Language/zh-Hans/Navigation.php
+++ b/modules/Admin/Language/zh-Hans/Navigation.php
@@ -17,7 +17,8 @@ return [
     'podcasts' => '播客',
     'podcast-list' => '全部播客',
     'podcast-create' => '新播客',
-    'podcast-import' => '导入播客',
+    'all-podcast-imports' => 'All Podcast imports',
+    'podcast-imports-add' => 'Import a podcast',
     'persons' => '人员',
     'person-list' => '所有人',
     'person-create' => '新成员',
diff --git a/modules/Admin/Language/zh-Hans/Podcast.php b/modules/Admin/Language/zh-Hans/Podcast.php
index 01ef49e819800f0e2276fb56a00d6cfd9e98e94f..c442e66686e3c60d520e168bdba2eaea8b58bb5a 100644
--- a/modules/Admin/Language/zh-Hans/Podcast.php
+++ b/modules/Admin/Language/zh-Hans/Podcast.php
@@ -13,6 +13,7 @@ return [
     'no_podcast' => '没有找到播客!',
     'create' => '创建播客',
     'import' => '导入播客',
+    'all_imports' => 'Podcast imports',
     'new_episode' => '新剧集',
     'view' => '浏览博客',
     'edit' => '编辑播客',
@@ -25,6 +26,8 @@ return [
     'latest_episodes' => '最新剧集',
     'see_all_episodes' => '查看所有剧集',
     'draft' => '草稿',
+    'sync_feed' => 'Synchronize feed',
+    'sync_feed_hint' => 'Import this podcast\'s latest episodes',
     'messages' => [
         'createSuccess' => '播客创建成功!',
         'editSuccess' => '播客已更新!',
@@ -48,7 +51,6 @@ return [
             other {# 剧集}
         } 添加到播客!',
         'podcastFeedUpToDate' => '播客已经是最新状态。',
-        'podcastNotImported' => '播客无法更新,因为它没有被导入。',
         'publishError' => '此播客已经发布或计划发布。',
         'publishEditError' => '此播客未计划发布。',
         'publishCancelSuccess' => '取消播客发布!',
@@ -125,8 +127,6 @@ return [
         'new_feed_url' => '新订阅源网址',
         'new_feed_url_hint' => '当你迁移到另一个域或播客托管平台时,请使用此字段。 默认情况下,播客导入时,该值为当前的订阅源网址。',
         'old_feed_url' => '旧订阅源网址',
-        'update_feed' => '更新订阅源',
-        'update_feed_tip' => '导入此播客的最新剧集',
         'partnership' => '合作伙伴',
         'partner_id' => 'ID',
         'partner_link_url' => '链接网址',
diff --git a/modules/Admin/Language/zh-Hans/PodcastNavigation.php b/modules/Admin/Language/zh-Hans/PodcastNavigation.php
index 75564b1326f913452c38e32bd22462f33bd7172d..656f48f890b483caff0572a701add3e64800a1d2 100644
--- a/modules/Admin/Language/zh-Hans/PodcastNavigation.php
+++ b/modules/Admin/Language/zh-Hans/PodcastNavigation.php
@@ -14,6 +14,7 @@ return [
     'podcast-view' => '主页',
     'podcast-edit' => '编辑播客',
     'podcast-persons-manage' => '管理人员',
+    'podcast-imports' => 'Podcast imports',
     'episodes' => '剧集',
     'episode-list' => '所有剧集',
     'episode-create' => '新剧集',
diff --git a/modules/Auth/Language/gd/Auth.php b/modules/Auth/Language/gd/Auth.php
index a47932e31797e06003e4d4cb94e6e824cb053a12..5350be4dfbc0ffc24096b49efaec2853515fef40 100644
--- a/modules/Auth/Language/gd/Auth.php
+++ b/modules/Auth/Language/gd/Auth.php
@@ -11,84 +11,84 @@ declare(strict_types=1);
 return [
     'instance_groups' => [
         'owner' => [
-            'title' => 'Instance Owner',
-            'description' => 'The Castopod owner.',
+            'title' => 'Sealbhadair an ionstans',
+            'description' => 'Cò leis a tha an Castopod seo.',
         ],
         'superadmin' => [
-            'title' => 'Super admin',
-            'description' => 'Has complete control over Castopod.',
+            'title' => 'Sàr-rianaire',
+            'description' => 'Smachd gu lèir air Castopod.',
         ],
         'manager' => [
-            'title' => 'Manager',
-            'description' => 'Manages Castopod\'s content.',
+            'title' => 'Manaidsear',
+            'description' => 'Stiùireadh susbaint Chastopod.',
         ],
         'podcaster' => [
-            'title' => 'Podcaster',
-            'description' => 'General users of Castopod.',
+            'title' => 'Pod-chraoladair',
+            'description' => 'Luchd-cleachdaidh coitcheann Chastopod.',
         ],
     ],
     'instance_permissions' => [
-        'admin.access' => 'Can access the Castopod admin area.',
-        'admin.settings' => 'Can access the Castopod settings.',
-        'users.manage' => 'Can manage Castopod users.',
-        'persons.manage' => 'Can manage persons.',
-        'pages.manage' => 'Can manage pages.',
-        'podcasts.view' => 'Can view all podcasts.',
-        'podcasts.create' => 'Can create new podcasts.',
-        'podcasts.import' => 'Can import podcasts.',
-        'fediverse.manage-blocks' => 'Can block fediverse actors/domains from interacting with Castopod.',
+        'admin.access' => '’S urrainn dhaibh raon rianachd Chastopod inntrigeadh.',
+        'admin.settings' => '’S urrainn dhaibh roghainnean Chastopod inntrigeadh.',
+        'users.manage' => '’S urrainn dhaibh luchdc-leachdaidh Chastopod a stiùireadh.',
+        'persons.manage' => '’S urrainn dhaibh daoine a stiùireadh.',
+        'pages.manage' => '’S urrainn dhaibh duilleagan a stiùireadh.',
+        'podcasts.view' => 'Chì iad a h-uile pod-chraoladh.',
+        'podcasts.create' => '’S urrainn dhaibh pod-chraolaidhean ùra a chruthachadh.',
+        'podcasts.import' => '’S urrainn dhaibh pod-chraolaidhean ion-phortadh.',
+        'fediverse.manage-blocks' => '’S urrainn dhaibh actairean/àrainnean a cho-shaoghail a bhacadh o eadar-ghabhail le Castopod.',
     ],
     'podcast_groups' => [
         'owner' => [
-            'title' => 'Podcast Owner',
-            'description' => 'The podcast owner.',
+            'title' => 'Seilbheadair a’ phod-chraolaidh',
+            'description' => 'Cò leis a tha am pod-chraoladh.',
         ],
         'admin' => [
-            'title' => 'Admin',
-            'description' => 'Has complete control of podcast #{id}.',
+            'title' => 'Rianaire',
+            'description' => 'Smachd gu lèir air air a’ phod-chraoladh #{id}.',
         ],
         'editor' => [
-            'title' => 'Editor',
-            'description' => 'Manages content and publications of podcast #{id}.',
+            'title' => 'Deasaiche',
+            'description' => 'A’ stiùireadh susbaint is foillseachaidhean a’ phod-chraoladh #{id}.',
         ],
         'author' => [
-            'title' => 'Author',
-            'description' => 'Manages content of podcast #{id} but cannot publish them.',
+            'title' => 'Ùghdar',
+            'description' => 'A’ stiùireadh susbaint a’ phod-chraolaidh #{id} ach gun chomas foillseachaidh.',
         ],
         'guest' => [
-            'title' => 'Guest',
-            'description' => 'General contributor of the podcast #{id}.',
+            'title' => 'Aoigh',
+            'description' => 'Neach-cuideachaidh a’ phod-chraolaidh #{id}.',
         ],
     ],
     'podcast_permissions' => [
-        'view' => 'Can view dashboard and analytics of podcast #{id}.',
-        'edit' => 'Can edit podcast #{id}.',
-        'delete' => 'Can delete podcast #{id}.',
-        'manage-import' => 'Can synchronize imported podcast #{id}.',
-        'manage-persons' => 'Can manage subscriptions of podcast #{id}.',
-        'manage-subscriptions' => 'Can manage subscriptions of podcast #{id}.',
-        'manage-contributors' => 'Can manage contributors of podcast #{id}.',
-        'manage-platforms' => 'Can set/remove platform links of podcast #{id}.',
-        'manage-publications' => 'Can publish podcast #{id}.',
-        'manage-notifications' => 'Can view and mark notifications as read for podcast #{id}.',
-        'interact-as' => 'Can interact as the podcast #{id} to favourite, share or reply to posts.',
-        'episodes.view' => 'Can view dashboards and analytics of podcast #{id}\'s episodes.',
-        'episodes.create' => 'Can create episodes for podcast #{id}.',
-        'episodes.edit' => 'Can edit episodes of podcast #{id}.',
-        'episodes.delete' => 'Can delete episodes of podcast #{id}.',
-        'episodes.manage-persons' => 'Can manage episode persons of podcast #{id}.',
-        'episodes.manage-clips' => 'Can manage video clips or soundbites of podcast #{id}.',
-        'episodes.manage-publications' => 'Can publish/unpublish episodes and posts of podcast #{id}.',
-        'episodes.manage-comments' => 'Can create/remove episode comments of podcast #{id}.',
+        'view' => 'Cead an deas-bhòrd agus anailiseachd a’ phod-chraolaidh #{id} a shealltainn.',
+        'edit' => '’S urrainn dhaibh am pod-chraoladh #{id} a dheasachadh.',
+        'delete' => '’S urrainn dhaibh am pod-chraoladh #{id} a sguabadh às.',
+        'manage-import' => '’S urrainn dhaibh am pod-chraoladh #{id} air ion-phortadh a shioncronachadh.',
+        'manage-persons' => '’S urrainn dhaibh na fo-sgrìobhaidhean air a’ phod-chraoladh #{id} a stiùireadh.',
+        'manage-subscriptions' => '’S urrainn dhaibh na fo-sgrìobhaidhean air a’ phod-chraoladh #{id} a stiùireadh.',
+        'manage-contributors' => '’S urrainn dhaibh an luchd-cuideachaidh aig a’ phod-chraoladh #{id} a stiùireadh.',
+        'manage-platforms' => '’S urrainn dhaibh ceanglaichean-ùrlair a’ phod-chraolaidh #{id} a shuidheachadh/a thoirt air falbh.',
+        'manage-publications' => '’S urrainn dhaibh am pod-chraoladh #{id} fhoillseachadh.',
+        'manage-notifications' => 'Chì iad brathan a’ phod-chraolaidh #{id} agus ’s urrainn dhaibh comharra a chur gun deach an leughadh.',
+        'interact-as' => '’S urrainn dhaibh eadar-ghabhail ’na phod-chraoladh #{id} airson annsachdan, co-roinneadh is freagairtean do phostaichean.',
+        'episodes.view' => 'Chì iad deas-bhùird is anailiseachd do dh’eapasodan a’ phod-chraolaidh #{id}.',
+        'episodes.create' => '’S urrainn dhaibh eapasodan a chruthachadh dhan phod-chraoladh #{id}.',
+        'episodes.edit' => '’S urrainn dhaibh eapasodan a’ phod-chraolaidh #{id} a dheasachadh.',
+        'episodes.delete' => '’S urrainn dhaibh eapasodan a’ phod-chraolaidh #{id} a sguabadh às.',
+        'episodes.manage-persons' => '’S urrainn dhaibh daoine nan eapasodan aig a’ phod-chraoladh #{id} a stiùireadh.',
+        'episodes.manage-clips' => '’S urrainn dhaibh cliopaichean video no blasan-fuaime aig a’ phod-chraoladh #{id} a stiùireadh.',
+        'episodes.manage-publications' => '’S urrainn dhaibh eapasodan is postaichean a’ phod-chraolaidh #{id} fhoillseachadh/neo-fhoillseachadh.',
+        'episodes.manage-comments' => '’S urrainn dhaibh beachdan air eapasod a’ phod-chraolaidh #{id} a chruthachadh/a thoirt air falbh.',
     ],
 
     // missing keys
-    'code' => 'Your 6-digit code',
+    'code' => 'An còd 6-àireamhach agad',
 
-    'notEnoughPrivilege' => 'You do not have sufficient permissions to access that page.',
-    'set_password' => 'Set your password',
+    'notEnoughPrivilege' => 'Chan fhoghainn an cead agad gus an duilleag sin inntrigeadh.',
+    'set_password' => 'Suidhich am facal-faire agad',
 
     // Welcome email
-    'welcomeSubject' => 'You\'ve been invited to {siteName}',
-    'emailWelcomeMailBody' => 'An account was created for you on {domain}, click on the login link below to set your password. The link is valid for {numberOfHours} hours after this email was sent.',
+    'welcomeSubject' => 'Fhuair thu cuireadh gu {siteName}',
+    'emailWelcomeMailBody' => 'Chaidh cunntas a chruthachadh dhut air {domain}, briog air ceangal a’ chlàraidh a-steach gu h-ìosal airson am facal-faire agad a shuidheachadh. Bidh an ceangal dligheach fad {numberOfHours} uair a thìde às dèidh cur a’ phuist-d seo.',
 ];
diff --git a/modules/Auth/Language/gd/Contributor.php b/modules/Auth/Language/gd/Contributor.php
index c70badc0a12e55a270b55c3450314d06e6c328c8..a6154a55995c1f06cb64e723d8cf7fd164e9966d 100644
--- a/modules/Auth/Language/gd/Contributor.php
+++ b/modules/Auth/Language/gd/Contributor.php
@@ -9,39 +9,39 @@ declare(strict_types=1);
  */
 
 return [
-    'podcast_contributors' => 'Podcast contributors',
-    'view' => "{username}'s contribution to {podcastTitle}",
-    'add' => 'Add contributor',
-    'add_contributor' => 'Add a contributor for {0}',
-    'edit_role' => 'Update role for {0}',
-    'edit' => 'Edit',
-    'remove' => 'Remove',
+    'podcast_contributors' => 'Luchd-cuideachaidh a’ phod-chraolaidh',
+    'view' => "Na chuir {username} ri {podcastTitle}",
+    'add' => 'Cuir neach-cuideachaidh ris',
+    'add_contributor' => 'Cuir neach-cuideachaidh ris airson {0}',
+    'edit_role' => 'Ùraich an dreuchd airson {0}',
+    'edit' => 'Deasaich',
+    'remove' => 'Thoir air falbh',
     'list' => [
-        'username' => 'Username',
-        'role' => 'Role',
+        'username' => 'Ainm-cleachdaiche',
+        'role' => 'Dreuchd',
     ],
     'form' => [
-        'user' => 'User',
-        'user_placeholder' => 'Select a user…',
-        'role' => 'Role',
-        'role_placeholder' => 'Select its role…',
-        'submit_add' => 'Add contributor',
-        'submit_edit' => 'Update role',
+        'user' => 'Cleachdaiche',
+        'user_placeholder' => 'Tagh cleachdaiche…',
+        'role' => 'Dreuchd',
+        'role_placeholder' => 'Tagh dreuchd dhaibh…',
+        'submit_add' => 'Cuir neach-cuideachaidh ris',
+        'submit_edit' => 'Ùraich an dreuchd',
     ],
     'delete_form' => [
-        'title' => 'Remove {contributor}',
+        'title' => 'Thoir {contributor} air falbh',
         'disclaimer' =>
-            'You are about to remove {contributor} from contributors. They will not be able to access "{podcastTitle}" anymore.',
-        'understand' => 'I understand, I want to remove {contributor} from "{podcastTitle}"',
-        'submit' => 'Remove',
+            'Tha thu an impis {contributor} a toirt air falbh on luchd-cuideachaidh. Chan urrainn dhaibh “{podcastTitle}” inntrigeadh tuilleadh an uairsin.',
+        'understand' => 'Tha mi agaibh, tha mi airson {contributor} a thoirt air falbh o “{podcastTitle}”',
+        'submit' => 'Thoir air falbh',
     ],
     'messages' => [
-        'editSuccess' => 'Role successfully changed!',
-        'editOwnerError' => "You can't edit the podcast owner!",
-        'removeOwnerError' => "You can't remove the podcast owner!",
+        'editSuccess' => 'Chaidh an dreuchd atharrachadh!',
+        'editOwnerError' => "Chan urrainn dhut sealbhadair a’ phod-chraolaidh a dheasachadh!",
+        'removeOwnerError' => "Chan urrainn dhut sealbhadair a’ phod-chraolaidh a thoirt air falbh!",
         'removeSuccess' =>
-            'You have successfully removed {username} from {podcastTitle}',
+            'Thug thu {username} air falbh o {podcastTitle}',
         'alreadyAddedError' =>
-            "The contributor you're trying to add has already been added!",
+            "Chaidh an neach-cuideachaidh a tha thu airson cur ris a chur ris mu thràth!",
     ],
 ];
diff --git a/modules/Auth/Language/gd/MyAccount.php b/modules/Auth/Language/gd/MyAccount.php
index 6ebbb30ef70a5e3e86a9bab867f7c732ce79db26..1a9f8fe14fbd2a38af82632c3f7444372255c5ec 100644
--- a/modules/Auth/Language/gd/MyAccount.php
+++ b/modules/Auth/Language/gd/MyAccount.php
@@ -9,10 +9,10 @@ declare(strict_types=1);
  */
 
 return [
-    'info' => 'My account info',
-    'changePassword' => 'Change my password',
+    'info' => 'Fiosrachadh a’ chunntais agam',
+    'changePassword' => 'Atharraich am facal-faire agam',
     'messages' => [
-        'wrongPasswordError' => "You've entered the wrong password, try again.",
-        'passwordChangeSuccess' => 'Password has been successfully changed!',
+        'wrongPasswordError' => "Chuir thu a-steach am facal-faire ceàrr, feuch ris a-rithist.",
+        'passwordChangeSuccess' => 'Chaidh am facal-faire atharrachadh!',
     ],
 ];
diff --git a/modules/Auth/Language/gd/User.php b/modules/Auth/Language/gd/User.php
index e7908f5b9c2d120132fcb8671295b46af92a6551..33a1d51380b4a0f664d55460abd0fbb72a104332 100644
--- a/modules/Auth/Language/gd/User.php
+++ b/modules/Auth/Language/gd/User.php
@@ -9,52 +9,52 @@ declare(strict_types=1);
  */
 
 return [
-    'edit_role' => "Edit {username}'s role",
-    'ban' => 'Ban',
-    'unban' => 'Unban',
-    'delete' => 'Delete',
-    'create' => 'New user',
-    'view' => "{username}'s info",
-    'all_users' => 'All users',
+    'edit_role' => "Deasaich an dreuchd aig {username}",
+    'ban' => 'Toirmisg',
+    'unban' => 'Dì-thoirmisg',
+    'delete' => 'Sguab às',
+    'create' => 'Cleachdaiche ùr',
+    'view' => "Am fiosrachadh aig {username}",
+    'all_users' => 'A h-uile cleachdaiche',
     'list' => [
-        'user' => 'User',
-        'role' => 'Role',
-        'banned' => 'Banned?',
+        'user' => 'Cleachdaiche',
+        'role' => 'Dreuchd',
+        'banned' => 'Air a thoirmeasg?',
     ],
     'form' => [
-        'email' => 'Email',
-        'username' => 'Username',
-        'password' => 'Password',
-        'new_password' => 'New Password',
-        'role' => 'Role',
-        'roles' => 'Roles',
-        'permissions' => 'Permissions',
-        'submit_create' => 'Create user',
-        'submit_edit' => 'Save',
-        'submit_password_change' => 'Change!',
+        'email' => 'Post-d',
+        'username' => 'Ainm-cleachdaiche',
+        'password' => 'Facal-faire',
+        'new_password' => 'Am facal-faire ùr',
+        'role' => 'Dreuchd',
+        'roles' => 'Dreuchdan',
+        'permissions' => 'Ceadan',
+        'submit_create' => 'Cruthaich cleachdaiche',
+        'submit_edit' => 'Sàbhail',
+        'submit_password_change' => 'Atharraich!',
     ],
     'delete_form' => [
-        'title' => 'Delete {user}',
+        'title' => 'Sguab às {user}',
         'disclaimer' =>
-            "You are about to delete {user} permanently. They will not be able to access the admin area anymore.",
-        'understand' => 'I understand, I want to delete {user} permanently',
-        'submit' => 'Delete',
+            "Tha thu an impis {user} a sguabadh às gu buan. Chan urrainn dhaibh raon na rianachd inntrigeadh tuilleadh an uairsin.",
+        'understand' => 'Tha mi agaibh, tha mi airson {user} a sguabadh às gu buan',
+        'submit' => 'Sguab às',
     ],
     'messages' => [
         'createSuccess' =>
-            'User created successfully! {username} will be prompted with a password reset upon first authentication.',
+            'Chaidh an cleachdaiche a chruthachadh! Chaidh post-d fàilteachaidh a chur gu {username} le ceangal clàraidh a-steach, thèid iarraidh orra gun ath-shuidhich iad am facal-faire aca a’ chiad turas a nì iad dearbhadh.',
         'roleEditSuccess' =>
-            "{username}'s roles have been successfully updated.",
-        'banSuccess' => '{username} has been banned.',
-        'unbanSuccess' => '{username} has been unbanned.',
+            "Chaidh na dreuchdan aig {username} ùrachadh.",
+        'banSuccess' => 'Chaidh {username} a thoirmeasg.',
+        'unbanSuccess' => 'Chaidh {username} a dhì-thoirmeasg.',
         'editOwnerError' =>
-            '{username} is the instance owner, you cannot edit its roles.',
+            'Is {username} sealbhadair an ionstans, na bean ris an t-sealbhadair…',
         'banSuperAdminError' =>
-            '{username} is a superadmin, one does not simply ban a superadmin…',
+            'Tha {username} ’na shàr-rianaire, na toirmisg sàr-rianaire…',
         'deleteOwnerError' =>
-            '{username} is the instance owner, one does not simply delete the owner…',
+            'Is {username} sealbhadair an ionstans, na sguab às an sealbhadair…',
         'deleteSuperAdminError' =>
-            '{username} is a superadmin, one does not simply delete a superadmin…',
-        'deleteSuccess' => '{username} has been deleted.',
+            'Tha {username} ’na shàr-rianaire, na sguab às sàr-rianaire…',
+        'deleteSuccess' => 'Chaidh {username} a sguabadh às.',
     ],
 ];
diff --git a/modules/Install/Language/gd/Install.php b/modules/Install/Language/gd/Install.php
index 1f66ef118fd188c73e37e5009c5cdd22c7fdd3f2..2c39010fb6549064edc4768db625ccd73a13f284 100644
--- a/modules/Install/Language/gd/Install.php
+++ b/modules/Install/Language/gd/Install.php
@@ -9,54 +9,54 @@ declare(strict_types=1);
  */
 
 return [
-    'title' => 'Castopod installer',
-    'manual_config' => 'Manual configuration',
+    'title' => 'Inneal-stàlaidh Chastopod',
+    'manual_config' => 'Rèiteachadh a làimh',
     'manual_config_subtitle' =>
-        'Create a `.env` file with your settings and refresh the page to continue installation.',
+        'Cruthaich faidhle `.env` leis na roghainnean agad agus ath-nuadhaich an duilleag a leantainn air adhart leis an stàladh.',
     'form' => [
-        'instance_config' => 'Instance configuration',
-        'hostname' => 'Hostname',
-        'media_base_url' => 'Media base URL',
+        'instance_config' => 'Rèiteachadh an ionstans',
+        'hostname' => 'Ainm an òstair',
+        'media_base_url' => 'URL bunaiteach nam meadhanan',
         'media_base_url_hint' =>
-            'If you use a CDN and/or an external analytics service, you may set them here.',
-        'admin_gateway' => 'Admin gateway',
+            'Ma tha thu a’ cleachdadh CDN agus/no seirbheis anailiseachd air an taobh a-muigh, faodaidh tu an suidheachadh an-seo.',
+        'admin_gateway' => 'Balach na rianachd',
         'admin_gateway_hint' =>
-            'The route to access the admin area (eg. https://example.com/cp-admin). It is set by default as cp-admin, we recommend you change it for security reasons.',
-        'auth_gateway' => 'Auth gateway',
+            'Seo an t-slighe airson raon na rianachd inntrigeadh (m.e. https://ball-eisimpleir.com/cp-admin). Thèid seo a shuidheachadh air cp-admin a ghnàth ach mholamaid gun atharraich thu seo air adhbhar tèarainteachd.',
+        'auth_gateway' => 'Bealach an dearbhaidh',
         'auth_gateway_hint' =>
-            'The route to access the authentication pages (eg. https://example.com/cp-auth). It is set by default as cp-auth, we recommend you change it for security reasons.',
-        'database_config' => 'Database configuration',
+            'Seo an t-slighe airson duilleagan an dearbhaidh inntrigeadh (m.e. https://ball-eisimpleir.com/cp-auth). Thèid seo a shuidheachadh air cp-auth a ghnàth ach mholamaid gun atharraich thu seo air adhbhar tèarainteachd.',
+        'database_config' => 'Rèiteachadh an stòir-dhàta',
         'database_config_hint' =>
-            'Castopod needs to connect to your MySQL (or MariaDB) database. If you do not have these required info, please contact your server administrator.',
-        'db_hostname' => 'Database hostname',
-        'db_name' => 'Database name',
-        'db_username' => 'Database username',
-        'db_password' => 'Database password',
-        'db_prefix' => 'Database prefix',
+            'Feumaidh Castopod ceangal ris an stòr-dàta MySQL (no MariaDB) agad. Mur eil am fiosrachadh riatanach seo agad, cuir fios tu rianaire an fhrithealaiche agad.',
+        'db_hostname' => 'Ainm òstair an stòir-dhàta',
+        'db_name' => 'Ainm an stòir-dhàta',
+        'db_username' => 'Ainm-cleachdaiche an stòir-dhàta',
+        'db_password' => 'Facal-faire an stòir-dhàta',
+        'db_prefix' => 'Ro-leasachan an stòir-dhàta',
         'db_prefix_hint' =>
-            "The prefix of the Castopod table names, leave as is if you don't know what it means.",
-        'cache_config' => 'Cache configuration',
+            "Seo ro-leasachan do dh’ainmean clàran Chastopod, fàg e mar a tha e mur eil thu a’ tuigsinn dè as ciall dha.",
+        'cache_config' => 'Rèiteachadh an tasgadain',
         'cache_config_hint' =>
-            'Choose your preferred cache handler. Leave it as the default value if you have no clue what it means.',
-        'cache_handler' => 'Cache handler',
+            'Tagh an làimhsichear as fheàrr leat dhan tasgadan. Fàg air an luach bhunaiteach e mur eil thu a’ tuigsinn dè as ciall dha.',
+        'cache_handler' => 'Làimhsichear an tasgadain',
         'cacheHandlerOptions' => [
-            'file' => 'File',
+            'file' => 'Faidhle',
             'redis' => 'Redis',
             'predis' => 'Predis',
         ],
-        'next' => 'Next',
-        'submit' => 'Finish install',
-        'create_superadmin' => 'Create your superadmin account',
-        'email' => 'Email',
-        'username' => 'Username',
-        'password' => 'Password',
+        'next' => 'Air adhart',
+        'submit' => 'Cuir crìoch air an stàladh',
+        'create_superadmin' => 'Cruthaich an cunntas sàr-rianaire agad',
+        'email' => 'Post-d',
+        'username' => 'Ainm-cleachdaiche',
+        'password' => 'Facal-faire',
     ],
     'messages' => [
         'createSuperAdminSuccess' =>
-            'Your superadmin account has been created successfully. Login to start podcasting!',
+            'Chaidh an cunntas sàr-rianaire agad a chruthachadh. Clàraich a-steach a thòiseachadh leis a’ phod-chraoladh!',
         'databaseConnectError' =>
-            'Castopod could not connect to your database. Edit your database configuration and try again.',
+            'Cha b’ urrainn do Chastopod ceangal ris an stòr-dàta agad. Deasaich rèiteachadh an stòir-dhàta agad is feuch ris a-rithist.',
         'writeError' =>
-            "Couldn't create/write the `.env` file. You must create it manually by following the `.env.example` file template in the Castopod package.",
+            "Cha b’ urrainn dhuinn am faidhle `.env` a chruthachadh/sgrìobhadh thuige. Feumaidh tu a chruthachadh a làimh a leantainn ris an fhaidhle-teamplaid `.env.example` sa phacaid Castopod.",
     ],
 ];
diff --git a/modules/PodcastImport/Language/ar/PodcastImport.php b/modules/PodcastImport/Language/ar/PodcastImport.php
index cccbaa65a63217f202a4177ce8a20a89235e5a47..a89fe03b2162852aea516840d7f1976b80c36e30 100644
--- a/modules/PodcastImport/Language/ar/PodcastImport.php
+++ b/modules/PodcastImport/Language/ar/PodcastImport.php
@@ -9,29 +9,52 @@ declare(strict_types=1);
  */
 
 return [
-    'warning' =>
-        'This procedure may take a long time. As the current version does not show any progress while it runs, you will not see anything updated until it is done. In case of timeout error, increase `max_execution_time` value.',
+    'banner' => [
+        'disclaimer' => 'Importing',
+        'text' => '{podcastTitle} is currently being imported.',
+        'cta' => 'See import status',
+    ],
     'old_podcast_section_title' => 'The podcast to import',
-    'old_podcast_section_subtitle' =>
+    'old_podcast_legal_disclaimer_title' => 'Legal disclaimer',
+    'old_podcast_legal_disclaimer' =>
         'Make sure you own the rights for this podcast before importing it. Copying and broadcasting a podcast without the proper rights is piracy and is liable to prosecution.',
     'imported_feed_url' => 'Feed URL',
     'imported_feed_url_hint' => 'The feed must be in xml or rss format.',
     'new_podcast_section_title' => 'The new podcast',
-    'advanced_params_section_title' => 'Advanced parameters',
-    'advanced_params_section_subtitle' =>
-        'Keep the default values if you have no idea of what the fields are for.',
-    'slug_field' => 'Field to be used to calculate episode slug',
-    'description_field' =>
-        'Source field used for episode description / show notes',
-    'force_renumber' => 'Force episodes renumbering',
-    'force_renumber_hint' =>
-        'Use this if your podcast does not have episode numbers but wish to set them during import.',
-    'season_number' => 'رقم الموسم',
-    'season_number_hint' =>
-        'Use this if your podcast does not have a season number but wish to set one during import. Leave blank otherwise.',
-    'max_episodes' => 'Maximum number of episodes to import',
-    'max_episodes_hint' => 'Leave blank to import all episodes',
     'lock_import' =>
-        'This feed is protected. You cannot import it. If you are the owner, unprotect it on the origin platform.',
-    'submit' => 'Import podcast',
+        'This feed is protected. You cannot import it. If you are the owner, unlock it on the origin platform.',
+    'submit' => 'Add import to queue',
+    'queue' => [
+        'status' => [
+            'label' => 'Status',
+            'queued' => 'queued',
+            'queued_hint' => 'Import task is awaiting to be processed.',
+            'canceled' => 'canceled',
+            'canceled_hint' => 'Import task was canceled.',
+            'running' => 'running',
+            'running_hint' => 'Import task is being processed.',
+            'failed' => 'failed',
+            'failed_hint' => 'Import task could not complete: script failure.',
+            'passed' => 'passed',
+            'passed_hint' => 'Import task was completed successfully!',
+        ],
+        'feed' => 'Feed',
+        'duration' => 'Import duration',
+        'imported_episodes' => 'Imported episodes',
+        'imported_episodes_hint' => '{newlyImportedCount} newly imported, {alreadyImportedCount} already imported.',
+        'actions' => [
+            'cancel' => 'Cancel',
+            'retry' => 'Retry',
+            'delete' => 'Delete',
+        ],
+    ],
+    'messages' => [
+        'canceled' => 'Import task has been successfully canceled!',
+        'alreadyRunning' => 'Import Task is already running. You may cancel it before retrying.',
+        'retried' => 'Import task has been queued, it will be retried shortly!',
+        'deleted' => 'Import task has been successfully deleted!',
+        'importTaskQueued' => 'An new task has been queued, import will start shortly!',
+        'podcastNotImported' => 'Podcast cannot be synched as it was not imported.',
+        'syncTaskQueued' => 'A new import task has been queued, synchronization will start shortly!',
+    ],
 ];
diff --git a/modules/PodcastImport/Language/br/PodcastImport.php b/modules/PodcastImport/Language/br/PodcastImport.php
index 7ba8d90984be90772b9ec65a1389a8b58a58ea45..a89fe03b2162852aea516840d7f1976b80c36e30 100644
--- a/modules/PodcastImport/Language/br/PodcastImport.php
+++ b/modules/PodcastImport/Language/br/PodcastImport.php
@@ -9,29 +9,52 @@ declare(strict_types=1);
  */
 
 return [
-    'warning' =>
-        'This procedure may take a long time. As the current version does not show any progress while it runs, you will not see anything updated until it is done. In case of timeout error, increase `max_execution_time` value.',
+    'banner' => [
+        'disclaimer' => 'Importing',
+        'text' => '{podcastTitle} is currently being imported.',
+        'cta' => 'See import status',
+    ],
     'old_podcast_section_title' => 'The podcast to import',
-    'old_podcast_section_subtitle' =>
+    'old_podcast_legal_disclaimer_title' => 'Legal disclaimer',
+    'old_podcast_legal_disclaimer' =>
         'Make sure you own the rights for this podcast before importing it. Copying and broadcasting a podcast without the proper rights is piracy and is liable to prosecution.',
-    'imported_feed_url' => 'URL al lanv',
+    'imported_feed_url' => 'Feed URL',
     'imported_feed_url_hint' => 'The feed must be in xml or rss format.',
-    'new_podcast_section_title' => 'Ar podkast nevez',
-    'advanced_params_section_title' => 'Arventennoù kempleshoc\'h',
-    'advanced_params_section_subtitle' =>
-        'Keep the default values if you have no idea of what the fields are for.',
-    'slug_field' => 'Field to be used to calculate episode slug',
-    'description_field' =>
-        'Source field used for episode description / show notes',
-    'force_renumber' => 'Force episodes renumbering',
-    'force_renumber_hint' =>
-        'Use this if your podcast does not have episode numbers but wish to set them during import.',
-    'season_number' => 'Niverenn ar c\'houlzad',
-    'season_number_hint' =>
-        'Use this if your podcast does not have a season number but wish to set one during import. Leave blank otherwise.',
-    'max_episodes' => 'Maximum number of episodes to import',
-    'max_episodes_hint' => 'Leave blank to import all episodes',
+    'new_podcast_section_title' => 'The new podcast',
     'lock_import' =>
-        'This feed is protected. You cannot import it. If you are the owner, unprotect it on the origin platform.',
-    'submit' => 'Enporzhiañ ar podkast',
+        'This feed is protected. You cannot import it. If you are the owner, unlock it on the origin platform.',
+    'submit' => 'Add import to queue',
+    'queue' => [
+        'status' => [
+            'label' => 'Status',
+            'queued' => 'queued',
+            'queued_hint' => 'Import task is awaiting to be processed.',
+            'canceled' => 'canceled',
+            'canceled_hint' => 'Import task was canceled.',
+            'running' => 'running',
+            'running_hint' => 'Import task is being processed.',
+            'failed' => 'failed',
+            'failed_hint' => 'Import task could not complete: script failure.',
+            'passed' => 'passed',
+            'passed_hint' => 'Import task was completed successfully!',
+        ],
+        'feed' => 'Feed',
+        'duration' => 'Import duration',
+        'imported_episodes' => 'Imported episodes',
+        'imported_episodes_hint' => '{newlyImportedCount} newly imported, {alreadyImportedCount} already imported.',
+        'actions' => [
+            'cancel' => 'Cancel',
+            'retry' => 'Retry',
+            'delete' => 'Delete',
+        ],
+    ],
+    'messages' => [
+        'canceled' => 'Import task has been successfully canceled!',
+        'alreadyRunning' => 'Import Task is already running. You may cancel it before retrying.',
+        'retried' => 'Import task has been queued, it will be retried shortly!',
+        'deleted' => 'Import task has been successfully deleted!',
+        'importTaskQueued' => 'An new task has been queued, import will start shortly!',
+        'podcastNotImported' => 'Podcast cannot be synched as it was not imported.',
+        'syncTaskQueued' => 'A new import task has been queued, synchronization will start shortly!',
+    ],
 ];
diff --git a/modules/PodcastImport/Language/ca/PodcastImport.php b/modules/PodcastImport/Language/ca/PodcastImport.php
index 81de5fdf62dc2c340bc34bbcbaf2d5a86f6dbfc6..a89fe03b2162852aea516840d7f1976b80c36e30 100644
--- a/modules/PodcastImport/Language/ca/PodcastImport.php
+++ b/modules/PodcastImport/Language/ca/PodcastImport.php
@@ -9,29 +9,52 @@ declare(strict_types=1);
  */
 
 return [
-    'warning' =>
-        'Aquest procediment pot trigar molt de temps. Com que la versió actual no mostra cap progrés mentre s\'executa, no veureu res actualitzat fins que no s\'hagi fet. En cas d\'error de temps d\'espera, augmenteu el valor `max_execution_time` a la configuració del PHP del servidor.',
-    'old_podcast_section_title' => 'El podcast a importar',
-    'old_podcast_section_subtitle' =>
-        'Assegura\'t de tenir els drets d\'aquest podcast abans d\'importar-lo. Copiar i difondre un podcast sense els drets adequats és pirateria i pot ser processat.',
-    'imported_feed_url' => 'Adreça URL del fil',
-    'imported_feed_url_hint' => 'El contingut del fil ha d\'estar en format xml o rss.',
-    'new_podcast_section_title' => 'El nou podcast',
-    'advanced_params_section_title' => 'Paràmetres avançats',
-    'advanced_params_section_subtitle' =>
-        'Mantingueu els valors predeterminats si no teniu idea de per a què serveixen els camps.',
-    'slug_field' => 'Camp que s\'utilitzarà per calcular l\'àlies d\'un episodi',
-    'description_field' =>
-        'Camp d\'origen utilitzat per a la descripció de l\'episodi / notes del programa',
-    'force_renumber' => 'Forçar la renumeració dels episodis',
-    'force_renumber_hint' =>
-        'Utilitzeu aquesta funcionalitat si el vostre podcast no té números d\'episodi però voleu configurar-los durant la importació.',
-    'season_number' => 'Número de temporada',
-    'season_number_hint' =>
-        'Utilitzeu aquesta opció si el vostre podcast no té un número de temporada però voleu establir-ne un durant la importació. Deixeu en blanc en cas contrari.',
-    'max_episodes' => 'Nombre màxim d\'episodis per importar',
-    'max_episodes_hint' => 'Deixeu en blanc per importar tots els episodis',
+    'banner' => [
+        'disclaimer' => 'Importing',
+        'text' => '{podcastTitle} is currently being imported.',
+        'cta' => 'See import status',
+    ],
+    'old_podcast_section_title' => 'The podcast to import',
+    'old_podcast_legal_disclaimer_title' => 'Legal disclaimer',
+    'old_podcast_legal_disclaimer' =>
+        'Make sure you own the rights for this podcast before importing it. Copying and broadcasting a podcast without the proper rights is piracy and is liable to prosecution.',
+    'imported_feed_url' => 'Feed URL',
+    'imported_feed_url_hint' => 'The feed must be in xml or rss format.',
+    'new_podcast_section_title' => 'The new podcast',
     'lock_import' =>
-        'Aquest feed està protegit. No el podeu importar. Si sou el propietari, desprotegiu-lo a la plataforma d\'origen.',
-    'submit' => 'Importar el podcast',
+        'This feed is protected. You cannot import it. If you are the owner, unlock it on the origin platform.',
+    'submit' => 'Add import to queue',
+    'queue' => [
+        'status' => [
+            'label' => 'Status',
+            'queued' => 'queued',
+            'queued_hint' => 'Import task is awaiting to be processed.',
+            'canceled' => 'canceled',
+            'canceled_hint' => 'Import task was canceled.',
+            'running' => 'running',
+            'running_hint' => 'Import task is being processed.',
+            'failed' => 'failed',
+            'failed_hint' => 'Import task could not complete: script failure.',
+            'passed' => 'passed',
+            'passed_hint' => 'Import task was completed successfully!',
+        ],
+        'feed' => 'Feed',
+        'duration' => 'Import duration',
+        'imported_episodes' => 'Imported episodes',
+        'imported_episodes_hint' => '{newlyImportedCount} newly imported, {alreadyImportedCount} already imported.',
+        'actions' => [
+            'cancel' => 'Cancel',
+            'retry' => 'Retry',
+            'delete' => 'Delete',
+        ],
+    ],
+    'messages' => [
+        'canceled' => 'Import task has been successfully canceled!',
+        'alreadyRunning' => 'Import Task is already running. You may cancel it before retrying.',
+        'retried' => 'Import task has been queued, it will be retried shortly!',
+        'deleted' => 'Import task has been successfully deleted!',
+        'importTaskQueued' => 'An new task has been queued, import will start shortly!',
+        'podcastNotImported' => 'Podcast cannot be synched as it was not imported.',
+        'syncTaskQueued' => 'A new import task has been queued, synchronization will start shortly!',
+    ],
 ];
diff --git a/modules/PodcastImport/Language/da/PodcastImport.php b/modules/PodcastImport/Language/da/PodcastImport.php
index 7c3ef67d1f998b7f3d7e5d658d2ae7b99851f4f5..a89fe03b2162852aea516840d7f1976b80c36e30 100644
--- a/modules/PodcastImport/Language/da/PodcastImport.php
+++ b/modules/PodcastImport/Language/da/PodcastImport.php
@@ -9,29 +9,52 @@ declare(strict_types=1);
  */
 
 return [
-    'warning' =>
-        'This procedure may take a long time. As the current version does not show any progress while it runs, you will not see anything updated until it is done. In case of timeout error, increase `max_execution_time` value.',
+    'banner' => [
+        'disclaimer' => 'Importing',
+        'text' => '{podcastTitle} is currently being imported.',
+        'cta' => 'See import status',
+    ],
     'old_podcast_section_title' => 'The podcast to import',
-    'old_podcast_section_subtitle' =>
+    'old_podcast_legal_disclaimer_title' => 'Legal disclaimer',
+    'old_podcast_legal_disclaimer' =>
         'Make sure you own the rights for this podcast before importing it. Copying and broadcasting a podcast without the proper rights is piracy and is liable to prosecution.',
     'imported_feed_url' => 'Feed URL',
     'imported_feed_url_hint' => 'The feed must be in xml or rss format.',
     'new_podcast_section_title' => 'The new podcast',
-    'advanced_params_section_title' => 'Advanced parameters',
-    'advanced_params_section_subtitle' =>
-        'Keep the default values if you have no idea of what the fields are for.',
-    'slug_field' => 'Field to be used to calculate episode slug',
-    'description_field' =>
-        'Source field used for episode description / show notes',
-    'force_renumber' => 'Force episodes renumbering',
-    'force_renumber_hint' =>
-        'Use this if your podcast does not have episode numbers but wish to set them during import.',
-    'season_number' => 'Season number',
-    'season_number_hint' =>
-        'Use this if your podcast does not have a season number but wish to set one during import. Leave blank otherwise.',
-    'max_episodes' => 'Maximum number of episodes to import',
-    'max_episodes_hint' => 'Leave blank to import all episodes',
     'lock_import' =>
-        'This feed is protected. You cannot import it. If you are the owner, unprotect it on the origin platform.',
-    'submit' => 'Import podcast',
+        'This feed is protected. You cannot import it. If you are the owner, unlock it on the origin platform.',
+    'submit' => 'Add import to queue',
+    'queue' => [
+        'status' => [
+            'label' => 'Status',
+            'queued' => 'queued',
+            'queued_hint' => 'Import task is awaiting to be processed.',
+            'canceled' => 'canceled',
+            'canceled_hint' => 'Import task was canceled.',
+            'running' => 'running',
+            'running_hint' => 'Import task is being processed.',
+            'failed' => 'failed',
+            'failed_hint' => 'Import task could not complete: script failure.',
+            'passed' => 'passed',
+            'passed_hint' => 'Import task was completed successfully!',
+        ],
+        'feed' => 'Feed',
+        'duration' => 'Import duration',
+        'imported_episodes' => 'Imported episodes',
+        'imported_episodes_hint' => '{newlyImportedCount} newly imported, {alreadyImportedCount} already imported.',
+        'actions' => [
+            'cancel' => 'Cancel',
+            'retry' => 'Retry',
+            'delete' => 'Delete',
+        ],
+    ],
+    'messages' => [
+        'canceled' => 'Import task has been successfully canceled!',
+        'alreadyRunning' => 'Import Task is already running. You may cancel it before retrying.',
+        'retried' => 'Import task has been queued, it will be retried shortly!',
+        'deleted' => 'Import task has been successfully deleted!',
+        'importTaskQueued' => 'An new task has been queued, import will start shortly!',
+        'podcastNotImported' => 'Podcast cannot be synched as it was not imported.',
+        'syncTaskQueued' => 'A new import task has been queued, synchronization will start shortly!',
+    ],
 ];
diff --git a/modules/PodcastImport/Language/de/PodcastImport.php b/modules/PodcastImport/Language/de/PodcastImport.php
index 2592625dd4ec9aba66769c912e0bd2e6635d77e3..a89fe03b2162852aea516840d7f1976b80c36e30 100644
--- a/modules/PodcastImport/Language/de/PodcastImport.php
+++ b/modules/PodcastImport/Language/de/PodcastImport.php
@@ -9,29 +9,52 @@ declare(strict_types=1);
  */
 
 return [
-    'warning' =>
-        'Der Import kann lange dauern. Da die aktuelle Version keinen Fortschritt anzeigt, werden Sie bis zur Beendigung keine Veränderung sehen. Im Falle eines Timeouts, erhöhen Sie den `max_execution_time` Wert.',
-    'old_podcast_section_title' => 'Der zu importierende Podcast',
-    'old_podcast_section_subtitle' =>
-        'Stellen Sie sicher, dass Sie die Rechte für diesen Podcast besitzen, bevor Sie ihn importieren. Vervielfältigung und Ausstrahlung eines Podcasts ohne die entsprechenden Rechte sind Piraterie und strafbar.',
-    'imported_feed_url' => 'Feed-URL',
-    'imported_feed_url_hint' => 'Der Feed muss im xml oder RSS-Format sein.',
-    'new_podcast_section_title' => 'Der neue Podcast',
-    'advanced_params_section_title' => 'Erweiterte Parameter',
-    'advanced_params_section_subtitle' =>
-        'Behalten Sie die Standardwerte, wenn Sie keine Ahnung haben, wofür die Felder sind.',
-    'slug_field' => 'Feld zum Berechnen der Episoden-URL (episode slug)',
-    'description_field' =>
-        'Dieses Feld wird für die Episodenbeschreibung und Shownotes verwendet',
-    'force_renumber' => 'Erzwinge Neu-Nummerierung der Folgen',
-    'force_renumber_hint' =>
-        'Verwende dies, wenn dein Podcast keine Episodennummern hat, aber du diese während des Imports setzen möchtest.',
-    'season_number' => 'Staffelnummer',
-    'season_number_hint' =>
-        'Benutze dies, wenn dein Podcast keine Staffelnummer hat, aber du eine beim Import setzen möchtest. Lasse es andernfalls leer.',
-    'max_episodes' => 'Maximale Anzahl der zu importierenden Episoden',
-    'max_episodes_hint' => 'Leer lassen, um alle Episoden zu importieren',
+    'banner' => [
+        'disclaimer' => 'Importing',
+        'text' => '{podcastTitle} is currently being imported.',
+        'cta' => 'See import status',
+    ],
+    'old_podcast_section_title' => 'The podcast to import',
+    'old_podcast_legal_disclaimer_title' => 'Legal disclaimer',
+    'old_podcast_legal_disclaimer' =>
+        'Make sure you own the rights for this podcast before importing it. Copying and broadcasting a podcast without the proper rights is piracy and is liable to prosecution.',
+    'imported_feed_url' => 'Feed URL',
+    'imported_feed_url_hint' => 'The feed must be in xml or rss format.',
+    'new_podcast_section_title' => 'The new podcast',
     'lock_import' =>
-        'Dieser Feed ist geschützt. Du kannst ihn nicht importieren. Wenn du der Besitzer bist, entferne den Schutz auf der Ursprungsplattform.',
-    'submit' => 'Podcast importieren',
+        'This feed is protected. You cannot import it. If you are the owner, unlock it on the origin platform.',
+    'submit' => 'Add import to queue',
+    'queue' => [
+        'status' => [
+            'label' => 'Status',
+            'queued' => 'queued',
+            'queued_hint' => 'Import task is awaiting to be processed.',
+            'canceled' => 'canceled',
+            'canceled_hint' => 'Import task was canceled.',
+            'running' => 'running',
+            'running_hint' => 'Import task is being processed.',
+            'failed' => 'failed',
+            'failed_hint' => 'Import task could not complete: script failure.',
+            'passed' => 'passed',
+            'passed_hint' => 'Import task was completed successfully!',
+        ],
+        'feed' => 'Feed',
+        'duration' => 'Import duration',
+        'imported_episodes' => 'Imported episodes',
+        'imported_episodes_hint' => '{newlyImportedCount} newly imported, {alreadyImportedCount} already imported.',
+        'actions' => [
+            'cancel' => 'Cancel',
+            'retry' => 'Retry',
+            'delete' => 'Delete',
+        ],
+    ],
+    'messages' => [
+        'canceled' => 'Import task has been successfully canceled!',
+        'alreadyRunning' => 'Import Task is already running. You may cancel it before retrying.',
+        'retried' => 'Import task has been queued, it will be retried shortly!',
+        'deleted' => 'Import task has been successfully deleted!',
+        'importTaskQueued' => 'An new task has been queued, import will start shortly!',
+        'podcastNotImported' => 'Podcast cannot be synched as it was not imported.',
+        'syncTaskQueued' => 'A new import task has been queued, synchronization will start shortly!',
+    ],
 ];
diff --git a/modules/PodcastImport/Language/el/PodcastImport.php b/modules/PodcastImport/Language/el/PodcastImport.php
index fbae4b3ea6c875c23c04d7d0cef210c5daa1aa0e..a89fe03b2162852aea516840d7f1976b80c36e30 100644
--- a/modules/PodcastImport/Language/el/PodcastImport.php
+++ b/modules/PodcastImport/Language/el/PodcastImport.php
@@ -9,29 +9,52 @@ declare(strict_types=1);
  */
 
 return [
-    'warning' =>
-        'Αυτή η διαδικασία μπορεί να διαρκέσει πολύ. Καθώς η τρέχουσα έκδοση δεν εμφανίζει καμία πρόοδο ενώ εκτελείται, δεν θα δείτε τίποτα να ενημερώνεται μέχρι να ολοκληρωθεί. Σε περίπτωση σφάλματος χρονικού ορίου, αυξήστε την τιμή `max_execution_time`.',
-    'old_podcast_section_title' => 'Το podcast για εισαγωγή',
-    'old_podcast_section_subtitle' =>
-        'Βεβαιωθείτε ότι έχετε τα δικαιώματα για αυτό το podcast πριν από την εισαγωγή του. Η αντιγραφή και μετάδοση ενός podcast χωρίς τα κατάλληλα δικαιώματα είναι πειρατεία και μπορεί να διωχθεί.',
-    'imported_feed_url' => 'Διεύθυνση URL Ροής',
-    'imported_feed_url_hint' => 'To Url πρέπει να είναι σε μορφή xml ή rss.',
-    'new_podcast_section_title' => 'Το νέο podcast',
-    'advanced_params_section_title' => 'Παράμετροι για προχωρημένους',
-    'advanced_params_section_subtitle' =>
-        'Διατηρήστε τις προεπιλεγμένες τιμές αν δεν έχετε ιδέα για το ποια είναι τα πεδία.',
-    'slug_field' => 'Πεδίο που πρέπει να χρησιμοποιείται για τον υπολογισμό του slug του επεισοδίου',
-    'description_field' =>
-        'Πεδίο πηγής που χρησιμοποιείται για την περιγραφή επεισοδίου / εμφάνιση σημειώσεων',
-    'force_renumber' => 'Force episodes renumbering',
-    'force_renumber_hint' =>
-        'Use this if your podcast does not have episode numbers but wish to set them during import.',
-    'season_number' => 'Αριθμός σεζόν',
-    'season_number_hint' =>
-        'Χρησιμοποιήστε αυτό αν το podcast σας δεν έχει αριθμό σεζόν αλλά επιθυμεί να ορίσει έναν κατά την εισαγωγή. Αφήστε κενό διαφορετικά.',
-    'max_episodes' => 'Μέγιστος αριθμός επεισοδίων εισαγωγής',
-    'max_episodes_hint' => 'Αφήστε κενό για την εισαγωγή όλων των επεισοδίων',
+    'banner' => [
+        'disclaimer' => 'Importing',
+        'text' => '{podcastTitle} is currently being imported.',
+        'cta' => 'See import status',
+    ],
+    'old_podcast_section_title' => 'The podcast to import',
+    'old_podcast_legal_disclaimer_title' => 'Legal disclaimer',
+    'old_podcast_legal_disclaimer' =>
+        'Make sure you own the rights for this podcast before importing it. Copying and broadcasting a podcast without the proper rights is piracy and is liable to prosecution.',
+    'imported_feed_url' => 'Feed URL',
+    'imported_feed_url_hint' => 'The feed must be in xml or rss format.',
+    'new_podcast_section_title' => 'The new podcast',
     'lock_import' =>
-        'Αυτή η ροή προστατεύεται. Δεν μπορείτε να την εισάγετε. Αν είστε ο ιδιοκτήτης, μην την προστατεύετε στην πλατφόρμα προέλευσης.',
-    'submit' => 'Εισαγωγή podcast',
+        'This feed is protected. You cannot import it. If you are the owner, unlock it on the origin platform.',
+    'submit' => 'Add import to queue',
+    'queue' => [
+        'status' => [
+            'label' => 'Status',
+            'queued' => 'queued',
+            'queued_hint' => 'Import task is awaiting to be processed.',
+            'canceled' => 'canceled',
+            'canceled_hint' => 'Import task was canceled.',
+            'running' => 'running',
+            'running_hint' => 'Import task is being processed.',
+            'failed' => 'failed',
+            'failed_hint' => 'Import task could not complete: script failure.',
+            'passed' => 'passed',
+            'passed_hint' => 'Import task was completed successfully!',
+        ],
+        'feed' => 'Feed',
+        'duration' => 'Import duration',
+        'imported_episodes' => 'Imported episodes',
+        'imported_episodes_hint' => '{newlyImportedCount} newly imported, {alreadyImportedCount} already imported.',
+        'actions' => [
+            'cancel' => 'Cancel',
+            'retry' => 'Retry',
+            'delete' => 'Delete',
+        ],
+    ],
+    'messages' => [
+        'canceled' => 'Import task has been successfully canceled!',
+        'alreadyRunning' => 'Import Task is already running. You may cancel it before retrying.',
+        'retried' => 'Import task has been queued, it will be retried shortly!',
+        'deleted' => 'Import task has been successfully deleted!',
+        'importTaskQueued' => 'An new task has been queued, import will start shortly!',
+        'podcastNotImported' => 'Podcast cannot be synched as it was not imported.',
+        'syncTaskQueued' => 'A new import task has been queued, synchronization will start shortly!',
+    ],
 ];
diff --git a/modules/PodcastImport/Language/es/PodcastImport.php b/modules/PodcastImport/Language/es/PodcastImport.php
index 96cef94d9d540f5ae60fbd9688557928874a7433..a89fe03b2162852aea516840d7f1976b80c36e30 100644
--- a/modules/PodcastImport/Language/es/PodcastImport.php
+++ b/modules/PodcastImport/Language/es/PodcastImport.php
@@ -9,29 +9,52 @@ declare(strict_types=1);
  */
 
 return [
-    'warning' =>
-        'Este procedimiento puede llevar mucho tiempo. Como la versión actual no muestra ningún progreso mientras se ejecuta, no verás nada actualizado hasta que termine. En el caso de recibir un mensaje de error por falta de tiempo (Timeout error), incrementa el valor `max_execution_time` en la configuración del PHP del servidor.',
-    'old_podcast_section_title' => 'Podcasts para importar',
-    'old_podcast_section_subtitle' =>
-        'Asegúrese de que tiene los derechos para este podcast antes de importarlo. Copiar y difundir un podcast sin los derechos apropiados es piratería y puede ser procesado.',
-    'imported_feed_url' => 'URL del Feed',
-    'imported_feed_url_hint' => 'El feed debe estar en formato xml o rss.',
-    'new_podcast_section_title' => 'El nuevo Podcast',
-    'advanced_params_section_title' => 'Parámetros avanzados',
-    'advanced_params_section_subtitle' =>
-        'Mantenga los valores por defecto si no tiene idea de para qué sirven los campos.',
-    'slug_field' => 'Campo a utilizar para calcular el slug de episodio',
-    'description_field' =>
-        'Campo de origen usado para la descripción del episodio / mostrar notas',
-    'force_renumber' => 'Forzar renumeración de episodios',
-    'force_renumber_hint' =>
-        'Utilice esto si su podcast no tiene números de episodios pero desea establecerlos durante la importación.',
-    'season_number' => 'Número de Temporada',
-    'season_number_hint' =>
-        'Utilice esto si su podcast no tiene un número de temporada pero desea establecer uno durante la importación. Deje en blanco de lo contrario.',
-    'max_episodes' => 'Número máximo de episodios a importar',
-    'max_episodes_hint' => 'Dejar en blanco para importar todos los episodios',
+    'banner' => [
+        'disclaimer' => 'Importing',
+        'text' => '{podcastTitle} is currently being imported.',
+        'cta' => 'See import status',
+    ],
+    'old_podcast_section_title' => 'The podcast to import',
+    'old_podcast_legal_disclaimer_title' => 'Legal disclaimer',
+    'old_podcast_legal_disclaimer' =>
+        'Make sure you own the rights for this podcast before importing it. Copying and broadcasting a podcast without the proper rights is piracy and is liable to prosecution.',
+    'imported_feed_url' => 'Feed URL',
+    'imported_feed_url_hint' => 'The feed must be in xml or rss format.',
+    'new_podcast_section_title' => 'The new podcast',
     'lock_import' =>
-        'Este feed está protegido. No puedes importarlo. Si eres el propietario, debes desprotegerlo en la plataforma de origen.',
-    'submit' => 'Importar podcast',
+        'This feed is protected. You cannot import it. If you are the owner, unlock it on the origin platform.',
+    'submit' => 'Add import to queue',
+    'queue' => [
+        'status' => [
+            'label' => 'Status',
+            'queued' => 'queued',
+            'queued_hint' => 'Import task is awaiting to be processed.',
+            'canceled' => 'canceled',
+            'canceled_hint' => 'Import task was canceled.',
+            'running' => 'running',
+            'running_hint' => 'Import task is being processed.',
+            'failed' => 'failed',
+            'failed_hint' => 'Import task could not complete: script failure.',
+            'passed' => 'passed',
+            'passed_hint' => 'Import task was completed successfully!',
+        ],
+        'feed' => 'Feed',
+        'duration' => 'Import duration',
+        'imported_episodes' => 'Imported episodes',
+        'imported_episodes_hint' => '{newlyImportedCount} newly imported, {alreadyImportedCount} already imported.',
+        'actions' => [
+            'cancel' => 'Cancel',
+            'retry' => 'Retry',
+            'delete' => 'Delete',
+        ],
+    ],
+    'messages' => [
+        'canceled' => 'Import task has been successfully canceled!',
+        'alreadyRunning' => 'Import Task is already running. You may cancel it before retrying.',
+        'retried' => 'Import task has been queued, it will be retried shortly!',
+        'deleted' => 'Import task has been successfully deleted!',
+        'importTaskQueued' => 'An new task has been queued, import will start shortly!',
+        'podcastNotImported' => 'Podcast cannot be synched as it was not imported.',
+        'syncTaskQueued' => 'A new import task has been queued, synchronization will start shortly!',
+    ],
 ];
diff --git a/modules/PodcastImport/Language/fa/PodcastImport.php b/modules/PodcastImport/Language/fa/PodcastImport.php
index 7c3ef67d1f998b7f3d7e5d658d2ae7b99851f4f5..a89fe03b2162852aea516840d7f1976b80c36e30 100644
--- a/modules/PodcastImport/Language/fa/PodcastImport.php
+++ b/modules/PodcastImport/Language/fa/PodcastImport.php
@@ -9,29 +9,52 @@ declare(strict_types=1);
  */
 
 return [
-    'warning' =>
-        'This procedure may take a long time. As the current version does not show any progress while it runs, you will not see anything updated until it is done. In case of timeout error, increase `max_execution_time` value.',
+    'banner' => [
+        'disclaimer' => 'Importing',
+        'text' => '{podcastTitle} is currently being imported.',
+        'cta' => 'See import status',
+    ],
     'old_podcast_section_title' => 'The podcast to import',
-    'old_podcast_section_subtitle' =>
+    'old_podcast_legal_disclaimer_title' => 'Legal disclaimer',
+    'old_podcast_legal_disclaimer' =>
         'Make sure you own the rights for this podcast before importing it. Copying and broadcasting a podcast without the proper rights is piracy and is liable to prosecution.',
     'imported_feed_url' => 'Feed URL',
     'imported_feed_url_hint' => 'The feed must be in xml or rss format.',
     'new_podcast_section_title' => 'The new podcast',
-    'advanced_params_section_title' => 'Advanced parameters',
-    'advanced_params_section_subtitle' =>
-        'Keep the default values if you have no idea of what the fields are for.',
-    'slug_field' => 'Field to be used to calculate episode slug',
-    'description_field' =>
-        'Source field used for episode description / show notes',
-    'force_renumber' => 'Force episodes renumbering',
-    'force_renumber_hint' =>
-        'Use this if your podcast does not have episode numbers but wish to set them during import.',
-    'season_number' => 'Season number',
-    'season_number_hint' =>
-        'Use this if your podcast does not have a season number but wish to set one during import. Leave blank otherwise.',
-    'max_episodes' => 'Maximum number of episodes to import',
-    'max_episodes_hint' => 'Leave blank to import all episodes',
     'lock_import' =>
-        'This feed is protected. You cannot import it. If you are the owner, unprotect it on the origin platform.',
-    'submit' => 'Import podcast',
+        'This feed is protected. You cannot import it. If you are the owner, unlock it on the origin platform.',
+    'submit' => 'Add import to queue',
+    'queue' => [
+        'status' => [
+            'label' => 'Status',
+            'queued' => 'queued',
+            'queued_hint' => 'Import task is awaiting to be processed.',
+            'canceled' => 'canceled',
+            'canceled_hint' => 'Import task was canceled.',
+            'running' => 'running',
+            'running_hint' => 'Import task is being processed.',
+            'failed' => 'failed',
+            'failed_hint' => 'Import task could not complete: script failure.',
+            'passed' => 'passed',
+            'passed_hint' => 'Import task was completed successfully!',
+        ],
+        'feed' => 'Feed',
+        'duration' => 'Import duration',
+        'imported_episodes' => 'Imported episodes',
+        'imported_episodes_hint' => '{newlyImportedCount} newly imported, {alreadyImportedCount} already imported.',
+        'actions' => [
+            'cancel' => 'Cancel',
+            'retry' => 'Retry',
+            'delete' => 'Delete',
+        ],
+    ],
+    'messages' => [
+        'canceled' => 'Import task has been successfully canceled!',
+        'alreadyRunning' => 'Import Task is already running. You may cancel it before retrying.',
+        'retried' => 'Import task has been queued, it will be retried shortly!',
+        'deleted' => 'Import task has been successfully deleted!',
+        'importTaskQueued' => 'An new task has been queued, import will start shortly!',
+        'podcastNotImported' => 'Podcast cannot be synched as it was not imported.',
+        'syncTaskQueued' => 'A new import task has been queued, synchronization will start shortly!',
+    ],
 ];
diff --git a/modules/PodcastImport/Language/fr/PodcastImport.php b/modules/PodcastImport/Language/fr/PodcastImport.php
index b72cf0d2fc455df2d5cd9d59896f5c3a02bf7418..a89fe03b2162852aea516840d7f1976b80c36e30 100644
--- a/modules/PodcastImport/Language/fr/PodcastImport.php
+++ b/modules/PodcastImport/Language/fr/PodcastImport.php
@@ -9,29 +9,52 @@ declare(strict_types=1);
  */
 
 return [
-    'warning' =>
-        'This procedure may take a long time. As the current version does not show any progress while it runs, you will not see anything updated until it is done. In case of timeout error, increase `max_execution_time` value.',
-    'old_podcast_section_title' => 'Le podcast à importer',
-    'old_podcast_section_subtitle' =>
-        'Assurez-vous d’être détenteur des droits du podcast avant de l’importer. Copier et diffuser un podcast sans en détenir les droits est assimilable à de la contrefaçon et est passible de poursuites.',
-    'imported_feed_url' => 'Adresse du flux',
-    'imported_feed_url_hint' => 'Le flux doit être au format xml ou rss.',
-    'new_podcast_section_title' => 'Le nouveau podcast',
-    'advanced_params_section_title' => 'Paramètres avancés',
-    'advanced_params_section_subtitle' =>
-        'Si vous ne savez pas à quoi servent ces champs, conservez les valeurs par défaut.',
-    'slug_field' => 'Champ à utiliser pour calculer l’identifiant de l’épisode',
-    'description_field' =>
-        'Champs pour la description des épisodes',
-    'force_renumber' => 'Forcer la re-numérotation des épisodes',
-    'force_renumber_hint' =>
-        'Utilisez ceci si le podcast à importer ne contient pas de numéros d’épisodes mais que vous souhaitez en ajouter pendant l’import.',
-    'season_number' => 'Numéro de saison',
-    'season_number_hint' =>
-        'Utilisez ceci si le podcast à importer ne contient pas de numéros de saison mais que vous souhaitez en définir un. Laissez vide sinon.',
-    'max_episodes' => 'Nombre maximum d’épisodes à importer',
-    'max_episodes_hint' => 'Laissez vide pour importer tous les épisodes',
+    'banner' => [
+        'disclaimer' => 'Importing',
+        'text' => '{podcastTitle} is currently being imported.',
+        'cta' => 'See import status',
+    ],
+    'old_podcast_section_title' => 'The podcast to import',
+    'old_podcast_legal_disclaimer_title' => 'Legal disclaimer',
+    'old_podcast_legal_disclaimer' =>
+        'Make sure you own the rights for this podcast before importing it. Copying and broadcasting a podcast without the proper rights is piracy and is liable to prosecution.',
+    'imported_feed_url' => 'Feed URL',
+    'imported_feed_url_hint' => 'The feed must be in xml or rss format.',
+    'new_podcast_section_title' => 'The new podcast',
     'lock_import' =>
-        'Ce flux est protégé. Vous ne pouvez pas l’importer. Si en vous êtes le propriétaire, déprotégez-le sur la plate-forme d’origine.',
-    'submit' => 'Importer le podcast',
+        'This feed is protected. You cannot import it. If you are the owner, unlock it on the origin platform.',
+    'submit' => 'Add import to queue',
+    'queue' => [
+        'status' => [
+            'label' => 'Status',
+            'queued' => 'queued',
+            'queued_hint' => 'Import task is awaiting to be processed.',
+            'canceled' => 'canceled',
+            'canceled_hint' => 'Import task was canceled.',
+            'running' => 'running',
+            'running_hint' => 'Import task is being processed.',
+            'failed' => 'failed',
+            'failed_hint' => 'Import task could not complete: script failure.',
+            'passed' => 'passed',
+            'passed_hint' => 'Import task was completed successfully!',
+        ],
+        'feed' => 'Feed',
+        'duration' => 'Import duration',
+        'imported_episodes' => 'Imported episodes',
+        'imported_episodes_hint' => '{newlyImportedCount} newly imported, {alreadyImportedCount} already imported.',
+        'actions' => [
+            'cancel' => 'Cancel',
+            'retry' => 'Retry',
+            'delete' => 'Delete',
+        ],
+    ],
+    'messages' => [
+        'canceled' => 'Import task has been successfully canceled!',
+        'alreadyRunning' => 'Import Task is already running. You may cancel it before retrying.',
+        'retried' => 'Import task has been queued, it will be retried shortly!',
+        'deleted' => 'Import task has been successfully deleted!',
+        'importTaskQueued' => 'An new task has been queued, import will start shortly!',
+        'podcastNotImported' => 'Podcast cannot be synched as it was not imported.',
+        'syncTaskQueued' => 'A new import task has been queued, synchronization will start shortly!',
+    ],
 ];
diff --git a/modules/PodcastImport/Language/fr2/PodcastImport.php b/modules/PodcastImport/Language/fr2/PodcastImport.php
index 7c3ef67d1f998b7f3d7e5d658d2ae7b99851f4f5..a89fe03b2162852aea516840d7f1976b80c36e30 100644
--- a/modules/PodcastImport/Language/fr2/PodcastImport.php
+++ b/modules/PodcastImport/Language/fr2/PodcastImport.php
@@ -9,29 +9,52 @@ declare(strict_types=1);
  */
 
 return [
-    'warning' =>
-        'This procedure may take a long time. As the current version does not show any progress while it runs, you will not see anything updated until it is done. In case of timeout error, increase `max_execution_time` value.',
+    'banner' => [
+        'disclaimer' => 'Importing',
+        'text' => '{podcastTitle} is currently being imported.',
+        'cta' => 'See import status',
+    ],
     'old_podcast_section_title' => 'The podcast to import',
-    'old_podcast_section_subtitle' =>
+    'old_podcast_legal_disclaimer_title' => 'Legal disclaimer',
+    'old_podcast_legal_disclaimer' =>
         'Make sure you own the rights for this podcast before importing it. Copying and broadcasting a podcast without the proper rights is piracy and is liable to prosecution.',
     'imported_feed_url' => 'Feed URL',
     'imported_feed_url_hint' => 'The feed must be in xml or rss format.',
     'new_podcast_section_title' => 'The new podcast',
-    'advanced_params_section_title' => 'Advanced parameters',
-    'advanced_params_section_subtitle' =>
-        'Keep the default values if you have no idea of what the fields are for.',
-    'slug_field' => 'Field to be used to calculate episode slug',
-    'description_field' =>
-        'Source field used for episode description / show notes',
-    'force_renumber' => 'Force episodes renumbering',
-    'force_renumber_hint' =>
-        'Use this if your podcast does not have episode numbers but wish to set them during import.',
-    'season_number' => 'Season number',
-    'season_number_hint' =>
-        'Use this if your podcast does not have a season number but wish to set one during import. Leave blank otherwise.',
-    'max_episodes' => 'Maximum number of episodes to import',
-    'max_episodes_hint' => 'Leave blank to import all episodes',
     'lock_import' =>
-        'This feed is protected. You cannot import it. If you are the owner, unprotect it on the origin platform.',
-    'submit' => 'Import podcast',
+        'This feed is protected. You cannot import it. If you are the owner, unlock it on the origin platform.',
+    'submit' => 'Add import to queue',
+    'queue' => [
+        'status' => [
+            'label' => 'Status',
+            'queued' => 'queued',
+            'queued_hint' => 'Import task is awaiting to be processed.',
+            'canceled' => 'canceled',
+            'canceled_hint' => 'Import task was canceled.',
+            'running' => 'running',
+            'running_hint' => 'Import task is being processed.',
+            'failed' => 'failed',
+            'failed_hint' => 'Import task could not complete: script failure.',
+            'passed' => 'passed',
+            'passed_hint' => 'Import task was completed successfully!',
+        ],
+        'feed' => 'Feed',
+        'duration' => 'Import duration',
+        'imported_episodes' => 'Imported episodes',
+        'imported_episodes_hint' => '{newlyImportedCount} newly imported, {alreadyImportedCount} already imported.',
+        'actions' => [
+            'cancel' => 'Cancel',
+            'retry' => 'Retry',
+            'delete' => 'Delete',
+        ],
+    ],
+    'messages' => [
+        'canceled' => 'Import task has been successfully canceled!',
+        'alreadyRunning' => 'Import Task is already running. You may cancel it before retrying.',
+        'retried' => 'Import task has been queued, it will be retried shortly!',
+        'deleted' => 'Import task has been successfully deleted!',
+        'importTaskQueued' => 'An new task has been queued, import will start shortly!',
+        'podcastNotImported' => 'Podcast cannot be synched as it was not imported.',
+        'syncTaskQueued' => 'A new import task has been queued, synchronization will start shortly!',
+    ],
 ];
diff --git a/modules/PodcastImport/Language/fr_CA/PodcastImport.php b/modules/PodcastImport/Language/fr_CA/PodcastImport.php
index 7c3ef67d1f998b7f3d7e5d658d2ae7b99851f4f5..a89fe03b2162852aea516840d7f1976b80c36e30 100644
--- a/modules/PodcastImport/Language/fr_CA/PodcastImport.php
+++ b/modules/PodcastImport/Language/fr_CA/PodcastImport.php
@@ -9,29 +9,52 @@ declare(strict_types=1);
  */
 
 return [
-    'warning' =>
-        'This procedure may take a long time. As the current version does not show any progress while it runs, you will not see anything updated until it is done. In case of timeout error, increase `max_execution_time` value.',
+    'banner' => [
+        'disclaimer' => 'Importing',
+        'text' => '{podcastTitle} is currently being imported.',
+        'cta' => 'See import status',
+    ],
     'old_podcast_section_title' => 'The podcast to import',
-    'old_podcast_section_subtitle' =>
+    'old_podcast_legal_disclaimer_title' => 'Legal disclaimer',
+    'old_podcast_legal_disclaimer' =>
         'Make sure you own the rights for this podcast before importing it. Copying and broadcasting a podcast without the proper rights is piracy and is liable to prosecution.',
     'imported_feed_url' => 'Feed URL',
     'imported_feed_url_hint' => 'The feed must be in xml or rss format.',
     'new_podcast_section_title' => 'The new podcast',
-    'advanced_params_section_title' => 'Advanced parameters',
-    'advanced_params_section_subtitle' =>
-        'Keep the default values if you have no idea of what the fields are for.',
-    'slug_field' => 'Field to be used to calculate episode slug',
-    'description_field' =>
-        'Source field used for episode description / show notes',
-    'force_renumber' => 'Force episodes renumbering',
-    'force_renumber_hint' =>
-        'Use this if your podcast does not have episode numbers but wish to set them during import.',
-    'season_number' => 'Season number',
-    'season_number_hint' =>
-        'Use this if your podcast does not have a season number but wish to set one during import. Leave blank otherwise.',
-    'max_episodes' => 'Maximum number of episodes to import',
-    'max_episodes_hint' => 'Leave blank to import all episodes',
     'lock_import' =>
-        'This feed is protected. You cannot import it. If you are the owner, unprotect it on the origin platform.',
-    'submit' => 'Import podcast',
+        'This feed is protected. You cannot import it. If you are the owner, unlock it on the origin platform.',
+    'submit' => 'Add import to queue',
+    'queue' => [
+        'status' => [
+            'label' => 'Status',
+            'queued' => 'queued',
+            'queued_hint' => 'Import task is awaiting to be processed.',
+            'canceled' => 'canceled',
+            'canceled_hint' => 'Import task was canceled.',
+            'running' => 'running',
+            'running_hint' => 'Import task is being processed.',
+            'failed' => 'failed',
+            'failed_hint' => 'Import task could not complete: script failure.',
+            'passed' => 'passed',
+            'passed_hint' => 'Import task was completed successfully!',
+        ],
+        'feed' => 'Feed',
+        'duration' => 'Import duration',
+        'imported_episodes' => 'Imported episodes',
+        'imported_episodes_hint' => '{newlyImportedCount} newly imported, {alreadyImportedCount} already imported.',
+        'actions' => [
+            'cancel' => 'Cancel',
+            'retry' => 'Retry',
+            'delete' => 'Delete',
+        ],
+    ],
+    'messages' => [
+        'canceled' => 'Import task has been successfully canceled!',
+        'alreadyRunning' => 'Import Task is already running. You may cancel it before retrying.',
+        'retried' => 'Import task has been queued, it will be retried shortly!',
+        'deleted' => 'Import task has been successfully deleted!',
+        'importTaskQueued' => 'An new task has been queued, import will start shortly!',
+        'podcastNotImported' => 'Podcast cannot be synched as it was not imported.',
+        'syncTaskQueued' => 'A new import task has been queued, synchronization will start shortly!',
+    ],
 ];
diff --git a/modules/PodcastImport/Language/gd/PodcastImport.php b/modules/PodcastImport/Language/gd/PodcastImport.php
index 7c3ef67d1f998b7f3d7e5d658d2ae7b99851f4f5..a89fe03b2162852aea516840d7f1976b80c36e30 100644
--- a/modules/PodcastImport/Language/gd/PodcastImport.php
+++ b/modules/PodcastImport/Language/gd/PodcastImport.php
@@ -9,29 +9,52 @@ declare(strict_types=1);
  */
 
 return [
-    'warning' =>
-        'This procedure may take a long time. As the current version does not show any progress while it runs, you will not see anything updated until it is done. In case of timeout error, increase `max_execution_time` value.',
+    'banner' => [
+        'disclaimer' => 'Importing',
+        'text' => '{podcastTitle} is currently being imported.',
+        'cta' => 'See import status',
+    ],
     'old_podcast_section_title' => 'The podcast to import',
-    'old_podcast_section_subtitle' =>
+    'old_podcast_legal_disclaimer_title' => 'Legal disclaimer',
+    'old_podcast_legal_disclaimer' =>
         'Make sure you own the rights for this podcast before importing it. Copying and broadcasting a podcast without the proper rights is piracy and is liable to prosecution.',
     'imported_feed_url' => 'Feed URL',
     'imported_feed_url_hint' => 'The feed must be in xml or rss format.',
     'new_podcast_section_title' => 'The new podcast',
-    'advanced_params_section_title' => 'Advanced parameters',
-    'advanced_params_section_subtitle' =>
-        'Keep the default values if you have no idea of what the fields are for.',
-    'slug_field' => 'Field to be used to calculate episode slug',
-    'description_field' =>
-        'Source field used for episode description / show notes',
-    'force_renumber' => 'Force episodes renumbering',
-    'force_renumber_hint' =>
-        'Use this if your podcast does not have episode numbers but wish to set them during import.',
-    'season_number' => 'Season number',
-    'season_number_hint' =>
-        'Use this if your podcast does not have a season number but wish to set one during import. Leave blank otherwise.',
-    'max_episodes' => 'Maximum number of episodes to import',
-    'max_episodes_hint' => 'Leave blank to import all episodes',
     'lock_import' =>
-        'This feed is protected. You cannot import it. If you are the owner, unprotect it on the origin platform.',
-    'submit' => 'Import podcast',
+        'This feed is protected. You cannot import it. If you are the owner, unlock it on the origin platform.',
+    'submit' => 'Add import to queue',
+    'queue' => [
+        'status' => [
+            'label' => 'Status',
+            'queued' => 'queued',
+            'queued_hint' => 'Import task is awaiting to be processed.',
+            'canceled' => 'canceled',
+            'canceled_hint' => 'Import task was canceled.',
+            'running' => 'running',
+            'running_hint' => 'Import task is being processed.',
+            'failed' => 'failed',
+            'failed_hint' => 'Import task could not complete: script failure.',
+            'passed' => 'passed',
+            'passed_hint' => 'Import task was completed successfully!',
+        ],
+        'feed' => 'Feed',
+        'duration' => 'Import duration',
+        'imported_episodes' => 'Imported episodes',
+        'imported_episodes_hint' => '{newlyImportedCount} newly imported, {alreadyImportedCount} already imported.',
+        'actions' => [
+            'cancel' => 'Cancel',
+            'retry' => 'Retry',
+            'delete' => 'Delete',
+        ],
+    ],
+    'messages' => [
+        'canceled' => 'Import task has been successfully canceled!',
+        'alreadyRunning' => 'Import Task is already running. You may cancel it before retrying.',
+        'retried' => 'Import task has been queued, it will be retried shortly!',
+        'deleted' => 'Import task has been successfully deleted!',
+        'importTaskQueued' => 'An new task has been queued, import will start shortly!',
+        'podcastNotImported' => 'Podcast cannot be synched as it was not imported.',
+        'syncTaskQueued' => 'A new import task has been queued, synchronization will start shortly!',
+    ],
 ];
diff --git a/modules/PodcastImport/Language/gl/PodcastImport.php b/modules/PodcastImport/Language/gl/PodcastImport.php
index a52003344c93e7db67ad2f9ccf64e8aab612441e..a89fe03b2162852aea516840d7f1976b80c36e30 100644
--- a/modules/PodcastImport/Language/gl/PodcastImport.php
+++ b/modules/PodcastImport/Language/gl/PodcastImport.php
@@ -9,29 +9,52 @@ declare(strict_types=1);
  */
 
 return [
-    'warning' =>
-        'This procedure may take a long time. As the current version does not show any progress while it runs, you will not see anything updated until it is done. In case of timeout error, increase `max_execution_time` value.',
+    'banner' => [
+        'disclaimer' => 'Importing',
+        'text' => '{podcastTitle} is currently being imported.',
+        'cta' => 'See import status',
+    ],
     'old_podcast_section_title' => 'The podcast to import',
-    'old_podcast_section_subtitle' =>
+    'old_podcast_legal_disclaimer_title' => 'Legal disclaimer',
+    'old_podcast_legal_disclaimer' =>
         'Make sure you own the rights for this podcast before importing it. Copying and broadcasting a podcast without the proper rights is piracy and is liable to prosecution.',
     'imported_feed_url' => 'Feed URL',
     'imported_feed_url_hint' => 'The feed must be in xml or rss format.',
     'new_podcast_section_title' => 'The new podcast',
-    'advanced_params_section_title' => 'Advanced parameters',
-    'advanced_params_section_subtitle' =>
-        'Keep the default values if you have no idea of what the fields are for.',
-    'slug_field' => 'Campo a utilizar para crear o id de url para o episodio',
-    'description_field' =>
-        'Source field used for episode description / show notes',
-    'force_renumber' => 'Force episodes renumbering',
-    'force_renumber_hint' =>
-        'Use this if your podcast does not have episode numbers but wish to set them during import.',
-    'season_number' => 'Season number',
-    'season_number_hint' =>
-        'Use this if your podcast does not have a season number but wish to set one during import. Leave blank otherwise.',
-    'max_episodes' => 'Maximum number of episodes to import',
-    'max_episodes_hint' => 'Leave blank to import all episodes',
     'lock_import' =>
-        'This feed is protected. You cannot import it. If you are the owner, unprotect it on the origin platform.',
-    'submit' => 'Import podcast',
+        'This feed is protected. You cannot import it. If you are the owner, unlock it on the origin platform.',
+    'submit' => 'Add import to queue',
+    'queue' => [
+        'status' => [
+            'label' => 'Status',
+            'queued' => 'queued',
+            'queued_hint' => 'Import task is awaiting to be processed.',
+            'canceled' => 'canceled',
+            'canceled_hint' => 'Import task was canceled.',
+            'running' => 'running',
+            'running_hint' => 'Import task is being processed.',
+            'failed' => 'failed',
+            'failed_hint' => 'Import task could not complete: script failure.',
+            'passed' => 'passed',
+            'passed_hint' => 'Import task was completed successfully!',
+        ],
+        'feed' => 'Feed',
+        'duration' => 'Import duration',
+        'imported_episodes' => 'Imported episodes',
+        'imported_episodes_hint' => '{newlyImportedCount} newly imported, {alreadyImportedCount} already imported.',
+        'actions' => [
+            'cancel' => 'Cancel',
+            'retry' => 'Retry',
+            'delete' => 'Delete',
+        ],
+    ],
+    'messages' => [
+        'canceled' => 'Import task has been successfully canceled!',
+        'alreadyRunning' => 'Import Task is already running. You may cancel it before retrying.',
+        'retried' => 'Import task has been queued, it will be retried shortly!',
+        'deleted' => 'Import task has been successfully deleted!',
+        'importTaskQueued' => 'An new task has been queued, import will start shortly!',
+        'podcastNotImported' => 'Podcast cannot be synched as it was not imported.',
+        'syncTaskQueued' => 'A new import task has been queued, synchronization will start shortly!',
+    ],
 ];
diff --git a/modules/PodcastImport/Language/id/PodcastImport.php b/modules/PodcastImport/Language/id/PodcastImport.php
index 7c3ef67d1f998b7f3d7e5d658d2ae7b99851f4f5..a89fe03b2162852aea516840d7f1976b80c36e30 100644
--- a/modules/PodcastImport/Language/id/PodcastImport.php
+++ b/modules/PodcastImport/Language/id/PodcastImport.php
@@ -9,29 +9,52 @@ declare(strict_types=1);
  */
 
 return [
-    'warning' =>
-        'This procedure may take a long time. As the current version does not show any progress while it runs, you will not see anything updated until it is done. In case of timeout error, increase `max_execution_time` value.',
+    'banner' => [
+        'disclaimer' => 'Importing',
+        'text' => '{podcastTitle} is currently being imported.',
+        'cta' => 'See import status',
+    ],
     'old_podcast_section_title' => 'The podcast to import',
-    'old_podcast_section_subtitle' =>
+    'old_podcast_legal_disclaimer_title' => 'Legal disclaimer',
+    'old_podcast_legal_disclaimer' =>
         'Make sure you own the rights for this podcast before importing it. Copying and broadcasting a podcast without the proper rights is piracy and is liable to prosecution.',
     'imported_feed_url' => 'Feed URL',
     'imported_feed_url_hint' => 'The feed must be in xml or rss format.',
     'new_podcast_section_title' => 'The new podcast',
-    'advanced_params_section_title' => 'Advanced parameters',
-    'advanced_params_section_subtitle' =>
-        'Keep the default values if you have no idea of what the fields are for.',
-    'slug_field' => 'Field to be used to calculate episode slug',
-    'description_field' =>
-        'Source field used for episode description / show notes',
-    'force_renumber' => 'Force episodes renumbering',
-    'force_renumber_hint' =>
-        'Use this if your podcast does not have episode numbers but wish to set them during import.',
-    'season_number' => 'Season number',
-    'season_number_hint' =>
-        'Use this if your podcast does not have a season number but wish to set one during import. Leave blank otherwise.',
-    'max_episodes' => 'Maximum number of episodes to import',
-    'max_episodes_hint' => 'Leave blank to import all episodes',
     'lock_import' =>
-        'This feed is protected. You cannot import it. If you are the owner, unprotect it on the origin platform.',
-    'submit' => 'Import podcast',
+        'This feed is protected. You cannot import it. If you are the owner, unlock it on the origin platform.',
+    'submit' => 'Add import to queue',
+    'queue' => [
+        'status' => [
+            'label' => 'Status',
+            'queued' => 'queued',
+            'queued_hint' => 'Import task is awaiting to be processed.',
+            'canceled' => 'canceled',
+            'canceled_hint' => 'Import task was canceled.',
+            'running' => 'running',
+            'running_hint' => 'Import task is being processed.',
+            'failed' => 'failed',
+            'failed_hint' => 'Import task could not complete: script failure.',
+            'passed' => 'passed',
+            'passed_hint' => 'Import task was completed successfully!',
+        ],
+        'feed' => 'Feed',
+        'duration' => 'Import duration',
+        'imported_episodes' => 'Imported episodes',
+        'imported_episodes_hint' => '{newlyImportedCount} newly imported, {alreadyImportedCount} already imported.',
+        'actions' => [
+            'cancel' => 'Cancel',
+            'retry' => 'Retry',
+            'delete' => 'Delete',
+        ],
+    ],
+    'messages' => [
+        'canceled' => 'Import task has been successfully canceled!',
+        'alreadyRunning' => 'Import Task is already running. You may cancel it before retrying.',
+        'retried' => 'Import task has been queued, it will be retried shortly!',
+        'deleted' => 'Import task has been successfully deleted!',
+        'importTaskQueued' => 'An new task has been queued, import will start shortly!',
+        'podcastNotImported' => 'Podcast cannot be synched as it was not imported.',
+        'syncTaskQueued' => 'A new import task has been queued, synchronization will start shortly!',
+    ],
 ];
diff --git a/modules/PodcastImport/Language/it/PodcastImport.php b/modules/PodcastImport/Language/it/PodcastImport.php
index 7c3ef67d1f998b7f3d7e5d658d2ae7b99851f4f5..a89fe03b2162852aea516840d7f1976b80c36e30 100644
--- a/modules/PodcastImport/Language/it/PodcastImport.php
+++ b/modules/PodcastImport/Language/it/PodcastImport.php
@@ -9,29 +9,52 @@ declare(strict_types=1);
  */
 
 return [
-    'warning' =>
-        'This procedure may take a long time. As the current version does not show any progress while it runs, you will not see anything updated until it is done. In case of timeout error, increase `max_execution_time` value.',
+    'banner' => [
+        'disclaimer' => 'Importing',
+        'text' => '{podcastTitle} is currently being imported.',
+        'cta' => 'See import status',
+    ],
     'old_podcast_section_title' => 'The podcast to import',
-    'old_podcast_section_subtitle' =>
+    'old_podcast_legal_disclaimer_title' => 'Legal disclaimer',
+    'old_podcast_legal_disclaimer' =>
         'Make sure you own the rights for this podcast before importing it. Copying and broadcasting a podcast without the proper rights is piracy and is liable to prosecution.',
     'imported_feed_url' => 'Feed URL',
     'imported_feed_url_hint' => 'The feed must be in xml or rss format.',
     'new_podcast_section_title' => 'The new podcast',
-    'advanced_params_section_title' => 'Advanced parameters',
-    'advanced_params_section_subtitle' =>
-        'Keep the default values if you have no idea of what the fields are for.',
-    'slug_field' => 'Field to be used to calculate episode slug',
-    'description_field' =>
-        'Source field used for episode description / show notes',
-    'force_renumber' => 'Force episodes renumbering',
-    'force_renumber_hint' =>
-        'Use this if your podcast does not have episode numbers but wish to set them during import.',
-    'season_number' => 'Season number',
-    'season_number_hint' =>
-        'Use this if your podcast does not have a season number but wish to set one during import. Leave blank otherwise.',
-    'max_episodes' => 'Maximum number of episodes to import',
-    'max_episodes_hint' => 'Leave blank to import all episodes',
     'lock_import' =>
-        'This feed is protected. You cannot import it. If you are the owner, unprotect it on the origin platform.',
-    'submit' => 'Import podcast',
+        'This feed is protected. You cannot import it. If you are the owner, unlock it on the origin platform.',
+    'submit' => 'Add import to queue',
+    'queue' => [
+        'status' => [
+            'label' => 'Status',
+            'queued' => 'queued',
+            'queued_hint' => 'Import task is awaiting to be processed.',
+            'canceled' => 'canceled',
+            'canceled_hint' => 'Import task was canceled.',
+            'running' => 'running',
+            'running_hint' => 'Import task is being processed.',
+            'failed' => 'failed',
+            'failed_hint' => 'Import task could not complete: script failure.',
+            'passed' => 'passed',
+            'passed_hint' => 'Import task was completed successfully!',
+        ],
+        'feed' => 'Feed',
+        'duration' => 'Import duration',
+        'imported_episodes' => 'Imported episodes',
+        'imported_episodes_hint' => '{newlyImportedCount} newly imported, {alreadyImportedCount} already imported.',
+        'actions' => [
+            'cancel' => 'Cancel',
+            'retry' => 'Retry',
+            'delete' => 'Delete',
+        ],
+    ],
+    'messages' => [
+        'canceled' => 'Import task has been successfully canceled!',
+        'alreadyRunning' => 'Import Task is already running. You may cancel it before retrying.',
+        'retried' => 'Import task has been queued, it will be retried shortly!',
+        'deleted' => 'Import task has been successfully deleted!',
+        'importTaskQueued' => 'An new task has been queued, import will start shortly!',
+        'podcastNotImported' => 'Podcast cannot be synched as it was not imported.',
+        'syncTaskQueued' => 'A new import task has been queued, synchronization will start shortly!',
+    ],
 ];
diff --git a/modules/PodcastImport/Language/ko/PodcastImport.php b/modules/PodcastImport/Language/ko/PodcastImport.php
index 7c3ef67d1f998b7f3d7e5d658d2ae7b99851f4f5..a89fe03b2162852aea516840d7f1976b80c36e30 100644
--- a/modules/PodcastImport/Language/ko/PodcastImport.php
+++ b/modules/PodcastImport/Language/ko/PodcastImport.php
@@ -9,29 +9,52 @@ declare(strict_types=1);
  */
 
 return [
-    'warning' =>
-        'This procedure may take a long time. As the current version does not show any progress while it runs, you will not see anything updated until it is done. In case of timeout error, increase `max_execution_time` value.',
+    'banner' => [
+        'disclaimer' => 'Importing',
+        'text' => '{podcastTitle} is currently being imported.',
+        'cta' => 'See import status',
+    ],
     'old_podcast_section_title' => 'The podcast to import',
-    'old_podcast_section_subtitle' =>
+    'old_podcast_legal_disclaimer_title' => 'Legal disclaimer',
+    'old_podcast_legal_disclaimer' =>
         'Make sure you own the rights for this podcast before importing it. Copying and broadcasting a podcast without the proper rights is piracy and is liable to prosecution.',
     'imported_feed_url' => 'Feed URL',
     'imported_feed_url_hint' => 'The feed must be in xml or rss format.',
     'new_podcast_section_title' => 'The new podcast',
-    'advanced_params_section_title' => 'Advanced parameters',
-    'advanced_params_section_subtitle' =>
-        'Keep the default values if you have no idea of what the fields are for.',
-    'slug_field' => 'Field to be used to calculate episode slug',
-    'description_field' =>
-        'Source field used for episode description / show notes',
-    'force_renumber' => 'Force episodes renumbering',
-    'force_renumber_hint' =>
-        'Use this if your podcast does not have episode numbers but wish to set them during import.',
-    'season_number' => 'Season number',
-    'season_number_hint' =>
-        'Use this if your podcast does not have a season number but wish to set one during import. Leave blank otherwise.',
-    'max_episodes' => 'Maximum number of episodes to import',
-    'max_episodes_hint' => 'Leave blank to import all episodes',
     'lock_import' =>
-        'This feed is protected. You cannot import it. If you are the owner, unprotect it on the origin platform.',
-    'submit' => 'Import podcast',
+        'This feed is protected. You cannot import it. If you are the owner, unlock it on the origin platform.',
+    'submit' => 'Add import to queue',
+    'queue' => [
+        'status' => [
+            'label' => 'Status',
+            'queued' => 'queued',
+            'queued_hint' => 'Import task is awaiting to be processed.',
+            'canceled' => 'canceled',
+            'canceled_hint' => 'Import task was canceled.',
+            'running' => 'running',
+            'running_hint' => 'Import task is being processed.',
+            'failed' => 'failed',
+            'failed_hint' => 'Import task could not complete: script failure.',
+            'passed' => 'passed',
+            'passed_hint' => 'Import task was completed successfully!',
+        ],
+        'feed' => 'Feed',
+        'duration' => 'Import duration',
+        'imported_episodes' => 'Imported episodes',
+        'imported_episodes_hint' => '{newlyImportedCount} newly imported, {alreadyImportedCount} already imported.',
+        'actions' => [
+            'cancel' => 'Cancel',
+            'retry' => 'Retry',
+            'delete' => 'Delete',
+        ],
+    ],
+    'messages' => [
+        'canceled' => 'Import task has been successfully canceled!',
+        'alreadyRunning' => 'Import Task is already running. You may cancel it before retrying.',
+        'retried' => 'Import task has been queued, it will be retried shortly!',
+        'deleted' => 'Import task has been successfully deleted!',
+        'importTaskQueued' => 'An new task has been queued, import will start shortly!',
+        'podcastNotImported' => 'Podcast cannot be synched as it was not imported.',
+        'syncTaskQueued' => 'A new import task has been queued, synchronization will start shortly!',
+    ],
 ];
diff --git a/modules/PodcastImport/Language/nl/PodcastImport.php b/modules/PodcastImport/Language/nl/PodcastImport.php
index 7c3ef67d1f998b7f3d7e5d658d2ae7b99851f4f5..a89fe03b2162852aea516840d7f1976b80c36e30 100644
--- a/modules/PodcastImport/Language/nl/PodcastImport.php
+++ b/modules/PodcastImport/Language/nl/PodcastImport.php
@@ -9,29 +9,52 @@ declare(strict_types=1);
  */
 
 return [
-    'warning' =>
-        'This procedure may take a long time. As the current version does not show any progress while it runs, you will not see anything updated until it is done. In case of timeout error, increase `max_execution_time` value.',
+    'banner' => [
+        'disclaimer' => 'Importing',
+        'text' => '{podcastTitle} is currently being imported.',
+        'cta' => 'See import status',
+    ],
     'old_podcast_section_title' => 'The podcast to import',
-    'old_podcast_section_subtitle' =>
+    'old_podcast_legal_disclaimer_title' => 'Legal disclaimer',
+    'old_podcast_legal_disclaimer' =>
         'Make sure you own the rights for this podcast before importing it. Copying and broadcasting a podcast without the proper rights is piracy and is liable to prosecution.',
     'imported_feed_url' => 'Feed URL',
     'imported_feed_url_hint' => 'The feed must be in xml or rss format.',
     'new_podcast_section_title' => 'The new podcast',
-    'advanced_params_section_title' => 'Advanced parameters',
-    'advanced_params_section_subtitle' =>
-        'Keep the default values if you have no idea of what the fields are for.',
-    'slug_field' => 'Field to be used to calculate episode slug',
-    'description_field' =>
-        'Source field used for episode description / show notes',
-    'force_renumber' => 'Force episodes renumbering',
-    'force_renumber_hint' =>
-        'Use this if your podcast does not have episode numbers but wish to set them during import.',
-    'season_number' => 'Season number',
-    'season_number_hint' =>
-        'Use this if your podcast does not have a season number but wish to set one during import. Leave blank otherwise.',
-    'max_episodes' => 'Maximum number of episodes to import',
-    'max_episodes_hint' => 'Leave blank to import all episodes',
     'lock_import' =>
-        'This feed is protected. You cannot import it. If you are the owner, unprotect it on the origin platform.',
-    'submit' => 'Import podcast',
+        'This feed is protected. You cannot import it. If you are the owner, unlock it on the origin platform.',
+    'submit' => 'Add import to queue',
+    'queue' => [
+        'status' => [
+            'label' => 'Status',
+            'queued' => 'queued',
+            'queued_hint' => 'Import task is awaiting to be processed.',
+            'canceled' => 'canceled',
+            'canceled_hint' => 'Import task was canceled.',
+            'running' => 'running',
+            'running_hint' => 'Import task is being processed.',
+            'failed' => 'failed',
+            'failed_hint' => 'Import task could not complete: script failure.',
+            'passed' => 'passed',
+            'passed_hint' => 'Import task was completed successfully!',
+        ],
+        'feed' => 'Feed',
+        'duration' => 'Import duration',
+        'imported_episodes' => 'Imported episodes',
+        'imported_episodes_hint' => '{newlyImportedCount} newly imported, {alreadyImportedCount} already imported.',
+        'actions' => [
+            'cancel' => 'Cancel',
+            'retry' => 'Retry',
+            'delete' => 'Delete',
+        ],
+    ],
+    'messages' => [
+        'canceled' => 'Import task has been successfully canceled!',
+        'alreadyRunning' => 'Import Task is already running. You may cancel it before retrying.',
+        'retried' => 'Import task has been queued, it will be retried shortly!',
+        'deleted' => 'Import task has been successfully deleted!',
+        'importTaskQueued' => 'An new task has been queued, import will start shortly!',
+        'podcastNotImported' => 'Podcast cannot be synched as it was not imported.',
+        'syncTaskQueued' => 'A new import task has been queued, synchronization will start shortly!',
+    ],
 ];
diff --git a/modules/PodcastImport/Language/nn-NO/PodcastImport.php b/modules/PodcastImport/Language/nn-NO/PodcastImport.php
index 9a27842a45eb19537f00bab97e27517fb9e361b2..a89fe03b2162852aea516840d7f1976b80c36e30 100644
--- a/modules/PodcastImport/Language/nn-NO/PodcastImport.php
+++ b/modules/PodcastImport/Language/nn-NO/PodcastImport.php
@@ -9,29 +9,52 @@ declare(strict_types=1);
  */
 
 return [
-    'warning' =>
-        'Dette kan ta lang tid. Denne versjonen syner ikkje framgangen medan importen går, så du vil ikkje sjå noko før han er ferdig. Viss du får feil med tidsavbrot, aukar du `max_execution_time`-verdien.',
-    'old_podcast_section_title' => 'Podkast å importera',
-    'old_podcast_section_subtitle' =>
-        'Syt for at du har rettane til podkasten før du importerer han. Å kopiera og kringkasta ein podkast utan løyve er ulovleg og straffbart.',
-    'imported_feed_url' => 'URL til straumen',
-    'imported_feed_url_hint' => 'Straumen må vera i xml- eller rss-format.',
-    'new_podcast_section_title' => 'Den nye podkasten',
-    'advanced_params_section_title' => 'Avanserte innstilingar',
-    'advanced_params_section_subtitle' =>
-        'Bruk standardverdiane viss du ikkje veit kva desse felta er til.',
-    'slug_field' => 'Felt som skal brukast til å laga kortadressa til episoden',
-    'description_field' =>
-        'Kjeldefelt som skal brukast for å skildra episoden og syna notat',
-    'force_renumber' => 'Tving renummerering av episodane',
-    'force_renumber_hint' =>
-        'Bruk dette viss podkasten din ikkje har episodenummer, men du vil laga nummer når du importerer.',
-    'season_number' => 'Sesongnummer',
-    'season_number_hint' =>
-        'Bruk dette viss podkasten din ikkje har eit sesongnummer, men du vil laga eit når du importerer. La stå tomt i andre tilfelle.',
-    'max_episodes' => 'Makstal på episodar å importera',
-    'max_episodes_hint' => 'La stå tomt for å importera alle episodane',
+    'banner' => [
+        'disclaimer' => 'Importing',
+        'text' => '{podcastTitle} is currently being imported.',
+        'cta' => 'See import status',
+    ],
+    'old_podcast_section_title' => 'The podcast to import',
+    'old_podcast_legal_disclaimer_title' => 'Legal disclaimer',
+    'old_podcast_legal_disclaimer' =>
+        'Make sure you own the rights for this podcast before importing it. Copying and broadcasting a podcast without the proper rights is piracy and is liable to prosecution.',
+    'imported_feed_url' => 'Feed URL',
+    'imported_feed_url_hint' => 'The feed must be in xml or rss format.',
+    'new_podcast_section_title' => 'The new podcast',
     'lock_import' =>
-        'Denne straumen er verna. Du kan ikkje importera han. Viss du er eigaren, må du ta bort vernet på den originale plattforma.',
-    'submit' => 'Importer ein podkast',
+        'This feed is protected. You cannot import it. If you are the owner, unlock it on the origin platform.',
+    'submit' => 'Add import to queue',
+    'queue' => [
+        'status' => [
+            'label' => 'Status',
+            'queued' => 'queued',
+            'queued_hint' => 'Import task is awaiting to be processed.',
+            'canceled' => 'canceled',
+            'canceled_hint' => 'Import task was canceled.',
+            'running' => 'running',
+            'running_hint' => 'Import task is being processed.',
+            'failed' => 'failed',
+            'failed_hint' => 'Import task could not complete: script failure.',
+            'passed' => 'passed',
+            'passed_hint' => 'Import task was completed successfully!',
+        ],
+        'feed' => 'Feed',
+        'duration' => 'Import duration',
+        'imported_episodes' => 'Imported episodes',
+        'imported_episodes_hint' => '{newlyImportedCount} newly imported, {alreadyImportedCount} already imported.',
+        'actions' => [
+            'cancel' => 'Cancel',
+            'retry' => 'Retry',
+            'delete' => 'Delete',
+        ],
+    ],
+    'messages' => [
+        'canceled' => 'Import task has been successfully canceled!',
+        'alreadyRunning' => 'Import Task is already running. You may cancel it before retrying.',
+        'retried' => 'Import task has been queued, it will be retried shortly!',
+        'deleted' => 'Import task has been successfully deleted!',
+        'importTaskQueued' => 'An new task has been queued, import will start shortly!',
+        'podcastNotImported' => 'Podcast cannot be synched as it was not imported.',
+        'syncTaskQueued' => 'A new import task has been queued, synchronization will start shortly!',
+    ],
 ];
diff --git a/modules/PodcastImport/Language/oc/PodcastImport.php b/modules/PodcastImport/Language/oc/PodcastImport.php
index 7c3ef67d1f998b7f3d7e5d658d2ae7b99851f4f5..a89fe03b2162852aea516840d7f1976b80c36e30 100644
--- a/modules/PodcastImport/Language/oc/PodcastImport.php
+++ b/modules/PodcastImport/Language/oc/PodcastImport.php
@@ -9,29 +9,52 @@ declare(strict_types=1);
  */
 
 return [
-    'warning' =>
-        'This procedure may take a long time. As the current version does not show any progress while it runs, you will not see anything updated until it is done. In case of timeout error, increase `max_execution_time` value.',
+    'banner' => [
+        'disclaimer' => 'Importing',
+        'text' => '{podcastTitle} is currently being imported.',
+        'cta' => 'See import status',
+    ],
     'old_podcast_section_title' => 'The podcast to import',
-    'old_podcast_section_subtitle' =>
+    'old_podcast_legal_disclaimer_title' => 'Legal disclaimer',
+    'old_podcast_legal_disclaimer' =>
         'Make sure you own the rights for this podcast before importing it. Copying and broadcasting a podcast without the proper rights is piracy and is liable to prosecution.',
     'imported_feed_url' => 'Feed URL',
     'imported_feed_url_hint' => 'The feed must be in xml or rss format.',
     'new_podcast_section_title' => 'The new podcast',
-    'advanced_params_section_title' => 'Advanced parameters',
-    'advanced_params_section_subtitle' =>
-        'Keep the default values if you have no idea of what the fields are for.',
-    'slug_field' => 'Field to be used to calculate episode slug',
-    'description_field' =>
-        'Source field used for episode description / show notes',
-    'force_renumber' => 'Force episodes renumbering',
-    'force_renumber_hint' =>
-        'Use this if your podcast does not have episode numbers but wish to set them during import.',
-    'season_number' => 'Season number',
-    'season_number_hint' =>
-        'Use this if your podcast does not have a season number but wish to set one during import. Leave blank otherwise.',
-    'max_episodes' => 'Maximum number of episodes to import',
-    'max_episodes_hint' => 'Leave blank to import all episodes',
     'lock_import' =>
-        'This feed is protected. You cannot import it. If you are the owner, unprotect it on the origin platform.',
-    'submit' => 'Import podcast',
+        'This feed is protected. You cannot import it. If you are the owner, unlock it on the origin platform.',
+    'submit' => 'Add import to queue',
+    'queue' => [
+        'status' => [
+            'label' => 'Status',
+            'queued' => 'queued',
+            'queued_hint' => 'Import task is awaiting to be processed.',
+            'canceled' => 'canceled',
+            'canceled_hint' => 'Import task was canceled.',
+            'running' => 'running',
+            'running_hint' => 'Import task is being processed.',
+            'failed' => 'failed',
+            'failed_hint' => 'Import task could not complete: script failure.',
+            'passed' => 'passed',
+            'passed_hint' => 'Import task was completed successfully!',
+        ],
+        'feed' => 'Feed',
+        'duration' => 'Import duration',
+        'imported_episodes' => 'Imported episodes',
+        'imported_episodes_hint' => '{newlyImportedCount} newly imported, {alreadyImportedCount} already imported.',
+        'actions' => [
+            'cancel' => 'Cancel',
+            'retry' => 'Retry',
+            'delete' => 'Delete',
+        ],
+    ],
+    'messages' => [
+        'canceled' => 'Import task has been successfully canceled!',
+        'alreadyRunning' => 'Import Task is already running. You may cancel it before retrying.',
+        'retried' => 'Import task has been queued, it will be retried shortly!',
+        'deleted' => 'Import task has been successfully deleted!',
+        'importTaskQueued' => 'An new task has been queued, import will start shortly!',
+        'podcastNotImported' => 'Podcast cannot be synched as it was not imported.',
+        'syncTaskQueued' => 'A new import task has been queued, synchronization will start shortly!',
+    ],
 ];
diff --git a/modules/PodcastImport/Language/pl/PodcastImport.php b/modules/PodcastImport/Language/pl/PodcastImport.php
index eeceb4fd16fc5125ef73565f4f199d74d0b6c30d..a89fe03b2162852aea516840d7f1976b80c36e30 100644
--- a/modules/PodcastImport/Language/pl/PodcastImport.php
+++ b/modules/PodcastImport/Language/pl/PodcastImport.php
@@ -9,29 +9,52 @@ declare(strict_types=1);
  */
 
 return [
-    'warning' =>
-        'Ta procedura może zająć dużo czasu. Ponieważ bieżąca wersja nie pokazuje żadnego postępu podczas działania, nie zobaczysz żadnych aktualizacji dopóki nie zostanie wykonana. W przypadku błędu przekroczenia limitu czasu, zwiększ wartość `max_execution_time`.',
-    'old_podcast_section_title' => 'Podcast do zaimportowania',
-    'old_podcast_section_subtitle' =>
-        'Upewnij się, że masz prawa do tego podcastu zanim go zaimportujesz. Kopiowanie i nadawanie podcastu bez odpowiednich praw jest piractwem i podlega ściganiu.',
-    'imported_feed_url' => 'Adres URL kanału',
-    'imported_feed_url_hint' => 'Kanał musi być w formacie xml lub rss.',
-    'new_podcast_section_title' => 'Nowy podcast',
-    'advanced_params_section_title' => 'Parametry zaawansowane',
-    'advanced_params_section_subtitle' =>
-        'Zachowaj wartości domyślne jeśli nie masz pojęcia, do czego służą te pola.',
-    'slug_field' => 'Pole używane do obliczenia slugu odcinka',
-    'description_field' =>
-        'Pole źródłowe używane do opisu odcinka/notatek programu',
-    'force_renumber' => 'Wymuś przenumerowanie odcinków',
-    'force_renumber_hint' =>
-        'Użyj tego, jeśli Twój podcast nie ma numerów odcinków, ale chcesz je ustawić podczas importu.',
-    'season_number' => 'Numer sezonu',
-    'season_number_hint' =>
-        'Użyj tego, jeśli Twój podcast nie ma numeru sezonu, ale chcesz go ustawić podczas importu. W przeciwnym razie pozostaw pusty.',
-    'max_episodes' => 'Maksymalna liczba odcinków do zaimportowania',
-    'max_episodes_hint' => 'Pozostaw puste, aby zaimportować wszystkie odcinki',
+    'banner' => [
+        'disclaimer' => 'Importing',
+        'text' => '{podcastTitle} is currently being imported.',
+        'cta' => 'See import status',
+    ],
+    'old_podcast_section_title' => 'The podcast to import',
+    'old_podcast_legal_disclaimer_title' => 'Legal disclaimer',
+    'old_podcast_legal_disclaimer' =>
+        'Make sure you own the rights for this podcast before importing it. Copying and broadcasting a podcast without the proper rights is piracy and is liable to prosecution.',
+    'imported_feed_url' => 'Feed URL',
+    'imported_feed_url_hint' => 'The feed must be in xml or rss format.',
+    'new_podcast_section_title' => 'The new podcast',
     'lock_import' =>
-        'Ten kanał jest chroniony. Nie możesz go zaimportować. Jeśli jesteś jego właścicielem - usuń ochronę na platformie, z której pochodzi.',
-    'submit' => 'Importuj podcast',
+        'This feed is protected. You cannot import it. If you are the owner, unlock it on the origin platform.',
+    'submit' => 'Add import to queue',
+    'queue' => [
+        'status' => [
+            'label' => 'Status',
+            'queued' => 'queued',
+            'queued_hint' => 'Import task is awaiting to be processed.',
+            'canceled' => 'canceled',
+            'canceled_hint' => 'Import task was canceled.',
+            'running' => 'running',
+            'running_hint' => 'Import task is being processed.',
+            'failed' => 'failed',
+            'failed_hint' => 'Import task could not complete: script failure.',
+            'passed' => 'passed',
+            'passed_hint' => 'Import task was completed successfully!',
+        ],
+        'feed' => 'Feed',
+        'duration' => 'Import duration',
+        'imported_episodes' => 'Imported episodes',
+        'imported_episodes_hint' => '{newlyImportedCount} newly imported, {alreadyImportedCount} already imported.',
+        'actions' => [
+            'cancel' => 'Cancel',
+            'retry' => 'Retry',
+            'delete' => 'Delete',
+        ],
+    ],
+    'messages' => [
+        'canceled' => 'Import task has been successfully canceled!',
+        'alreadyRunning' => 'Import Task is already running. You may cancel it before retrying.',
+        'retried' => 'Import task has been queued, it will be retried shortly!',
+        'deleted' => 'Import task has been successfully deleted!',
+        'importTaskQueued' => 'An new task has been queued, import will start shortly!',
+        'podcastNotImported' => 'Podcast cannot be synched as it was not imported.',
+        'syncTaskQueued' => 'A new import task has been queued, synchronization will start shortly!',
+    ],
 ];
diff --git a/modules/PodcastImport/Language/pt-BR/PodcastImport.php b/modules/PodcastImport/Language/pt-BR/PodcastImport.php
index 97dd95c28a58048f5d2164a376e1c247081ac647..a89fe03b2162852aea516840d7f1976b80c36e30 100644
--- a/modules/PodcastImport/Language/pt-BR/PodcastImport.php
+++ b/modules/PodcastImport/Language/pt-BR/PodcastImport.php
@@ -9,29 +9,52 @@ declare(strict_types=1);
  */
 
 return [
-    'warning' =>
-        'Este procedimento pode levar muito tempo. Como a versão atual não mostra nenhum progresso durante a execução, você não verá nada atualizado até que seja finalizado. Em caso de erro de tempo limite, aumente o valor de `max_execution_time`.',
-    'old_podcast_section_title' => 'O podcast para importar',
-    'old_podcast_section_subtitle' =>
-        'Certifique-se de possuir os direitos para esse podcast antes de importá-lo. Copiar e transmitir um podcast sem os direitos adequados é uma pirataria e corre o risco de ser processado.',
-    'imported_feed_url' => 'URL do feed',
-    'imported_feed_url_hint' => 'O feed deve estar no formato xml ou rss.',
-    'new_podcast_section_title' => 'O novo podcast',
-    'advanced_params_section_title' => 'Parâmetros avançados',
-    'advanced_params_section_subtitle' =>
-        'Mantenha os valores padrão se você não tiver ideia do que os campos servem.',
-    'slug_field' => 'Campo a ser usado para calcular o slug do episódio',
-    'description_field' =>
-        'Campo de origem usado para descrição do episódio / mostrar notas',
-    'force_renumber' => 'Forçar renumeração de episódios',
-    'force_renumber_hint' =>
-        'Use isto se seu podcast não tem números de episódio, mas deseja configurá-los durante a importação.',
-    'season_number' => 'Número da temporada',
-    'season_number_hint' =>
-        'Use isto se o seu podcast não tem um número de temporada, mas deseja definir um durante a importação. Deixe em branco caso contrário.',
-    'max_episodes' => 'Número máximo de episódios para importar',
-    'max_episodes_hint' => 'Deixe em branco para importar todos os episódios',
+    'banner' => [
+        'disclaimer' => 'Importing',
+        'text' => '{podcastTitle} is currently being imported.',
+        'cta' => 'See import status',
+    ],
+    'old_podcast_section_title' => 'The podcast to import',
+    'old_podcast_legal_disclaimer_title' => 'Legal disclaimer',
+    'old_podcast_legal_disclaimer' =>
+        'Make sure you own the rights for this podcast before importing it. Copying and broadcasting a podcast without the proper rights is piracy and is liable to prosecution.',
+    'imported_feed_url' => 'Feed URL',
+    'imported_feed_url_hint' => 'The feed must be in xml or rss format.',
+    'new_podcast_section_title' => 'The new podcast',
     'lock_import' =>
-        'Este feed está protegido. Você não pode importá-lo. Se você é o proprietário, desproteja-o na plataforma de origem.',
-    'submit' => 'Importar podcast',
+        'This feed is protected. You cannot import it. If you are the owner, unlock it on the origin platform.',
+    'submit' => 'Add import to queue',
+    'queue' => [
+        'status' => [
+            'label' => 'Status',
+            'queued' => 'queued',
+            'queued_hint' => 'Import task is awaiting to be processed.',
+            'canceled' => 'canceled',
+            'canceled_hint' => 'Import task was canceled.',
+            'running' => 'running',
+            'running_hint' => 'Import task is being processed.',
+            'failed' => 'failed',
+            'failed_hint' => 'Import task could not complete: script failure.',
+            'passed' => 'passed',
+            'passed_hint' => 'Import task was completed successfully!',
+        ],
+        'feed' => 'Feed',
+        'duration' => 'Import duration',
+        'imported_episodes' => 'Imported episodes',
+        'imported_episodes_hint' => '{newlyImportedCount} newly imported, {alreadyImportedCount} already imported.',
+        'actions' => [
+            'cancel' => 'Cancel',
+            'retry' => 'Retry',
+            'delete' => 'Delete',
+        ],
+    ],
+    'messages' => [
+        'canceled' => 'Import task has been successfully canceled!',
+        'alreadyRunning' => 'Import Task is already running. You may cancel it before retrying.',
+        'retried' => 'Import task has been queued, it will be retried shortly!',
+        'deleted' => 'Import task has been successfully deleted!',
+        'importTaskQueued' => 'An new task has been queued, import will start shortly!',
+        'podcastNotImported' => 'Podcast cannot be synched as it was not imported.',
+        'syncTaskQueued' => 'A new import task has been queued, synchronization will start shortly!',
+    ],
 ];
diff --git a/modules/PodcastImport/Language/pt/PodcastImport.php b/modules/PodcastImport/Language/pt/PodcastImport.php
index 7c3ef67d1f998b7f3d7e5d658d2ae7b99851f4f5..a89fe03b2162852aea516840d7f1976b80c36e30 100644
--- a/modules/PodcastImport/Language/pt/PodcastImport.php
+++ b/modules/PodcastImport/Language/pt/PodcastImport.php
@@ -9,29 +9,52 @@ declare(strict_types=1);
  */
 
 return [
-    'warning' =>
-        'This procedure may take a long time. As the current version does not show any progress while it runs, you will not see anything updated until it is done. In case of timeout error, increase `max_execution_time` value.',
+    'banner' => [
+        'disclaimer' => 'Importing',
+        'text' => '{podcastTitle} is currently being imported.',
+        'cta' => 'See import status',
+    ],
     'old_podcast_section_title' => 'The podcast to import',
-    'old_podcast_section_subtitle' =>
+    'old_podcast_legal_disclaimer_title' => 'Legal disclaimer',
+    'old_podcast_legal_disclaimer' =>
         'Make sure you own the rights for this podcast before importing it. Copying and broadcasting a podcast without the proper rights is piracy and is liable to prosecution.',
     'imported_feed_url' => 'Feed URL',
     'imported_feed_url_hint' => 'The feed must be in xml or rss format.',
     'new_podcast_section_title' => 'The new podcast',
-    'advanced_params_section_title' => 'Advanced parameters',
-    'advanced_params_section_subtitle' =>
-        'Keep the default values if you have no idea of what the fields are for.',
-    'slug_field' => 'Field to be used to calculate episode slug',
-    'description_field' =>
-        'Source field used for episode description / show notes',
-    'force_renumber' => 'Force episodes renumbering',
-    'force_renumber_hint' =>
-        'Use this if your podcast does not have episode numbers but wish to set them during import.',
-    'season_number' => 'Season number',
-    'season_number_hint' =>
-        'Use this if your podcast does not have a season number but wish to set one during import. Leave blank otherwise.',
-    'max_episodes' => 'Maximum number of episodes to import',
-    'max_episodes_hint' => 'Leave blank to import all episodes',
     'lock_import' =>
-        'This feed is protected. You cannot import it. If you are the owner, unprotect it on the origin platform.',
-    'submit' => 'Import podcast',
+        'This feed is protected. You cannot import it. If you are the owner, unlock it on the origin platform.',
+    'submit' => 'Add import to queue',
+    'queue' => [
+        'status' => [
+            'label' => 'Status',
+            'queued' => 'queued',
+            'queued_hint' => 'Import task is awaiting to be processed.',
+            'canceled' => 'canceled',
+            'canceled_hint' => 'Import task was canceled.',
+            'running' => 'running',
+            'running_hint' => 'Import task is being processed.',
+            'failed' => 'failed',
+            'failed_hint' => 'Import task could not complete: script failure.',
+            'passed' => 'passed',
+            'passed_hint' => 'Import task was completed successfully!',
+        ],
+        'feed' => 'Feed',
+        'duration' => 'Import duration',
+        'imported_episodes' => 'Imported episodes',
+        'imported_episodes_hint' => '{newlyImportedCount} newly imported, {alreadyImportedCount} already imported.',
+        'actions' => [
+            'cancel' => 'Cancel',
+            'retry' => 'Retry',
+            'delete' => 'Delete',
+        ],
+    ],
+    'messages' => [
+        'canceled' => 'Import task has been successfully canceled!',
+        'alreadyRunning' => 'Import Task is already running. You may cancel it before retrying.',
+        'retried' => 'Import task has been queued, it will be retried shortly!',
+        'deleted' => 'Import task has been successfully deleted!',
+        'importTaskQueued' => 'An new task has been queued, import will start shortly!',
+        'podcastNotImported' => 'Podcast cannot be synched as it was not imported.',
+        'syncTaskQueued' => 'A new import task has been queued, synchronization will start shortly!',
+    ],
 ];
diff --git a/modules/PodcastImport/Language/ro/PodcastImport.php b/modules/PodcastImport/Language/ro/PodcastImport.php
index 7c3ef67d1f998b7f3d7e5d658d2ae7b99851f4f5..a89fe03b2162852aea516840d7f1976b80c36e30 100644
--- a/modules/PodcastImport/Language/ro/PodcastImport.php
+++ b/modules/PodcastImport/Language/ro/PodcastImport.php
@@ -9,29 +9,52 @@ declare(strict_types=1);
  */
 
 return [
-    'warning' =>
-        'This procedure may take a long time. As the current version does not show any progress while it runs, you will not see anything updated until it is done. In case of timeout error, increase `max_execution_time` value.',
+    'banner' => [
+        'disclaimer' => 'Importing',
+        'text' => '{podcastTitle} is currently being imported.',
+        'cta' => 'See import status',
+    ],
     'old_podcast_section_title' => 'The podcast to import',
-    'old_podcast_section_subtitle' =>
+    'old_podcast_legal_disclaimer_title' => 'Legal disclaimer',
+    'old_podcast_legal_disclaimer' =>
         'Make sure you own the rights for this podcast before importing it. Copying and broadcasting a podcast without the proper rights is piracy and is liable to prosecution.',
     'imported_feed_url' => 'Feed URL',
     'imported_feed_url_hint' => 'The feed must be in xml or rss format.',
     'new_podcast_section_title' => 'The new podcast',
-    'advanced_params_section_title' => 'Advanced parameters',
-    'advanced_params_section_subtitle' =>
-        'Keep the default values if you have no idea of what the fields are for.',
-    'slug_field' => 'Field to be used to calculate episode slug',
-    'description_field' =>
-        'Source field used for episode description / show notes',
-    'force_renumber' => 'Force episodes renumbering',
-    'force_renumber_hint' =>
-        'Use this if your podcast does not have episode numbers but wish to set them during import.',
-    'season_number' => 'Season number',
-    'season_number_hint' =>
-        'Use this if your podcast does not have a season number but wish to set one during import. Leave blank otherwise.',
-    'max_episodes' => 'Maximum number of episodes to import',
-    'max_episodes_hint' => 'Leave blank to import all episodes',
     'lock_import' =>
-        'This feed is protected. You cannot import it. If you are the owner, unprotect it on the origin platform.',
-    'submit' => 'Import podcast',
+        'This feed is protected. You cannot import it. If you are the owner, unlock it on the origin platform.',
+    'submit' => 'Add import to queue',
+    'queue' => [
+        'status' => [
+            'label' => 'Status',
+            'queued' => 'queued',
+            'queued_hint' => 'Import task is awaiting to be processed.',
+            'canceled' => 'canceled',
+            'canceled_hint' => 'Import task was canceled.',
+            'running' => 'running',
+            'running_hint' => 'Import task is being processed.',
+            'failed' => 'failed',
+            'failed_hint' => 'Import task could not complete: script failure.',
+            'passed' => 'passed',
+            'passed_hint' => 'Import task was completed successfully!',
+        ],
+        'feed' => 'Feed',
+        'duration' => 'Import duration',
+        'imported_episodes' => 'Imported episodes',
+        'imported_episodes_hint' => '{newlyImportedCount} newly imported, {alreadyImportedCount} already imported.',
+        'actions' => [
+            'cancel' => 'Cancel',
+            'retry' => 'Retry',
+            'delete' => 'Delete',
+        ],
+    ],
+    'messages' => [
+        'canceled' => 'Import task has been successfully canceled!',
+        'alreadyRunning' => 'Import Task is already running. You may cancel it before retrying.',
+        'retried' => 'Import task has been queued, it will be retried shortly!',
+        'deleted' => 'Import task has been successfully deleted!',
+        'importTaskQueued' => 'An new task has been queued, import will start shortly!',
+        'podcastNotImported' => 'Podcast cannot be synched as it was not imported.',
+        'syncTaskQueued' => 'A new import task has been queued, synchronization will start shortly!',
+    ],
 ];
diff --git a/modules/PodcastImport/Language/ru/PodcastImport.php b/modules/PodcastImport/Language/ru/PodcastImport.php
index 7c3ef67d1f998b7f3d7e5d658d2ae7b99851f4f5..a89fe03b2162852aea516840d7f1976b80c36e30 100644
--- a/modules/PodcastImport/Language/ru/PodcastImport.php
+++ b/modules/PodcastImport/Language/ru/PodcastImport.php
@@ -9,29 +9,52 @@ declare(strict_types=1);
  */
 
 return [
-    'warning' =>
-        'This procedure may take a long time. As the current version does not show any progress while it runs, you will not see anything updated until it is done. In case of timeout error, increase `max_execution_time` value.',
+    'banner' => [
+        'disclaimer' => 'Importing',
+        'text' => '{podcastTitle} is currently being imported.',
+        'cta' => 'See import status',
+    ],
     'old_podcast_section_title' => 'The podcast to import',
-    'old_podcast_section_subtitle' =>
+    'old_podcast_legal_disclaimer_title' => 'Legal disclaimer',
+    'old_podcast_legal_disclaimer' =>
         'Make sure you own the rights for this podcast before importing it. Copying and broadcasting a podcast without the proper rights is piracy and is liable to prosecution.',
     'imported_feed_url' => 'Feed URL',
     'imported_feed_url_hint' => 'The feed must be in xml or rss format.',
     'new_podcast_section_title' => 'The new podcast',
-    'advanced_params_section_title' => 'Advanced parameters',
-    'advanced_params_section_subtitle' =>
-        'Keep the default values if you have no idea of what the fields are for.',
-    'slug_field' => 'Field to be used to calculate episode slug',
-    'description_field' =>
-        'Source field used for episode description / show notes',
-    'force_renumber' => 'Force episodes renumbering',
-    'force_renumber_hint' =>
-        'Use this if your podcast does not have episode numbers but wish to set them during import.',
-    'season_number' => 'Season number',
-    'season_number_hint' =>
-        'Use this if your podcast does not have a season number but wish to set one during import. Leave blank otherwise.',
-    'max_episodes' => 'Maximum number of episodes to import',
-    'max_episodes_hint' => 'Leave blank to import all episodes',
     'lock_import' =>
-        'This feed is protected. You cannot import it. If you are the owner, unprotect it on the origin platform.',
-    'submit' => 'Import podcast',
+        'This feed is protected. You cannot import it. If you are the owner, unlock it on the origin platform.',
+    'submit' => 'Add import to queue',
+    'queue' => [
+        'status' => [
+            'label' => 'Status',
+            'queued' => 'queued',
+            'queued_hint' => 'Import task is awaiting to be processed.',
+            'canceled' => 'canceled',
+            'canceled_hint' => 'Import task was canceled.',
+            'running' => 'running',
+            'running_hint' => 'Import task is being processed.',
+            'failed' => 'failed',
+            'failed_hint' => 'Import task could not complete: script failure.',
+            'passed' => 'passed',
+            'passed_hint' => 'Import task was completed successfully!',
+        ],
+        'feed' => 'Feed',
+        'duration' => 'Import duration',
+        'imported_episodes' => 'Imported episodes',
+        'imported_episodes_hint' => '{newlyImportedCount} newly imported, {alreadyImportedCount} already imported.',
+        'actions' => [
+            'cancel' => 'Cancel',
+            'retry' => 'Retry',
+            'delete' => 'Delete',
+        ],
+    ],
+    'messages' => [
+        'canceled' => 'Import task has been successfully canceled!',
+        'alreadyRunning' => 'Import Task is already running. You may cancel it before retrying.',
+        'retried' => 'Import task has been queued, it will be retried shortly!',
+        'deleted' => 'Import task has been successfully deleted!',
+        'importTaskQueued' => 'An new task has been queued, import will start shortly!',
+        'podcastNotImported' => 'Podcast cannot be synched as it was not imported.',
+        'syncTaskQueued' => 'A new import task has been queued, synchronization will start shortly!',
+    ],
 ];
diff --git a/modules/PodcastImport/Language/sk/PodcastImport.php b/modules/PodcastImport/Language/sk/PodcastImport.php
index 7c3ef67d1f998b7f3d7e5d658d2ae7b99851f4f5..a89fe03b2162852aea516840d7f1976b80c36e30 100644
--- a/modules/PodcastImport/Language/sk/PodcastImport.php
+++ b/modules/PodcastImport/Language/sk/PodcastImport.php
@@ -9,29 +9,52 @@ declare(strict_types=1);
  */
 
 return [
-    'warning' =>
-        'This procedure may take a long time. As the current version does not show any progress while it runs, you will not see anything updated until it is done. In case of timeout error, increase `max_execution_time` value.',
+    'banner' => [
+        'disclaimer' => 'Importing',
+        'text' => '{podcastTitle} is currently being imported.',
+        'cta' => 'See import status',
+    ],
     'old_podcast_section_title' => 'The podcast to import',
-    'old_podcast_section_subtitle' =>
+    'old_podcast_legal_disclaimer_title' => 'Legal disclaimer',
+    'old_podcast_legal_disclaimer' =>
         'Make sure you own the rights for this podcast before importing it. Copying and broadcasting a podcast without the proper rights is piracy and is liable to prosecution.',
     'imported_feed_url' => 'Feed URL',
     'imported_feed_url_hint' => 'The feed must be in xml or rss format.',
     'new_podcast_section_title' => 'The new podcast',
-    'advanced_params_section_title' => 'Advanced parameters',
-    'advanced_params_section_subtitle' =>
-        'Keep the default values if you have no idea of what the fields are for.',
-    'slug_field' => 'Field to be used to calculate episode slug',
-    'description_field' =>
-        'Source field used for episode description / show notes',
-    'force_renumber' => 'Force episodes renumbering',
-    'force_renumber_hint' =>
-        'Use this if your podcast does not have episode numbers but wish to set them during import.',
-    'season_number' => 'Season number',
-    'season_number_hint' =>
-        'Use this if your podcast does not have a season number but wish to set one during import. Leave blank otherwise.',
-    'max_episodes' => 'Maximum number of episodes to import',
-    'max_episodes_hint' => 'Leave blank to import all episodes',
     'lock_import' =>
-        'This feed is protected. You cannot import it. If you are the owner, unprotect it on the origin platform.',
-    'submit' => 'Import podcast',
+        'This feed is protected. You cannot import it. If you are the owner, unlock it on the origin platform.',
+    'submit' => 'Add import to queue',
+    'queue' => [
+        'status' => [
+            'label' => 'Status',
+            'queued' => 'queued',
+            'queued_hint' => 'Import task is awaiting to be processed.',
+            'canceled' => 'canceled',
+            'canceled_hint' => 'Import task was canceled.',
+            'running' => 'running',
+            'running_hint' => 'Import task is being processed.',
+            'failed' => 'failed',
+            'failed_hint' => 'Import task could not complete: script failure.',
+            'passed' => 'passed',
+            'passed_hint' => 'Import task was completed successfully!',
+        ],
+        'feed' => 'Feed',
+        'duration' => 'Import duration',
+        'imported_episodes' => 'Imported episodes',
+        'imported_episodes_hint' => '{newlyImportedCount} newly imported, {alreadyImportedCount} already imported.',
+        'actions' => [
+            'cancel' => 'Cancel',
+            'retry' => 'Retry',
+            'delete' => 'Delete',
+        ],
+    ],
+    'messages' => [
+        'canceled' => 'Import task has been successfully canceled!',
+        'alreadyRunning' => 'Import Task is already running. You may cancel it before retrying.',
+        'retried' => 'Import task has been queued, it will be retried shortly!',
+        'deleted' => 'Import task has been successfully deleted!',
+        'importTaskQueued' => 'An new task has been queued, import will start shortly!',
+        'podcastNotImported' => 'Podcast cannot be synched as it was not imported.',
+        'syncTaskQueued' => 'A new import task has been queued, synchronization will start shortly!',
+    ],
 ];
diff --git a/modules/PodcastImport/Language/sr_Latn/PodcastImport.php b/modules/PodcastImport/Language/sr_Latn/PodcastImport.php
index 7c3ef67d1f998b7f3d7e5d658d2ae7b99851f4f5..a89fe03b2162852aea516840d7f1976b80c36e30 100644
--- a/modules/PodcastImport/Language/sr_Latn/PodcastImport.php
+++ b/modules/PodcastImport/Language/sr_Latn/PodcastImport.php
@@ -9,29 +9,52 @@ declare(strict_types=1);
  */
 
 return [
-    'warning' =>
-        'This procedure may take a long time. As the current version does not show any progress while it runs, you will not see anything updated until it is done. In case of timeout error, increase `max_execution_time` value.',
+    'banner' => [
+        'disclaimer' => 'Importing',
+        'text' => '{podcastTitle} is currently being imported.',
+        'cta' => 'See import status',
+    ],
     'old_podcast_section_title' => 'The podcast to import',
-    'old_podcast_section_subtitle' =>
+    'old_podcast_legal_disclaimer_title' => 'Legal disclaimer',
+    'old_podcast_legal_disclaimer' =>
         'Make sure you own the rights for this podcast before importing it. Copying and broadcasting a podcast without the proper rights is piracy and is liable to prosecution.',
     'imported_feed_url' => 'Feed URL',
     'imported_feed_url_hint' => 'The feed must be in xml or rss format.',
     'new_podcast_section_title' => 'The new podcast',
-    'advanced_params_section_title' => 'Advanced parameters',
-    'advanced_params_section_subtitle' =>
-        'Keep the default values if you have no idea of what the fields are for.',
-    'slug_field' => 'Field to be used to calculate episode slug',
-    'description_field' =>
-        'Source field used for episode description / show notes',
-    'force_renumber' => 'Force episodes renumbering',
-    'force_renumber_hint' =>
-        'Use this if your podcast does not have episode numbers but wish to set them during import.',
-    'season_number' => 'Season number',
-    'season_number_hint' =>
-        'Use this if your podcast does not have a season number but wish to set one during import. Leave blank otherwise.',
-    'max_episodes' => 'Maximum number of episodes to import',
-    'max_episodes_hint' => 'Leave blank to import all episodes',
     'lock_import' =>
-        'This feed is protected. You cannot import it. If you are the owner, unprotect it on the origin platform.',
-    'submit' => 'Import podcast',
+        'This feed is protected. You cannot import it. If you are the owner, unlock it on the origin platform.',
+    'submit' => 'Add import to queue',
+    'queue' => [
+        'status' => [
+            'label' => 'Status',
+            'queued' => 'queued',
+            'queued_hint' => 'Import task is awaiting to be processed.',
+            'canceled' => 'canceled',
+            'canceled_hint' => 'Import task was canceled.',
+            'running' => 'running',
+            'running_hint' => 'Import task is being processed.',
+            'failed' => 'failed',
+            'failed_hint' => 'Import task could not complete: script failure.',
+            'passed' => 'passed',
+            'passed_hint' => 'Import task was completed successfully!',
+        ],
+        'feed' => 'Feed',
+        'duration' => 'Import duration',
+        'imported_episodes' => 'Imported episodes',
+        'imported_episodes_hint' => '{newlyImportedCount} newly imported, {alreadyImportedCount} already imported.',
+        'actions' => [
+            'cancel' => 'Cancel',
+            'retry' => 'Retry',
+            'delete' => 'Delete',
+        ],
+    ],
+    'messages' => [
+        'canceled' => 'Import task has been successfully canceled!',
+        'alreadyRunning' => 'Import Task is already running. You may cancel it before retrying.',
+        'retried' => 'Import task has been queued, it will be retried shortly!',
+        'deleted' => 'Import task has been successfully deleted!',
+        'importTaskQueued' => 'An new task has been queued, import will start shortly!',
+        'podcastNotImported' => 'Podcast cannot be synched as it was not imported.',
+        'syncTaskQueued' => 'A new import task has been queued, synchronization will start shortly!',
+    ],
 ];
diff --git a/modules/PodcastImport/Language/sv/PodcastImport.php b/modules/PodcastImport/Language/sv/PodcastImport.php
index 36f517ad99f6b81c427685a0ccedcc6360b8bb70..a89fe03b2162852aea516840d7f1976b80c36e30 100644
--- a/modules/PodcastImport/Language/sv/PodcastImport.php
+++ b/modules/PodcastImport/Language/sv/PodcastImport.php
@@ -9,29 +9,52 @@ declare(strict_types=1);
  */
 
 return [
-    'warning' =>
-        'Denna procedur kan ta lång tid. Eftersom den aktuella versionen inte visar några framsteg medan den körs, kommer du inte se något uppdaterat förrän det är gjort. Vid timeoutfel, öka värdet `max_execution_time`.',
-    'old_podcast_section_title' => 'Podcast att importera',
-    'old_podcast_section_subtitle' =>
-        'Se till att du äger rättigheterna för den här podcasten innan du importerar den. Kopiering och sändning av en podcast utan rätt rättigheter är piratkopiering och riskerar att åtalas.',
-    'imported_feed_url' => 'URL för flöde',
-    'imported_feed_url_hint' => 'Flödet måste vara i xml- eller rss-format.',
-    'new_podcast_section_title' => 'Den nya podcasten',
-    'advanced_params_section_title' => 'Avancerade parametrar',
-    'advanced_params_section_subtitle' =>
-        'Behåll standardvärdena om du inte har någon aning om vad fälten är för.',
-    'slug_field' => 'Fält som ska användas för att beräkna avsnitt slug',
-    'description_field' =>
-        'Källfält som används för avsnittsbeskrivning / visa anteckningar',
-    'force_renumber' => 'Tvinga avsnitts åternumrering',
-    'force_renumber_hint' =>
-        'Använd detta om din podcast inte har avsnittsnummer men vill ange dem under import.',
-    'season_number' => 'Säsong nummer',
-    'season_number_hint' =>
-        'Använd detta om din podcast inte har ett säsongsnummer men vill ange en under import. Lämna tomt annars.',
-    'max_episodes' => 'Maximalt antal avsnitt att importera',
-    'max_episodes_hint' => 'Lämna tomt för att importera alla avsnitt',
+    'banner' => [
+        'disclaimer' => 'Importing',
+        'text' => '{podcastTitle} is currently being imported.',
+        'cta' => 'See import status',
+    ],
+    'old_podcast_section_title' => 'The podcast to import',
+    'old_podcast_legal_disclaimer_title' => 'Legal disclaimer',
+    'old_podcast_legal_disclaimer' =>
+        'Make sure you own the rights for this podcast before importing it. Copying and broadcasting a podcast without the proper rights is piracy and is liable to prosecution.',
+    'imported_feed_url' => 'Feed URL',
+    'imported_feed_url_hint' => 'The feed must be in xml or rss format.',
+    'new_podcast_section_title' => 'The new podcast',
     'lock_import' =>
-        'Detta flöde är skyddat. Du kan inte importera det. Om du är ägare, sluta skydda det på ursprungsplattformen.',
-    'submit' => 'Importera podcast',
+        'This feed is protected. You cannot import it. If you are the owner, unlock it on the origin platform.',
+    'submit' => 'Add import to queue',
+    'queue' => [
+        'status' => [
+            'label' => 'Status',
+            'queued' => 'queued',
+            'queued_hint' => 'Import task is awaiting to be processed.',
+            'canceled' => 'canceled',
+            'canceled_hint' => 'Import task was canceled.',
+            'running' => 'running',
+            'running_hint' => 'Import task is being processed.',
+            'failed' => 'failed',
+            'failed_hint' => 'Import task could not complete: script failure.',
+            'passed' => 'passed',
+            'passed_hint' => 'Import task was completed successfully!',
+        ],
+        'feed' => 'Feed',
+        'duration' => 'Import duration',
+        'imported_episodes' => 'Imported episodes',
+        'imported_episodes_hint' => '{newlyImportedCount} newly imported, {alreadyImportedCount} already imported.',
+        'actions' => [
+            'cancel' => 'Cancel',
+            'retry' => 'Retry',
+            'delete' => 'Delete',
+        ],
+    ],
+    'messages' => [
+        'canceled' => 'Import task has been successfully canceled!',
+        'alreadyRunning' => 'Import Task is already running. You may cancel it before retrying.',
+        'retried' => 'Import task has been queued, it will be retried shortly!',
+        'deleted' => 'Import task has been successfully deleted!',
+        'importTaskQueued' => 'An new task has been queued, import will start shortly!',
+        'podcastNotImported' => 'Podcast cannot be synched as it was not imported.',
+        'syncTaskQueued' => 'A new import task has been queued, synchronization will start shortly!',
+    ],
 ];
diff --git a/modules/PodcastImport/Language/uk/PodcastImport.php b/modules/PodcastImport/Language/uk/PodcastImport.php
index 7c3ef67d1f998b7f3d7e5d658d2ae7b99851f4f5..a89fe03b2162852aea516840d7f1976b80c36e30 100644
--- a/modules/PodcastImport/Language/uk/PodcastImport.php
+++ b/modules/PodcastImport/Language/uk/PodcastImport.php
@@ -9,29 +9,52 @@ declare(strict_types=1);
  */
 
 return [
-    'warning' =>
-        'This procedure may take a long time. As the current version does not show any progress while it runs, you will not see anything updated until it is done. In case of timeout error, increase `max_execution_time` value.',
+    'banner' => [
+        'disclaimer' => 'Importing',
+        'text' => '{podcastTitle} is currently being imported.',
+        'cta' => 'See import status',
+    ],
     'old_podcast_section_title' => 'The podcast to import',
-    'old_podcast_section_subtitle' =>
+    'old_podcast_legal_disclaimer_title' => 'Legal disclaimer',
+    'old_podcast_legal_disclaimer' =>
         'Make sure you own the rights for this podcast before importing it. Copying and broadcasting a podcast without the proper rights is piracy and is liable to prosecution.',
     'imported_feed_url' => 'Feed URL',
     'imported_feed_url_hint' => 'The feed must be in xml or rss format.',
     'new_podcast_section_title' => 'The new podcast',
-    'advanced_params_section_title' => 'Advanced parameters',
-    'advanced_params_section_subtitle' =>
-        'Keep the default values if you have no idea of what the fields are for.',
-    'slug_field' => 'Field to be used to calculate episode slug',
-    'description_field' =>
-        'Source field used for episode description / show notes',
-    'force_renumber' => 'Force episodes renumbering',
-    'force_renumber_hint' =>
-        'Use this if your podcast does not have episode numbers but wish to set them during import.',
-    'season_number' => 'Season number',
-    'season_number_hint' =>
-        'Use this if your podcast does not have a season number but wish to set one during import. Leave blank otherwise.',
-    'max_episodes' => 'Maximum number of episodes to import',
-    'max_episodes_hint' => 'Leave blank to import all episodes',
     'lock_import' =>
-        'This feed is protected. You cannot import it. If you are the owner, unprotect it on the origin platform.',
-    'submit' => 'Import podcast',
+        'This feed is protected. You cannot import it. If you are the owner, unlock it on the origin platform.',
+    'submit' => 'Add import to queue',
+    'queue' => [
+        'status' => [
+            'label' => 'Status',
+            'queued' => 'queued',
+            'queued_hint' => 'Import task is awaiting to be processed.',
+            'canceled' => 'canceled',
+            'canceled_hint' => 'Import task was canceled.',
+            'running' => 'running',
+            'running_hint' => 'Import task is being processed.',
+            'failed' => 'failed',
+            'failed_hint' => 'Import task could not complete: script failure.',
+            'passed' => 'passed',
+            'passed_hint' => 'Import task was completed successfully!',
+        ],
+        'feed' => 'Feed',
+        'duration' => 'Import duration',
+        'imported_episodes' => 'Imported episodes',
+        'imported_episodes_hint' => '{newlyImportedCount} newly imported, {alreadyImportedCount} already imported.',
+        'actions' => [
+            'cancel' => 'Cancel',
+            'retry' => 'Retry',
+            'delete' => 'Delete',
+        ],
+    ],
+    'messages' => [
+        'canceled' => 'Import task has been successfully canceled!',
+        'alreadyRunning' => 'Import Task is already running. You may cancel it before retrying.',
+        'retried' => 'Import task has been queued, it will be retried shortly!',
+        'deleted' => 'Import task has been successfully deleted!',
+        'importTaskQueued' => 'An new task has been queued, import will start shortly!',
+        'podcastNotImported' => 'Podcast cannot be synched as it was not imported.',
+        'syncTaskQueued' => 'A new import task has been queued, synchronization will start shortly!',
+    ],
 ];
diff --git a/modules/PodcastImport/Language/zh-Hans/PodcastImport.php b/modules/PodcastImport/Language/zh-Hans/PodcastImport.php
index ad5732e6856fdb422bb65b9c70aa29b4bfb90af0..a89fe03b2162852aea516840d7f1976b80c36e30 100644
--- a/modules/PodcastImport/Language/zh-Hans/PodcastImport.php
+++ b/modules/PodcastImport/Language/zh-Hans/PodcastImport.php
@@ -9,29 +9,52 @@ declare(strict_types=1);
  */
 
 return [
-    'warning' =>
-        '此过程可能需要很长时间。 由于当前版本在运行时未显示任何进度,因此在完成之前您不会看到任何提示。 在超时错误的情况下,增加 `max_execution_time` 值。',
-    'old_podcast_section_title' => '要导入的播客',
-    'old_podcast_section_subtitle' =>
-        '请确保您在导入之前拥有此播客的权限。 在没有权限的情况下复制和广播播客是盗版行为,可能受到起诉。',
-    'imported_feed_url' => '订阅源的 URL',
-    'imported_feed_url_hint' => '订阅源必须是 xml 或 rss 格式。',
-    'new_podcast_section_title' => '新播客',
-    'advanced_params_section_title' => '高级参数',
-    'advanced_params_section_subtitle' =>
-        '如果您不知道这些字段的用途,请保留默认值。',
-    'slug_field' => '用于计算剧集 Slug 的字段',
-    'description_field' =>
-        '用于剧集描述/节目说明的源字段',
-    'force_renumber' => '强制剧集重新编号',
-    'force_renumber_hint' =>
-        '如果你的播客没有剧集编号但希望在导入时设置,请使用此选项。',
-    'season_number' => '季号',
-    'season_number_hint' =>
-        '如果您的播客没有季号,但希望在导入时设置,请使用此选项,否则留空。',
-    'max_episodes' => '要导入的最大剧集数',
-    'max_episodes_hint' => '留空导入所有剧集',
+    'banner' => [
+        'disclaimer' => 'Importing',
+        'text' => '{podcastTitle} is currently being imported.',
+        'cta' => 'See import status',
+    ],
+    'old_podcast_section_title' => 'The podcast to import',
+    'old_podcast_legal_disclaimer_title' => 'Legal disclaimer',
+    'old_podcast_legal_disclaimer' =>
+        'Make sure you own the rights for this podcast before importing it. Copying and broadcasting a podcast without the proper rights is piracy and is liable to prosecution.',
+    'imported_feed_url' => 'Feed URL',
+    'imported_feed_url_hint' => 'The feed must be in xml or rss format.',
+    'new_podcast_section_title' => 'The new podcast',
     'lock_import' =>
-        '此订阅源受到保护。你不能导入它。如果你是所有者,请在原平台取消保护。',
-    'submit' => '导入播客',
+        'This feed is protected. You cannot import it. If you are the owner, unlock it on the origin platform.',
+    'submit' => 'Add import to queue',
+    'queue' => [
+        'status' => [
+            'label' => 'Status',
+            'queued' => 'queued',
+            'queued_hint' => 'Import task is awaiting to be processed.',
+            'canceled' => 'canceled',
+            'canceled_hint' => 'Import task was canceled.',
+            'running' => 'running',
+            'running_hint' => 'Import task is being processed.',
+            'failed' => 'failed',
+            'failed_hint' => 'Import task could not complete: script failure.',
+            'passed' => 'passed',
+            'passed_hint' => 'Import task was completed successfully!',
+        ],
+        'feed' => 'Feed',
+        'duration' => 'Import duration',
+        'imported_episodes' => 'Imported episodes',
+        'imported_episodes_hint' => '{newlyImportedCount} newly imported, {alreadyImportedCount} already imported.',
+        'actions' => [
+            'cancel' => 'Cancel',
+            'retry' => 'Retry',
+            'delete' => 'Delete',
+        ],
+    ],
+    'messages' => [
+        'canceled' => 'Import task has been successfully canceled!',
+        'alreadyRunning' => 'Import Task is already running. You may cancel it before retrying.',
+        'retried' => 'Import task has been queued, it will be retried shortly!',
+        'deleted' => 'Import task has been successfully deleted!',
+        'importTaskQueued' => 'An new task has been queued, import will start shortly!',
+        'podcastNotImported' => 'Podcast cannot be synched as it was not imported.',
+        'syncTaskQueued' => 'A new import task has been queued, synchronization will start shortly!',
+    ],
 ];
diff --git a/modules/PremiumPodcasts/Language/gd/PremiumPodcasts.php b/modules/PremiumPodcasts/Language/gd/PremiumPodcasts.php
index 18c0dd4e4eb0738dad1f3106b9f35d3629918c4f..ac6d33e441545c3ffad002453736f9a6acc92f23 100644
--- a/modules/PremiumPodcasts/Language/gd/PremiumPodcasts.php
+++ b/modules/PremiumPodcasts/Language/gd/PremiumPodcasts.php
@@ -9,26 +9,26 @@ declare(strict_types=1);
  */
 
 return [
-    'podcast_is_premium' => 'Podcast contains premium episodes',
-    'episode_is_premium' => 'Episode is premium, only available to premium subscribers',
-    'unlock_episode' => 'This episode is for premium subscribers only. Click to unlock it!',
-    'banner_unlock' => 'This podcast contains premium episodes, only available to premium subscribers.',
-    'banner_lock' => 'Podcast is unlocked, enjoy the premium episodes!',
-    'subscribe' => 'Subscribe',
-    'lock' => 'Lock',
-    'unlock' => 'Unlock',
+    'podcast_is_premium' => 'Tha eapasodan premium aig a’ phod-chraoladh seo',
+    'episode_is_premium' => 'Seo eapasod premium, chan eil e ri fhaighinn ach do dh’fho-sgrìobhaichean premium',
+    'unlock_episode' => 'Tha an t-eapasod seo do dh’fho-sgrìobhaichean premium a-mhàin. Briog air gus a’ ghlas a thoirt fo bhàrr!',
+    'banner_unlock' => 'Tha eapasodan premium sa phod-chraoladh seo nach eil ri fhaighinn ach do dh’fho-sgrìobhaichean premium.',
+    'banner_lock' => 'Thug thu a’ ghlas far a’ phod-chraolaidh, gabh tlachd às na h-eapasodan premium!',
+    'subscribe' => 'Fo-sgrìobh',
+    'lock' => 'Glais',
+    'unlock' => 'Thoir a’ ghlas dheth',
     'unlock_form' => [
-        'title' => 'Premium content',
-        'subtitle' => 'This podcast contains locked premium episodes! Do you have the key to unlock them?',
-        'token' => 'Enter your key',
-        'token_hint' => 'If you are subscribed to {podcastTitle}, you may copy the key that was sent to you via email and paste it here.',
-        'submit' => 'Unlock all episodes!',
-        'call_to_action' => 'Unlock all episodes of {podcastTitle}:',
-        'subscribe_cta' => 'Subscribe now!',
+        'title' => 'Susbaint premium',
+        'subtitle' => 'Tha eapasodan premium glaiste aig a’ phod-chraoladh seo! A bheil iuchair agad gus a’ ghlas a thoirt fo am bàrr?',
+        'token' => 'Cuir a-steach an iuchair agad',
+        'token_hint' => 'Ma fhuair thu fo-sgrìobhadh air {podcastTitle}, ’s urrainn dhut lethbhreac a dhèanamh dhen iuchair a chaidh a chur thugad air a’ phost-d ’s a cur ann an-seo.',
+        'submit' => 'Thoir a’ ghlas far a h-uile eapasod!',
+        'call_to_action' => 'Thoir a’ ghlas far a h-uile eapasod aig {podcastTitle}:',
+        'subscribe_cta' => 'Fo-sgrìobh an-dràsta!',
     ],
     'messages' => [
-        'unlockSuccess' => 'Podcast was successfully unlocked! Enjoy the premium episodes!',
-        'unlockBadAttempt' => 'Your key does not seem to be working…',
-        'lockSuccess' => 'Podcast was successfully locked!',
+        'unlockSuccess' => 'Thug thu a’ ghlas far a’ phod-chraolaidh! Gabh tlachd às na h-eapasodan premium!',
+        'unlockBadAttempt' => 'Tha coltas nach eil an iuchair agad ag obair…',
+        'lockSuccess' => 'Chaidh am pod-chraoladh a ghlasadh!',
     ],
 ];
diff --git a/modules/PremiumPodcasts/Language/gd/Subscription.php b/modules/PremiumPodcasts/Language/gd/Subscription.php
index f8af256f703a082b9a8f3577e1db6085dbb5596a..3ee140dd9069d96ed0c0726feb77cfb0bdafee00 100644
--- a/modules/PremiumPodcasts/Language/gd/Subscription.php
+++ b/modules/PremiumPodcasts/Language/gd/Subscription.php
@@ -9,92 +9,92 @@ declare(strict_types=1);
  */
 
 return [
-    'podcast_subscriptions' => 'Podcast subscriptions',
-    'add' => 'New subscription',
-    'view' => 'View subscription',
-    'edit' => 'Edit subscription',
-    'regenerate_token' => 'Regenerate token',
-    'suspend' => 'Suspend subscription',
-    'resume' => 'Resume subscription',
-    'delete' => 'Delete subscription',
+    'podcast_subscriptions' => 'Fo-sgrìobhaidhean air pod-chraolaidhean',
+    'add' => 'Fo-sgrìobhadh ùr',
+    'view' => 'Seall am fo-sgrìobhadh',
+    'edit' => 'Deasaich am fo-sgrìobhadh',
+    'regenerate_token' => 'Ath-ghin an tòcan',
+    'suspend' => 'Cuir am fo-sgrìobhadh à rèim',
+    'resume' => 'Lean air an fho-sgrìobhadh',
+    'delete' => 'Sguab às am fo-sgrìobhadh',
     'status' => [
-        'active' => 'Active',
-        'suspended' => 'Suspended',
-        'expired' => 'Expired',
+        'active' => 'Gnìomhach',
+        'suspended' => 'À rèim',
+        'expired' => 'Dh’fhalbh an ùine air',
     ],
     'list' => [
-        'number' => 'Number',
-        'email' => 'Email',
-        'expiration_date' => 'Expiration date',
-        'unlimited' => 'Unlimited',
-        'downloads' => 'Downloads',
-        'status' => 'Status',
+        'number' => 'Àireamh',
+        'email' => 'Post-d',
+        'expiration_date' => 'Ceann-là crìochnachaidh',
+        'unlimited' => 'Gun chrìoch',
+        'downloads' => 'Luchdaidhean a-nuas',
+        'status' => 'Staid',
     ],
     'form' => [
-        'email' => 'Email',
-        'expiration_date' => 'Expiration date',
-        'expiration_date_hint' => 'The date and time at which the subscription expires. Leave empty for an unlimited subscription.',
-        'submit_add' => 'Add subscription',
-        'submit_edit' => 'Edit subscription',
+        'email' => 'Post-d',
+        'expiration_date' => 'Ceann-là crìochnachaidh',
+        'expiration_date_hint' => 'An ceann-là ’s àm a dh’fhalbhas an ùine air an fho-sgrìobhadh. Fàg bàn e airson fo-sgrìobhadh gun chrìoch.',
+        'submit_add' => 'Cuir fo-sgrìobhadh ris',
+        'submit_edit' => 'Deasaich am fo-sgrìobhadh',
     ],
     'form_link_add' => [
-        'link' => 'Subscription page link',
-        'link_hint' => 'This will add a call to action in the website inviting listeners to subscribe to the podcast.',
-        'submit' => 'Save link',
+        'link' => 'Ceangal gu duilleag an fho-sgrìobhaidh',
+        'link_hint' => 'Cuiridh seo tàladh ris an làrach-lìn a bheir cuireadh dhan luchd-èisteachd ach am faigh iad fo-sgrìobhadh air a’ phod-chraoladh.',
+        'submit' => 'Sàbhail an ceangal',
     ],
     'suspend_form' => [
-        'disclaimer' => 'Suspending the subscription will restrict the subscriber from having access to the premium content. You will still be able to lift the suspension afterwards.',
-        'reason' => 'Reason',
-        'reason_placeholder' => 'Why are you suspending the subscription?',
-        "submit" => 'Suspend subscription',
+        'disclaimer' => 'Ma chuireas tu am fo-sgrìobhadh à rèim, cuingichidh seo an neach fo-sgrìobhaidh gus nach fhaigh iad cothrom air susbaint premium. ’S urrainn dhut a chur ann an rèim a-rithist uair sam bith an uairsin.',
+        'reason' => 'Adhbhar',
+        'reason_placeholder' => 'Carson a tha thu a’ cur am fo-sgrìobhadh à rèim?',
+        "submit" => 'Cuir am fo-sgrìobhadh à rèim',
     ],
     'delete_form' => [
-        'disclaimer' => 'Deleting {subscriber}\'s subscription will remove all analytics data associated with it.',
-        'understand' => 'I understand, remove the subscription permanently',
-        'submit' => 'Remove subscription',
+        'disclaimer' => 'Ma sguabas tu às am fo-sgrìobhadh aig {subscriber}, bheir seo air falbh dàta sam bith na h-anailiseachd a tha co-cheangailte ris.',
+        'understand' => 'Tha mi agaibh, thoir air falbh am fo-sgrìobhadh gu buan',
+        'submit' => 'Thoir am fo-sgrìobhadh air falbh',
     ],
     'messages' => [
-        'addSuccess' => 'New subscription added! A welcome email was sent to {subscriber}.',
-        'addError' => 'Subscription could not be added.',
-        'editSuccess' => 'Subscription expiry date was updated! An email was sent to {subscriber}.',
-        'editError' => 'Subscription could not be edited.',
-        'regenerateTokenSuccess' => 'Token regenerated! An email was sent to {subscriber} with the new token.',
-        'regenerateTokenError' => 'Token could not be regenerated.',
-        'deleteSuccess' => 'Subscription was removed! An email was sent to {subscriber}.',
-        'deleteError' => 'Subscription could not be removed.',
-        'suspendSuccess' => 'Subscription was suspended! An email was sent to {subscriber}.',
-        'suspendError' => 'Subscription could not be suspended.',
-        'resumeSuccess' => 'Subscription was resumed! An email was sent to {subscriber}.',
-        'resumeError' => 'Subscription could not be resumed.',
-        'linkSaveSuccess' => 'Subscription link was saved successfully! It will appear in the website as a Call To Action!',
-        'linkRemoveSuccess' => 'Subscription link was removed successfully!',
+        'addSuccess' => 'Chaidh fo-sgrìobhadh ùr a chur ris! Chaidh post-d fàilteachaidh a chur gu {subscriber}.',
+        'addError' => 'Cha b’ urrainn dhuinn am fo-sgrìobhadh a chur ris.',
+        'editSuccess' => 'Chaidh an ceann-là a dh’fhalbhas an ùine air an fho-sgrìobhadh ùrachadh! Chaidh post-d a chur gu {subscriber}.',
+        'editError' => 'Cha b’ urrainn dhuinn am fo-sgrìobhadh a dheasachadh.',
+        'regenerateTokenSuccess' => 'Chaidh an tòcan ath-ghintinn! Chaidh post-d a chur gu {subscriber} leis an tòcan ùr.',
+        'regenerateTokenError' => 'Cha b’ urrainn dhuinn an tòcan ath-ghintinn.',
+        'deleteSuccess' => 'Chaidh am fo-sgrìobhadh a thoirt air falbh! Chaidh post-d a chur gu {subscriber}.',
+        'deleteError' => 'Cha b’ urrainn dhuinn am fo-sgrìobhadh a thoirt air falbh.',
+        'suspendSuccess' => 'Chaidh am fo-sgrìobhadh a chur à rèim! Chaidh post-d a chur gu {subscriber}.',
+        'suspendError' => 'Cha b’ urrainn dhuinn am fo-sgrìobhadh a cur à rèim.',
+        'resumeSuccess' => 'Chaidh leantainn air an fho-sgrìobhadh! Chaidh post-d a chur gu {subscriber}.',
+        'resumeError' => 'Cha b’ urrainn dhuinn leantainn air an fho-sgrìobhadh.',
+        'linkSaveSuccess' => 'Chaidh an ceangal dhan fho-sgrìobhadh a shàbhaladh! Nochdaidh e air an làrach-lìn na thadhladh!',
+        'linkRemoveSuccess' => 'Chaidh an ceangal dhan fho-sgrìobhadh a thoirt air falbh!',
     ],
     'emails' => [
-        'greeting' => 'Hey,',
-        'token' => 'Your token: {0}',
-        'unique_feed_link' => 'Your unique feed link: {0}',
-        'how_to_use' => 'How to use?',
-        'two_ways' => 'You have two ways of unlocking the premium episodes:',
-        'import_into_app' => 'Copy your unique feed url inside your favourite podcast app (import it as a private feed to prevent exposing your credentials).',
-        'go_to_website' => 'Go to {podcastWebsite}\'s website and unlock the podcast with your token.',
-        'welcome_subject' => 'Welcome to {podcastTitle}',
-        'welcome' => 'You have subscribed to {podcastTitle}, thank you and welcome aboard!',
-        'welcome_token_title' => 'Here are your credentials to unlock the podcast\'s premium episodes:',
-        'welcome_expires' => 'Your subscription was set to expire on {0}.',
-        'welcome_never_expires' => 'Your subscription was set to never expire.',
-        'reset_subject' => 'Your token was reset!',
-        'reset_token' => 'Your access to {podcastTitle} has been reset!',
-        'reset_token_title' => 'New credentials have been generated for you to unlock the podcast\'s premium episodes:',
-        'edited_subject' => 'Your subscription has been updated!',
-        'edited_expires' => 'Your subscription for {podcastTitle} was set to expire on {expiresAt}.',
-        'edited_never_expires' => 'Your subscription for {podcastTitle} was set to never expire!',
-        'suspended_subject' => 'Your subscription has been suspended!',
-        'suspended' => 'Your subscription for {podcastTitle} has been suspended! You can no longer access the podcast\'s premium episodes.',
-        'suspended_reason' => 'That is for the following reason: {0}',
-        'resumed_subject' => 'Your subscription has been resumed!',
-        'resumed' => 'Your subscription for {podcastTitle} has been resumed! You may access the podcast\'s premium episodes again.',
-        'deleted_subject' => 'Your subscription has been removed!',
-        'deleted' => 'Your subscription for {podcastTitle} has been removed! You no longer have access to the podcast\'s premium episodes.',
-        'footer' => '{castopod} hosted on {host}',
+        'greeting' => 'Shin thu,',
+        'token' => 'Seo an tòcan agad: {0}',
+        'unique_feed_link' => 'Seo ceangal àraidh an inbhir agad: {0}',
+        'how_to_use' => 'Mar a chleachdas tu e',
+        'two_ways' => 'Tha dà dhòigh ann air an doir thu a’ ghlas far eapasodan premium:',
+        'import_into_app' => 'Cuir lethbhreac de dh’URL àraidh an inbhir agad san aplacaid pod-chraolaidh as fheàrr leat (ion-phortaich e ’na inbhir prìobhaideach ach nach foillsich thu an teisteanas agad).',
+        'go_to_website' => 'Tadhail air an làrach-lìn aig {podcastWebsite} agus thoir a’ ghlas far a’ phod-chraolaidh leis an tòcan agad.',
+        'welcome_subject' => 'Fàilte gu {podcastTitle}',
+        'welcome' => 'Fhuair thu fo-sgrìobhadh air {podcastTitle}, mòran taing is fàilte air bhòrd!',
+        'welcome_token_title' => 'Seo an teisteanas agad airson a’ ghlas a thoirt far eapasodan premium a’ phod-chraolaidh:',
+        'welcome_expires' => 'Chaidh crìoch an fho-sgrìobhaidh agad a shuidheachadh air {0}.',
+        'welcome_never_expires' => 'Chaidh am fo-sgrìobhaidh agad a shuidheachadh ach nach fhalbh an ùine air.',
+        'reset_subject' => 'Chaidh an tòcan agad ath-shuidheachadh!',
+        'reset_token' => 'Chaidh an t-inntrigeadh agad air {podcastTitle} ath-shuidheachadh!',
+        'reset_token_title' => 'Chaidh teisteanas ùr a ghintinn dhut airson a’ ghlas a thoirt far eapasodan premium a’ phod-chraolaidh:',
+        'edited_subject' => 'Chaidh am fo-sgrìobhadh agad ùrachadh!',
+        'edited_expires' => 'Chaidh crìoch an fho-sgrìobhaidh agad air {podcastTitle} a shuidheachadh air {expiresAt}.',
+        'edited_never_expires' => 'Chaidh am fo-sgrìobhaidh agad air {podcastTitle} a shuidheachadh ach nach fhalbh an ùine air!',
+        'suspended_subject' => 'Chaidh am fo-sgrìobhadh agad a chur à rèim!',
+        'suspended' => 'Chaidh am fo-sgrìobhadh agad air {podcastTitle} a chur à rèim! Chan urrainn dhut eapasodan premium a’ phod-chraolaidh inntrigeadh tuilleadh.',
+        'suspended_reason' => 'Seo as adhbhar dha: {0}',
+        'resumed_subject' => 'Chaidh leantainn air an fho-sgrìobhadh agad!',
+        'resumed' => 'Chaidh leantainn air an fho-sgrìobhadh air {podcastTitle} agad! ’S urrainn dhut eapasodan premium a’ phod-chraolaidh inntrigeadh a-rithist.',
+        'deleted_subject' => 'Chaidh am fo-sgrìobhadh agad a thoirt air falbh!',
+        'deleted' => 'Chaidh am fo-sgrìobhadh agad air {podcastTitle} a thoirt air falbh! Chan urrainn dhut eapasodan premium a’ phod-chraolaidh inntrigeadh tuilleadh.',
+        'footer' => 'Seo {castopod} ’ga òstadh air {host}',
     ],
 ];