Skip to content

Instantly share code, notes, and snippets.

@kookster
Last active October 10, 2022 17:15
Show Gist options
  • Save kookster/cecb37d82b4dba2768997aca8b7a20e0 to your computer and use it in GitHub Desktop.
Save kookster/cecb37d82b4dba2768997aca8b7a20e0 to your computer and use it in GitHub Desktop.
Podcast Namespace, value tag, web monetization

Web Monetization

Use the value and valueRecipient tags to enable web monetization for podcasts.

This value tag would have the following proposed values:

<podcast:value 
    type="webmonetization" 
    method="ILP"
></podcast:value>

podcast:value.type defines the cryptocurrency or protocol layer, which in this case is used to define Web Monetization payment information, using the value of webmonetization.

The method of ILP specifies the use of Interledger Protocol (ILP) which is the protocol for payment providers in WM.

Within the podcast:value tag we also need to designate recipients. In Web Monetization, payment info is discovered using the Simple Payment Setup Protocol with which the Open Payments protocol is designed to be backwards compatible.

Both SPSP and Open Payments use a recipient address in the form of a Payment Pointer which will be provided in the address attribute, with the type of paymentpointer.

<podcast:value 
    type="webmonetization" 
    method="ILP"
>
    <podcast:valueRecipient
        name="Alice"
        type="paymentpointer"
        address="$example.now/~alice"
        split="100"
    />
</podcast:value>

While payments in WM are streamed to a single payment pointer at a time, the WM authors suggest splits can be implemented using Probabilistic Revenue Sharing or perhaps for WM should be implemented at the payment pointer rather than expecting the client to be responsible.

Current <podcast:value\> documentation

Web Monetization and Podcasting Discussion

Background WM (i.e. for podcast audio playing on a background tab)

Castopod Implementation

PodStation Planning by Guilherme Dellagustin

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment