voc/voctoweb

Define ActivityPub represenation of an talk/event/lecture

Opened this issue · 0 comments

As of now each item in voctoweb is only available in following representations:

Where the web version includes following in the head:

<script type='application/ld+json'>
{
  "@context": "https://schema.org",
  "@type": "VideoObject",
  "name": "Breaking \"DRM\" in Polish trains",
  "description": "We've all been there: the trains you're servicing for a customer suddenly brick themselves and the manufacturer claims that's because you...",
  "thumbnailUrl": "https://static.media.ccc.de/media/congress/2023/12142-68160267-a6a5-4a41-8a51-d8735c8aa338_preview.jpg",
  "uploadDate": "2023-12-28 00:00:00 +0100",
  "duration": "PT3705S",
  "publisher": {
    "@type": "Organization",
    "name": "media.ccc.de",
      "logo": {
      "@type": "ImageObject",
      "url": "/apple-touch-icon.png",
      "width": 180,
      "height": 180
    }
  },
  "contentUrl": "37c3-12142-eng-Breaking_DRM_in_Polish_trains.mp4",
  "embedUrl": "https://media.ccc.de/public/oembed?url=https%3A%2F%2Fmedia.ccc.de%2Fv%2F37c3-12142-breaking_drm_in_polish_trains"
}
</script>

Peertube inspired:

