Merge pull request #409 from PRX/feat/value-webmonetization

Proposal for webmonetization using value
pull/427/head
Dave Jones 2023-01-04 10:11:59 -06:00 zatwierdzone przez GitHub
commit d06191e1ab
Nie znaleziono w bazie danych klucza dla tego podpisu
ID klucza GPG: 4AEE18F83AFDEB23
1 zmienionych plików z 63 dodań i 0 usunięć

Wyświetl plik

@ -0,0 +1,63 @@
# Web Monetization using `<podcast:value/>`
To enable and promote Web Monetization (WM) in podcasting, necessary information for WM could be provided for a podcast by adding a `<podcast:value/>` tag to the RSS feed.
https://github.com/Podcastindex-org/podcast-namespace/blob/main/value/value.md
This `value` tag would have the following values for use with Web Monetization:
```xml
<podcast:value
type="webmonetization"
method="ILP"
></podcast:value>
```
The `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)](https://interledger.org/rfcs/0027-interledger-protocol-4/) 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](https://interledger.org/rfcs/0009-simple-payment-setup-protocol) with which the [Open Payments](https://docs.openpayments.dev/web-monetization) protocol is designed to be [backwards compatible](https://docs.openpayments.dev/web-monetization#backwards-compatibility-with-spsp).
Both SPSP and Open Payments use a recipient address in the form of a [Payment Pointer](https://github.com/interledger/rfcs/blob/master/0026-payment-pointers/0026-payment-pointers.md) which will be provided in the `address` attribute, with the `type` of `paymentpointer`.
```xml
<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](https://webmonetization.org/docs/probabilistic-rev-sharing) or perhaps it should be [implemented at the payment pointer](https://github.com/Podcastindex-org/podcast-namespace/issues/132#issuecomment-780145285) rather than expecting the client to be responsible. In either case, the `podcast:value` and `podcast:valueRecipient` tags can provide sufficient information for a web player or page to setup Web Monetization for the podcast.
------
### Current <podcast:value\>
https://github.com/Podcastindex-org/podcast-namespace/blob/main/value/value.md
https://github.com/Podcastindex-org/podcast-namespace/blob/main/value/valueslugs.txt
### Web Monetization and Podcasting Discussion
https://github.com/Podcastindex-org/podcast-namespace/issues/132
https://github.com/WICG/webmonetization/issues/70
### Background WM (i.e. for podcast audio playing on a background tab)
https://github.com/coilhq/web-monetization-projects/issues/387
https://github.com/WICG/webmonetization/issues/17
### PRX Player Implementation (in production)
Player repository: https://github.com/PRX/Play-Next.js
Component to implement monetization: https://github.com/PRX/Play-Next.js/tree/main/components/Player/WebMonetized
Parsing `webmonetization` from the RSS feed: https://github.com/PRX/Play-Next.js/blob/main/lib/parse/data/parseEmbedData.ts#L33-L40
### Castopod Implementation
https://podlibre.social/@Castopod/105278541687633547
https://blog.castopod.org/castopod-supports-web-monetization/
https://github.com/ad-aures/castopod/blob/v1.0.0-beta.14/app/Helpers/rss_helper.php#L85-L95
### PodStation Planning by [Guilherme Dellagustin](https://github.com/dellagustin)
https://github.com/podStation/podStation/issues/185