Giter VIP home page Giter VIP logo

activitypub-spec-work's Introduction

activitypub-spec-work

A working repository for podcasting activitypub work. This repo will contain documentation, draft specs for object structures and sample implementation code. Anything that is finalized will go into a formal document to be included as an adjunct to the "Podcast" namespace.

activitypub-spec-work's People

Contributors

daveajones avatar yassinedoghri avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

Forkers

yassinedoghri

activitypub-spec-work's Issues

Proposal: Make the Podcast Episode Object more ActivityPub friendly

Hello there,

just wanted to mention the attachment property in ActivityPub.
This is handled by many generic AP Servers while the description- and audio-property needs active work for other fediverse implementations to support Castopod etc.
While I did also ask myself why there is and “image” property but no “audio” or “video” in the Vocab.

So, I'd propose two changes,

  • make the main type an Array to provide a native AP fallback
  • use attachment

And I think it is a nice move to support VTT like caption, transcript, chapters.
We could handle them as attachment too with Mime text/vtt and the kind, maybe conformant to WebVTT
with these kinds

Please note also that instead of “explicit” the as:sensitive convention / proposed extension exists which others use.

Would love to get your thoughts, in any case, it would be good if projects like Castopod use it to document it in the federation.md document - the best way would be to create a Fediverse Enhancement Proposal for Podcasts …

See also https://socialhub.activitypub.rocks/t/seeking-opinions-on-time-based-content/1566

This is just a proposal …

  "@context": [
    "https://www.w3.org/ns/activitystreams",
    "https://github.com/Podcastindex-org/activitypub-spec-work/blob/main/docs/1.0.md"
  ],
  "type": ["PodcastEpisode", "Note"],
  "id": "https://podcast.demo/podcasts/DemoPodcast/episodes/example-episode",
  "attributedTo": "https://podcast.demo/podcasts/DemoPodcast",
  "to": ["https://www.w3.org/ns/activitystreams#Public"],
  "cc": ["https://podcast.demo/podcasts/DemoPodcast/followers"],
  "name": "An Example PodcastEpisode Object",
  "mediaType": "text/markdown",
  "content": "Here is the description for the **demo episode**!",
  "contentMap": {
    "en": "<p>Here is the description for the <strong>demo episode</strong>!</p>",
    "fr": "<p>Voici la description pour la <strong>démo de l’épisode</strong> !</p>"
  },
  "image": {
    "type": "Image",
    "mediaType": "image/jpeg",
    "url": "https://podcast.demo/media/example-episode_cover.jpg"
  },
  "attachment": [
  {
    "id": "https://podcast.demo/podcasts/activitypub/episodes/example-episode.mp3",
    "type": "Audio",
    "name": "An Example PodcastEpisode Object",
    "size": 1962804,
    "bitrate": 320000,
    "duration": 42,
    "url": {
      "href": "https://podcast.demo/media/example-episode.mp3",
      "type": "Link",
      "mediaType": "audio/mpeg"
    },
    "caption": "https://podcast.demo/media/example-episode/caption",
    "transcript": "https://podcast.demo/media/example-episode/transcript",
    "chapters": "https://podcast.demo/media/example-episode/chapters"
  }
  ],
  "partOfSeason": "https://podcast.demo/podcasts/DemoPodcast/seasons/1",
  "episodeNumber": 1,
  "explicit": false,
  "location": {
    "@type": "Place",
    "geo": {
      "@type": "GeoCoordinates",
      "latitude": "48.8566969",
      "longitude": "2.3514616"
    },
    "name": "Paris, France"
  },
  "discoverable": true,
  "replies": "https://podcast.demo/podcasts/DemoPodcast/episodes/example-episode/replies",
  "published": "2021-04-15T18:00:00Z"
}

Proposal: The Podcast ActivityStream (discussion)

Hey all 👋

First off, thanks for all your work with Podcastindex-org!

I'm the lead developer and maintainer of castopod, a free and open-source hosting platform for podcasting. I've worked on implementing ActivityPub and other Fediverse protocols on version alpha.42.

It took me quite a bit of time getting my head around the documentation of ActivityPub as it may be a bit hard to digest at first. Also, I hit some walls and had to hack my way around some of the limitations with other fediverse platforms. It definitely could have been easier if there existed a widely used spec for podcasting!

That being said, I would like to kick things off with this proposal (#1).

To help anyone overcoming the initial push back that may arise from ActivityPub, I've included a document to describe how it could be extended to push new experiences for podcasters and listeners. I also included concrete examples for anyone familiar with the podcast RSS specification and particularly the Podcastindex-org/podcast-namespace project:

NB:

  • This issue has been created as a base for discussion
  • The examples are not exhaustive and the aim of the documents is to give an idea of what's possible
  • Trying to make use of this repo, I think it is the best way forward to start a conjoint ActivityPub spec for Podcast and more

This is a team effort with @benjaminbellamy

Anyways, hopefully, this will help! And of course, any feedback is welcome! 👇

Some resources for context:

Collaborate with SocialHub ActivityPub community

I was made aware of this repository by @sebilasse post on the SocialHub community forum in Using ActivityPub for Podcasting Comments thread, and I just added you to the ActivityPub Developer Resources Watchlist that I co-maintain (there's also an AP application watchlist.

I highly, highly recommend you and other interested members of Podcastindex join our community, and I hereby invite you to become members. An issue on the fediverse that we need to overcome is dispersed development of ActivityPub-related interoperability projects, where valuable knowledge and insights continue to be stuck in 'siloed' federated app projects, and specification initiatives like yours.

On SocialHub we can be stronger together (see also the Spiral Island analogy), and various podcasting projects have either already joined (e.g. Castopod) or shown interest to join our community. Other media platforms like Peertube and Owncast are also participating.


PS. As feedback to this repo I'd like to recommend adding some more related links and explainer text to the README and to consider adding a license document (even though this repo may be meant as temp workspace). Some repo topic labels for findability would be great too (e.g. 'activitypub', 'podcasting', 'specification', etc.)

PS2. As you will close this issue at certain time, maybe you'd consider mentioning SocialHub community forum in the README. Podcasting related topics can be marked with the #podcasting forum tag.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.