{
  "type": "Video",
  "id": "https://media.ccc.de/v/37c3-12142-breaking_drm_in_polish_trains",
  "uuid": "68160267-a6a5-4a41-8a51-d8735c8aa338",
  "to": ["https://www.w3.org/ns/activitystreams#Public"],
  "cc": ["https://social.media.ccc.de/accounts/37c3/followers"],

  "name": "Breaking \"DRM\" in Polish trains",
  "attributedTo": [
    {"type": "Person", "name": "Redford", "id": "acct:redford@dragonsector.pl"},
    {"type": "Person", "name": "q3k", "id": "acct:q3k@hackerspace.pl"},
    {"type": "Person", "name": "MrTick"},
    {"type": "Group",  "name": "Dragon Sector", "id": "https://dragonsector.pl"}
  ],
  "mediaType": "text/markdown",
  "content": "We've all been there: the trains you're servicing for a customer suddenly brick themselves and the manufacturer claims that's because you've interfered with a security system.\n\nThis talk will tell the story of a series of Polish EMUs (Electric Multiple Unit) that all refused to move a few days after arriving at an “unauthorized” service company. We'll go over how a train control system actually works, how we reverse-engineered one and what sort of magical “security” systems we actually found inside of it.\n\nReality sometimes is stranger than the wildest CTF task. Reality sometimes is running `unlock.py` on a dozen trains.\n\nThe talk will be a mix of technical and non-technical aspects of analysis which should be understandable for anyone with a technical background. We’ll briefly explain how modern EMUs look like inside, how the Train Control & Monitoring System works, and how to analyze TriCore machine code.",
  "duration": "PT3705S",

  "originallyPublishedAt": null,
  "published": "2023-12-28T00:00:00.000+01:00",
  "updated": "2024-01-10T23:30:04.074+01:00",

  "category": {"identifier": "13", "name": "Education"},
  "licence":  {"identifier":  "?", "name": "CreativeCommons BY 4.0 DEED", "href": "https://creativecommons.org/licenses/by/4.0/"},
  "language": {"identifier": "en", "name": "English"},
  "subtitleLanguage": [
    /* TBD */
  ],

  "views": 87978,

  "sensitive": false,
  "isLiveBroadcast": false,
  "commentsEnabled": false,
  "downloadEnabled": true,



  "tag": [
    {"type": "Hashtag", "name": "37c3"},
    {"type": "Hashtag", "name": "Hardware & Making"}
  ],

  "icon": [
    {
      "type": "Image",
      "url": "https://static.media.ccc.de/media/congress/2023/12142-68160267-a6a5-4a41-8a51-d8735c8aa338.jpg",
      "mediaType": "image/jpeg",
      "width": 400, "height": 225
    },
    {
      "type": "Image",
      "url": "https://static.media.ccc.de/media/congress/2023/12142-68160267-a6a5-4a41-8a51-d8735c8aa338_preview.jpg",
      "mediaType": "image/jpeg",
      "width": 1920, "height": 1080
    }
  ],

  "url": [
    {
      "type": "Link",
      "mediaType": "text/html",
      "href": "https://media.ccc.de/v/37c3-12142-breaking_drm_in_polish_trains"
    },
    {
      "type": "Link",
      "rel": ["metadata"],
      "mediaType": "application/json",
      "href": "https://api.media.ccc.de/public/events/68160267-a6a5-4a41-8a51-d8735c8aa338"
    },
    {
      "type": "Link",
      "mediaType": "video/mp4",
      "href": "https://cdn.media.ccc.de/congress/2023/h264-hd/37c3-12142-fra-Breaking_DRM_in_Polish_trains.mp4",
      "height": 1080,
      "size": 587000,
      "fps": 25
    },
    {
      "type": "Link",
      "mediaType": "video/mp4",
      "href": "https://cdn.media.ccc.de/congress/2023/h264-sd/37c3-12142-eng-deu-fra-Breaking_DRM_in_Polish_trains_sd.mp4",
      "height": 720,
      "size": 71380357,
      "fps": 25
    },
    {
      "type": "Link",
      "rel": ["metadata", "video/mp4"],
      "height": 720,
      "fps": 25,
      "mediaType": "application/json",
      "href": "https://media.ccc.de/public/recordings/72245"
    }
    
  ],

  "@context": [
    "https://www.w3.org/ns/activitystreams",
    "https://w3id.org/security/v1",
    {
      "pt": "https://joinpeertube.org/ns#",
      "sc": "http://schema.org#",
      "Hashtag": "as:Hashtag",
      "uuid": "sc:identifier",
      "category": "sc:category",
      "licence": "sc:license",
      "subtitleLanguage": "sc:subtitleLanguage",
      "sensitive": "as:sensitive",
      "language": "sc:inLanguage",
      "isLiveBroadcast": "sc:isLiveBroadcast",
      "liveSaveReplay": {"@type": "sc:Boolean", "@id": "pt:liveSaveReplay"},
      "permanentLive": {"@type": "sc:Boolean", "@id": "pt:permanentLive"},
      "Infohash": "pt:Infohash",
      "Playlist": "pt:Playlist",
      "PlaylistElement": "pt:PlaylistElement",
      "originallyPublishedAt": "sc:datePublished",
      "views": {"@type": "sc:Number", "@id": "pt:views"},
      "state": {"@type": "sc:Number", "@id": "pt:state"},
      "size": {"@type": "sc:Number", "@id": "pt:size"},
      "fps": {"@type": "sc:Number", "@id": "pt:fps"},
      "startTimestamp": {"@type": "sc:Number", "@id": "pt:startTimestamp"},
      "stopTimestamp": {"@type": "sc:Number", "@id": "pt:stopTimestamp"},
      "position": {"@type": "sc:Number", "@id": "pt:position"},
      "downloadEnabled": {"@type": "sc:Boolean", "@id": "pt:downloadEnabled"}
    }
  ]
}

Podcasting 2.0
TBD

Our current json representation in the public api:

