| Both sides previous revision Previous revision Next revision | Previous revision |
| subtitles [2026/06/14 09:31] – andi | subtitles [2026/07/26 21:08] (current) – external edit 127.0.0.1 |
|---|
| = Subtitles / Untertitel | # Subtitles / Untertitel |
| |
| [[software:voctoweb]] hat mehr aktuell zwei Varianten über die publizierte Vorträge Untertitel bekommen können: | [software:voctoweb](software:voctoweb) hat mehr aktuell zwei Varianten |
| | über die publizierte Vorträge Untertitel bekommen können: |
| - die klassischen Workflows über die Django-App auf c3subtitles.de ([[https://github.com/c3subtitles/subtitleStatus|subtitleStatus]]) | |
| - per Whisper/[[https://github.com/bugbakery/transcribee|Transcribee]] über die [[https://publishing.c3voc.de/docs|Publishing API]] | |
| |
| | \- die klassischen Workflows über die Django-App auf c3subtitles.de |
| | ([subtitleStatus](https://github.com/c3subtitles/subtitleStatus)) - per |
| | Whisper/[Transcribee](https://github.com/bugbakery/transcribee) über die |
| | [Publishing API](https://publishing.c3voc.de/docs) |
| |
| Vereinfacht gesagt geht es dabei immer um zwei Tasks: | Vereinfacht gesagt geht es dabei immer um zwei Tasks: |
| |
| - das Publizieren der SRT/VTT Datei | \- das Publizieren der SRT/VTT Datei - das Anlegen der Metadaten (aka |
| - das Anlegen der Metadaten (aka "Subtitle Recording") in voctoweb, damit die Untertitel auch im Player angezeigt werden | "Subtitle Recording") in voctoweb, damit die Untertitel auch im Player |
| | angezeigt werden |
| |
| | ## Publishing Gateway/API |
| |
| == Publishing Gateway/API | Um sich nicht mit den Eigenheiten der c3voc Infrastrktur herumschlagen |
| | zu müssen wurde 2023/2024 eine REST API eingerichtet die es erlaubt |
| Um sich nicht mit den Eigenheiten der c3voc Infrastrktur herumschlagen zu müssen wurde 2023/2024 eine REST API eingerichtet die es erlaubt Zusatzdaten wie Slides, Subtitles etc. rein per REST zu publizieren, ohne das SFTP o.ä. verwendet werden muss: | Zusatzdaten wie Slides, Subtitles etc. rein per REST zu publizieren, |
| | ohne das SFTP o.ä. verwendet werden muss: |
| |
| - https://publishing.c3voc.de/docs | \- <https://publishing.c3voc.de/docs> - |
| - https://github.com/voc/publishing-gw | <https://github.com/voc/publishing-gw> |
| |
| Die dazu notwendigen API Keys sind aktuell noch statisch konfiguriert, sollen aber perspektivisch an https://sso.c3voc.de/ angebunden werden. | Die dazu notwendigen API Keys sind aktuell noch statisch konfiguriert, |
| | sollen aber perspektivisch an <https://sso.c3voc.de/> angebunden werden. |
| |
| | ## Transcribee |
| == Transcribee | |
| |
| TBD | TBD |
| |
| | ## Classic workflow via c3subtitles.de/Amara/etc. |
| |
| == Classic workflow via c3subtitles.de/Amara/etc. | \<callout type="warning"\>Achtung: Der Rest dieser Seite beschreibt den |
| | alten Workflow, der aktuell nicht mehr aktiv in Verwendung ist. Das Team |
| | hat hatte zwischenzeitlich eigene Infrastruktur unter |
| <callout type="warning">Achtung: Der Rest dieser Seite beschreibt den alten Workflow, der aktuell nicht mehr aktiv in Verwendung ist. Das Team hat hatte zwischenzeitlich eigene Infrastruktur unter https://wiki.c3subtitles.de die bei selfnet gehostet war – inzwischen ist diese VM aber leider aus unbekannten Gründen nicht mehr erreichbar. </callout> | <https://wiki.c3subtitles.de> die bei selfnet gehostet war – inzwischen |
| | ist diese VM aber leider aus unbekannten Gründen nicht mehr erreichbar. |
| | \</callout\> |
| |
| Components | Components |
| |
| - [[https://github.com/voc/scripts/blob/master/subtitles/sync_media_recordings.py|sync_media_recordings.py]] uses CSV export from `subtitlesStatus` to publish subtiles in [[vocotoweb]] via REST API: | \- |
| * is run every 10 minutes via systemd timer [[intern:server:releasing.c3voc.de]]`:/etc/systemd/system/publish-subtitles.timer` | [sync_media_recordings.py](https://github.com/voc/scripts/blob/master/subtitles/sync_media_recordings.py) |
| | uses CSV export from \`subtitlesStatus\` to publish subtiles in |
| | [vocotoweb](vocotoweb) via REST API: |
| |
| - [subtitleStatus](https://github.com/c3subtitles/subtitleStatus) (Django-App @ c3subtitles.de) | - was running every 10 minutes via systemd timer |
| * Dashboard mit Übersicht des Transkriptionsstatus pro Konferenz und Vortrag | [intern:server:releasing.c3voc.de](intern:server:releasing.c3voc.de)\`:/etc/systemd/system/publish-subtitles.timer\` |
| * Workflow-Manager | |
| * … | |
| * schiebt fertige Untertitel-Dateien (SRT) per rsync auf mirror.selfnet.de | |
| |
| | \- \[subtitleStatus\](<https://github.com/c3subtitles/subtitleStatus>) |
| | (Django-App @ c3subtitles.de) |
| |
| {{::docs:architecture-overview-subtitles.png?600|}} | - Dashboard mit Übersicht des Transkriptionsstatus pro Konferenz und |
| | Vortrag |
| | - Workflow-Manager |
| | - … |
| | - schiebt fertige Untertitel-Dateien (SRT) per rsync auf |
| | mirror.selfnet.de |
| |
| |  |
| |
| | ### CSV-Export from C3Subtitles: |
| |
| === CSV-Export from C3Subtitles: | <https://c3subtitles.de/media_export/2020-12-30T0:00:00.99Z> |
| | |
| https://c3subtitles.de/media_export/2020-12-30T0:00:00.99Z | |
| |
| Example: | Example: |
| |
| ^ `GUID` ^ `complete` ^ `media_language` ^ `srt_language` ^ `last_changed_on_amara` ^ `revision` ^ `url` ^ `touched` ^ `amara_key` ^ `amara_language` ^ `state` ^ `amara_subtitle_url` ^ | ^ \`GUID\` ^ \`complete\` ^ \`media_language\` ^ \`srt_language\` ^ |
| | db11e86c-ecf8-40c0-b8d8-2f6798507146 | False | eng | en | 1-01-01T00:00:00Z | 1 | https://mirror.selfnet.de/c3subtitles/events/rc3/rc3-mcr-11546-eng-deu-Measuring_radioactivity_using_low-cost_silicon_sensors.en.srt | 2021-01-03T12:30:45Z | P4gHpqpuJJIA | en | 7 | https://amara.org/api/videos/P4gHpqpuJJIA/languages/en/subtitles/ | | \`last_changed_on_amara\` ^ \`revision\` ^ \`url\` ^ \`touched\` ^ |
| | 221560a2-7470-4e90-9190-99a2bef53238 | False | deu | de | 1-01-01T00:00:00Z | 1 | https://mirror.selfnet.de/c3subtitles/events/rc3/rc3-mcr-11574-deu-Globalisierung_Digitalisierung_und_die_Wachstumsfrage.de.srt | 2021-01-06T10:37:48Z | dSkmesksKqIe | de | 2 | https://amara.org/api/videos/dSkmesksKqIe/languages/de/subtitles/ | | \`amara_key\` ^ \`amara_language\` ^ \`state\` ^ \`amara_subtitle_url\` |
| | 6beabddc-2dd6-43d2-9936-618d41d42cde | True | deu | de | 1-01-01T00:00:00Z | 5 | https://mirror.selfnet.de/c3subtitles/congress/35c3/35c3-9744-deu-eng-Inside_the_Fake_Science_Factories.de.srt | 2021-01-01T23:14:02Z | vsf2PBryeqW9 | de | 8 | https://amara.org/api/videos/vsf2PBryeqW9/languages/de/subtitles/ | | ^ |
| | 7bdf7688-8620-4170-93bf-3c2adfd30030 | False | deu | de | 1-01-01T00:00:00Z | 1 | https://mirror.selfnet.de/c3subtitles/congress/36c3/36c3-10983-deu-eng-Its_alive_-_Nach_den_Protesten_gegen_die_Polizeigesetze_ist_vor_den_Protesten_gegen_die_autoritaere_Wende.de.srt | 2020-12-30T10:58:21Z | NWHl9bK0MXF8 | de | 2 | https://amara.org/api/videos/NWHl9bK0MXF8/languages/de/subtitles/ | | |
| | 52ce1398-fa9b-4bd3-aa9e-6a49a764ac2c | True | deu | de | 1-01-01T00:00:00Z | 7 | https://mirror.selfnet.de/c3subtitles/congress/35c3/35c3-9343-deu-eng-Court_in_the_Akten.de.srt | 2021-01-04T22:17:06Z | 3mDTDpROSDxZ | de | 8 | https://amara.org/api/videos/3mDTDpROSDxZ/languages/de/subtitles/ | | |
| | 1cff41a8-455e-42a6-ab08-d6cb166e7d3b | False | deu | de | 1-01-01T00:00:00Z | 1 | https://mirror.selfnet.de/c3subtitles/congress/35c3/35c3-10036-deu-eng-Mondnacht.de.srt | 2021-01-04T22:12:21Z | gAbEiRm8Mocc | de | 2 | https://amara.org/api/videos/gAbEiRm8Mocc/languages/de/subtitles/ | | |
| | |
| | |
| To download the raw (draft) subtitles from Amara, append use `https://amara.org/api/videos/{amara_key}/languages/{amara_lanuage}/subtitles/?format=vtt` (compare https://apidocs.amara.org/#fetch-raw-subtitles) | |
| | |
| | |
| ==== States | |
| |
| For voctoweb (media.ccc.de) only states 7, 8 and 12 are relevant. Subtitle files in all other states should be ignored. | | | | | | | | | | | | | | |
| {{tablelayout?colwidth=""}} | |--------------------------------------|-------|-----|-----|-------------------|-----|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|----------------------|--------------|-----|-----|---------------------------------------------------------------------| |
| ^ ID ^ voctoweb ^ c3subtitles ^ additional information ^ | | db11e86c-ecf8-40c0-b8d8-2f6798507146 | False | eng | en | 1-01-01T00:00:00Z | 1 | <https://mirror.selfnet.de/c3subtitles/events/rc3/rc3-mcr-11546-eng-deu-Measuring_radioactivity_using_low-cost_silicon_sensors.en.srt> | 2021-01-03T12:30:45Z | P4gHpqpuJJIA | en | 7 | <https://amara.org/api/videos/P4gHpqpuJJIA/languages/en/subtitles/> | |
| | 1 | | Nothing available yet | irrelevant should not exist | | | 221560a2-7470-4e90-9190-99a2bef53238 | False | deu | de | 1-01-01T00:00:00Z | 1 | <https://mirror.selfnet.de/c3subtitles/events/rc3/rc3-mcr-11574-deu-Globalisierung_Digitalisierung_und_die_Wachstumsfrage.de.srt> | 2021-01-06T10:37:48Z | dSkmesksKqIe | de | 2 | <https://amara.org/api/videos/dSkmesksKqIe/languages/de/subtitles/> | |
| | 2 | todo | Transcribed until | should exist | | | 6beabddc-2dd6-43d2-9936-618d41d42cde | True | deu | de | 1-01-01T00:00:00Z | 5 | <https://mirror.selfnet.de/c3subtitles/congress/35c3/35c3-9744-deu-eng-Inside_the_Fake_Science_Factories.de.srt> | 2021-01-01T23:14:02Z | vsf2PBryeqW9 | de | 8 | <https://amara.org/api/videos/vsf2PBryeqW9/languages/de/subtitles/> | |
| | 3 | | Transcript finished | might exist - still no timestamps | | | 7bdf7688-8620-4170-93bf-3c2adfd30030 | False | deu | de | 1-01-01T00:00:00Z | 1 | <https://mirror.selfnet.de/c3subtitles/congress/36c3/36c3-10983-deu-eng-Its_alive_-_Nach_den_Protesten_gegen_die_Polizeigesetze_ist_vor_den_Protesten_gegen_die_autoritaere_Wende.de.srt> | 2020-12-30T10:58:21Z | NWHl9bK0MXF8 | de | 2 | <https://amara.org/api/videos/NWHl9bK0MXF8/languages/de/subtitles/> | |
| | 4 | | Please do not touch, work in progress | Autotiming in process no timestamps | | | 52ce1398-fa9b-4bd3-aa9e-6a49a764ac2c | True | deu | de | 1-01-01T00:00:00Z | 7 | <https://mirror.selfnet.de/c3subtitles/congress/35c3/35c3-9343-deu-eng-Court_in_the_Akten.de.srt> | 2021-01-04T22:17:06Z | 3mDTDpROSDxZ | de | 8 | <https://amara.org/api/videos/3mDTDpROSDxZ/languages/de/subtitles/> | |
| | 5 | | Synced until | rare case of syncing by hand | | | 1cff41a8-455e-42a6-ab08-d6cb166e7d3b | False | deu | de | 1-01-01T00:00:00Z | 1 | <https://mirror.selfnet.de/c3subtitles/congress/35c3/35c3-10036-deu-eng-Mondnacht.de.srt> | 2021-01-04T22:12:21Z | gAbEiRm8Mocc | de | 2 | <https://amara.org/api/videos/gAbEiRm8Mocc/languages/de/subtitles/> | |
| | 6 | | Syncing finished | with timestamps, usable as draft | | |
| | 7 | draft | Quality control done until | with timestamps, usable as draft | | |
| | 8 | complete | Job completed | finished, obviously with timestamps and usable | | |
| | 9 | | Unknown | should not exist | | |
| | 11 | todo | Translated until | translation, not usable as draft | | |
| | 12 | translated | Translation is finished | finished, obviously with timestamps and usable | | |
| |
| | To download the raw (draft) subtitles from Amara, append use |
| | \`https:*amara.org/api/videos/{amara_key}/languages/{amara_lanuage}/subtitles/?format=vtt\` |
| | (compare <https://apidocs.amara.org/#fetch-raw-subtitles>)* |
| |
| | #### States |
| |
| | For voctoweb (media.ccc.de) only states 7, 8 and 12 are relevant. |
| | Subtitle files in all other states should be ignored. |
| |  ^ ID ^ voctoweb ^ c3subtitles ^ additional |
| | information ^ |
| |
| | | | | | | |
| | |-----|------------|---------------------------------------|------------------------------------------------| |
| | | 1 | | Nothing available yet | irrelevant should not exist | |
| | | 2 | todo | Transcribed until | should exist | |
| | | 3 | | Transcript finished | might exist - still no timestamps | |
| | | 4 | | Please do not touch, work in progress | Autotiming in process no timestamps | |
| | | 5 | | Synced until | rare case of syncing by hand | |
| | | 6 | | Syncing finished | with timestamps, usable as draft | |
| | | 7 | draft | Quality control done until | with timestamps, usable as draft | |
| | | 8 | complete | Job completed | finished, obviously with timestamps and usable | |
| | | 9 | | Unknown | should not exist | |
| | | 11 | todo | Translated until | translation, not usable as draft | |
| | | 12 | translated | Translation is finished | finished, obviously with timestamps and usable | |
| |