{
	"guid": "68160267-a6a5-4a41-8a51-d8735c8aa338",
	"title": "Breaking \"DRM\" in Polish trains",
	"subtitle": "Reverse engineering a train to analyze a suspicious malfunction",
	"slug": "37c3-12142-breaking_drm_in_polish_trains",
	"link": "https://events.ccc.de/congress/2023/hub/event/breaking_drm_in_polish_trains/",
	"description": "We've all been there: the trains you're servicing for a customer suddenly brick themselves and the manufacturer claims that's because you've interfered with a security system.\n\nThis talk will tell the story of a series of Polish EMUs (Electric Multiple Unit) that all refused to move a few days after arriving at an “unauthorized” service company. We'll go over how a train control system actually works, how we reverse-engineered one and what sort of magical “security” systems we actually found inside of it.\n\nReality sometimes is stranger than the wildest CTF task. Reality sometimes is running `unlock.py` on a dozen trains.\n\nThe talk will be a mix of technical and non-technical aspects of analysis which should be understandable for anyone with a technical background. We’ll briefly explain how modern EMUs look like inside, how the Train Control & Monitoring System works, and how to analyze TriCore machine code.",
	"original_language": "eng",
	"persons": [
		"Redford",
		"q3k",
		"MrTick"
	],
	"tags": [
		"37c3",
		"12142",
		"2023",
		"Hardware & Making",
		""
	],
	"view_count": 87978,
	"promoted": true,
	"date": "2023-12-27T23:00:00.000+01:00",
	"release_date": "2023-12-28T00:00:00.000+01:00",
	"updated_at": "2024-01-10T23:30:04.074+01:00",
	"length": 3705,
	"duration": 3705,
	"thumb_url": "https://static.media.ccc.de/media/congress/2023/12142-68160267-a6a5-4a41-8a51-d8735c8aa338.jpg",
	"poster_url": "https://static.media.ccc.de/media/congress/2023/12142-68160267-a6a5-4a41-8a51-d8735c8aa338_preview.jpg",
	"timeline_url": "https://static.media.ccc.de/media/congress/2023/12142-68160267-a6a5-4a41-8a51-d8735c8aa338.timeline.jpg",
	"thumbnails_url": "https://static.media.ccc.de/media/congress/2023/12142-68160267-a6a5-4a41-8a51-d8735c8aa338.thumbnails.vtt",
	"frontend_link": "https://media.ccc.de/v/37c3-12142-breaking_drm_in_polish_trains",
	"url": "https://media.ccc.de/public/events/68160267-a6a5-4a41-8a51-d8735c8aa338",
	"conference_title": "37C3: Unlocked",
	"conference_url": "https://media.ccc.de/public/conferences/37c3",
	"related": [],
	"recordings": [
		{
			"size": 600,
			"length": 3705,
			"mime_type": "video/webm",
			"language": "eng-deu-fra",
			"filename": "37c3-12142-eng-deu-fra-Breaking_DRM_in_Polish_trains_webm-hd.webm",
			"state": "new",
			"folder": "webm-hd",
			"high_quality": true,
			"width": 1920,
			"height": 1080,
			"updated_at": "2023-12-28T13:28:42.909+01:00",
			"recording_url": "https://cdn.media.ccc.de/congress/2023/webm-hd/37c3-12142-eng-deu-fra-Breaking_DRM_in_Polish_trains_webm-hd.webm",
			"url": "https://media.ccc.de/public/recordings/72249",
			"event_url": "https://media.ccc.de/public/events/68160267-a6a5-4a41-8a51-d8735c8aa338",
			"conference_url": "https://media.ccc.de/public/conferences/37c3"
		},
		{
			"size": 276,
			"length": 3705,
			"mime_type": "video/webm",
			"language": "eng-deu-fra",
			"filename": "37c3-12142-eng-deu-fra-Breaking_DRM_in_Polish_trains_webm-sd.webm",
			"state": "new",
			"folder": "webm-sd",
			"high_quality": false,
			"width": 720,
			"height": 576,
			"updated_at": "2023-12-28T11:08:19.001+01:00",
			"recording_url": "https://cdn.media.ccc.de/congress/2023/webm-sd/37c3-12142-eng-deu-fra-Breaking_DRM_in_Polish_trains_webm-sd.webm",
			"url": "https://media.ccc.de/public/recordings/72247",
			"event_url": "https://media.ccc.de/public/events/68160267-a6a5-4a41-8a51-d8735c8aa338",
			"conference_url": "https://media.ccc.de/public/conferences/37c3"
		},
		{
			"size": 277,
			"length": 3705,
			"mime_type": "video/mp4",
			"language": "eng-deu-fra",
			"filename": "37c3-12142-eng-deu-fra-Breaking_DRM_in_Polish_trains_sd.mp4",
			"state": "new",
			"folder": "h264-sd",
			"high_quality": false,
			"width": 720,
			"height": 576,
			"updated_at": "2023-12-28T10:18:49.116+01:00",
			"recording_url": "https://cdn.media.ccc.de/congress/2023/h264-sd/37c3-12142-eng-deu-fra-Breaking_DRM_in_Polish_trains_sd.mp4",
			"url": "https://media.ccc.de/public/recordings/72245",
			"event_url": "https://media.ccc.de/public/events/68160267-a6a5-4a41-8a51-d8735c8aa338",
			"conference_url": "https://media.ccc.de/public/conferences/37c3"
		},
		{
			"size": 56,
			"length": 3705,
			"mime_type": "audio/mpeg",
			"language": "deu",
			"filename": "37c3-12142-deu-Breaking_DRM_in_Polish_trains_mp3-2.mp3",
			"state": "new",
			"folder": "mp3-translated",
			"high_quality": false,
			"width": 0,
			"height": 0,
			"updated_at": "2023-12-28T10:18:28.766+01:00",
			"recording_url": "https://cdn.media.ccc.de/congress/2023/mp3-translated/37c3-12142-deu-Breaking_DRM_in_Polish_trains_mp3-2.mp3",
			"url": "https://media.ccc.de/public/recordings/72244",
			"event_url": "https://media.ccc.de/public/events/68160267-a6a5-4a41-8a51-d8735c8aa338",
			"conference_url": "https://media.ccc.de/public/conferences/37c3"
		},
		{
			"size": 37,
			"length": 3705,
			"mime_type": "audio/opus",
			"language": "deu",
			"filename": "37c3-12142-deu-Breaking_DRM_in_Polish_trains_opus-2.opus",
			"state": "new",
			"folder": "opus-translation",
			"high_quality": false,
			"width": 0,
			"height": 0,
			"updated_at": "2023-12-28T10:18:04.478+01:00",
			"recording_url": "https://cdn.media.ccc.de/congress/2023/opus-translation/37c3-12142-deu-Breaking_DRM_in_Polish_trains_opus-2.opus",
			"url": "https://media.ccc.de/public/recordings/72243",
			"event_url": "https://media.ccc.de/public/events/68160267-a6a5-4a41-8a51-d8735c8aa338",
			"conference_url": "https://media.ccc.de/public/conferences/37c3"
		},
		{
			"size": 56,
			"length": 3705,
			"mime_type": "audio/mpeg",
			"language": "eng",
			"filename": "37c3-12142-eng-Breaking_DRM_in_Polish_trains_mp3.mp3",
			"state": "new",
			"folder": "mp3",
			"high_quality": false,
			"width": 0,
			"height": 0,
			"updated_at": "2023-12-28T10:16:10.363+01:00",
			"recording_url": "https://cdn.media.ccc.de/congress/2023/mp3/37c3-12142-eng-Breaking_DRM_in_Polish_trains_mp3.mp3",
			"url": "https://media.ccc.de/public/recordings/72239",
			"event_url": "https://media.ccc.de/public/events/68160267-a6a5-4a41-8a51-d8735c8aa338",
			"conference_url": "https://media.ccc.de/public/conferences/37c3"
		},
		{
			"size": 38,
			"length": 3705,
			"mime_type": "audio/opus",
			"language": "eng",
			"filename": "37c3-12142-eng-Breaking_DRM_in_Polish_trains_opus.opus",
			"state": "new",
			"folder": "opus",
			"high_quality": false,
			"width": 0,
			"height": 0,
			"updated_at": "2023-12-28T10:15:50.875+01:00",
			"recording_url": "https://cdn.media.ccc.de/congress/2023/opus/37c3-12142-eng-Breaking_DRM_in_Polish_trains_opus.opus",
			"url": "https://media.ccc.de/public/recordings/72238",
			"event_url": "https://media.ccc.de/public/events/68160267-a6a5-4a41-8a51-d8735c8aa338",
			"conference_url": "https://media.ccc.de/public/conferences/37c3"
		},
		{
			"size": 703,
			"length": 3705,
			"mime_type": "video/mp4",
			"language": "eng-deu-fra",
			"filename": "37c3-12142-eng-deu-fra-Breaking_DRM_in_Polish_trains_hd.mp4",
			"state": "new",
			"folder": "h264-hd",
			"high_quality": true,
			"width": 1920,
			"height": 1080,
			"updated_at": "2023-12-28T10:09:54.294+01:00",
			"recording_url": "https://cdn.media.ccc.de/congress/2023/h264-hd/37c3-12142-eng-deu-fra-Breaking_DRM_in_Polish_trains_hd.mp4",
			"url": "https://media.ccc.de/public/recordings/72232",
			"event_url": "https://media.ccc.de/public/events/68160267-a6a5-4a41-8a51-d8735c8aa338",
			"conference_url": "https://media.ccc.de/public/conferences/37c3"
		},
		{
			"size": 587,
			"length": 3705,
			"mime_type": "video/mp4",
			"language": "fra",
			"filename": "37c3-12142-fra-Breaking_DRM_in_Polish_trains.mp4",
			"state": "new",
			"folder": "h264-hd",
			"high_quality": true,
			"width": 1920,
			"height": 1080,
			"updated_at": "2023-12-28T10:09:38.100+01:00",
			"recording_url": "https://cdn.media.ccc.de/congress/2023/h264-hd/37c3-12142-fra-Breaking_DRM_in_Polish_trains.mp4",
			"url": "https://media.ccc.de/public/recordings/72231",
			"event_url": "https://media.ccc.de/public/events/68160267-a6a5-4a41-8a51-d8735c8aa338",
			"conference_url": "https://media.ccc.de/public/conferences/37c3"
		},
		{
			"size": 587,
			"length": 3705,
			"mime_type": "video/mp4",
			"language": "deu",
			"filename": "37c3-12142-deu-Breaking_DRM_in_Polish_trains.mp4",
			"state": "new",
			"folder": "h264-hd",
			"high_quality": true,
			"width": 1920,
			"height": 1080,
			"updated_at": "2023-12-28T10:09:22.984+01:00",
			"recording_url": "https://cdn.media.ccc.de/congress/2023/h264-hd/37c3-12142-deu-Breaking_DRM_in_Polish_trains.mp4",
			"url": "https://media.ccc.de/public/recordings/72230",
			"event_url": "https://media.ccc.de/public/events/68160267-a6a5-4a41-8a51-d8735c8aa338",
			"conference_url": "https://media.ccc.de/public/conferences/37c3"
		},
		{
			"size": 587,
			"length": 3705,
			"mime_type": "video/mp4",
			"language": "eng",
			"filename": "37c3-12142-eng-Breaking_DRM_in_Polish_trains.mp4",
			"state": "new",
			"folder": "h264-hd",
			"high_quality": true,
			"width": 1920,
			"height": 1080,
			"updated_at": "2023-12-28T10:09:08.096+01:00",
			"recording_url": "https://cdn.media.ccc.de/congress/2023/h264-hd/37c3-12142-eng-Breaking_DRM_in_Polish_trains.mp4",
			"url": "https://media.ccc.de/public/recordings/72229",
			"event_url": "https://media.ccc.de/public/events/68160267-a6a5-4a41-8a51-d8735c8aa338",
			"conference_url": "https://media.ccc.de/public/conferences/37c3"
		}
	]
}