From 1660819bfa4d9135e8ed05682cfc8c7f994a5d1b Mon Sep 17 00:00:00 2001 From: Sophia Chapman Date: Wed, 10 May 2023 10:11:25 -0500 Subject: [PATCH 1/3] add simplecast to txt element support --- docs/element-support.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/element-support.md b/docs/element-support.md index 27a76ba..aff7749 100644 --- a/docs/element-support.md +++ b/docs/element-support.md @@ -112,3 +112,4 @@ For elements that are included in the official [DTD](https://github.com/Podcasti ## Txt `` 1. [Transistor](https://transistor.fm/changelog/verification-code) 2. [RSS Blue](https://rssblue.com/help/podcast-metadata#txt-records) +3. [Simplecast](https://help.simplecast.com/en/articles/7320145-rss-feed-ownership-verification) From 2fb5b8875a70b032caddd6c752de66a8c1f29afd Mon Sep 17 00:00:00 2001 From: Dave Jones Date: Wed, 10 May 2023 22:34:56 -0500 Subject: [PATCH 2/3] add remote references to blip-10 --- value/blip-0010.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/value/blip-0010.md b/value/blip-0010.md index 7a911b6..46cc8f5 100644 --- a/value/blip-0010.md +++ b/value/blip-0010.md @@ -157,6 +157,8 @@ Other optional fields: if it is not required for payment routing. * `reply_custom_value` (str) The custom value for routing a reply payment to the sender. This field should not be present if it is not required for payment routing. +* `remote_feed_guid` (str) Sometimes a payment will be sent to a feed's value block because a different feed referenced it in a `` tag. When that happens, this field will contain the guid of the referencing feed. +* `remote_item_guid` (str) Sometimes a payment will be sent to an episode's value block because a different feed referenced it in a `` tag. When that happens, this field will contain the guid of the referencing feed's ``.
From cf1fbd56bbe2974d2c57ed53765a2a2775fd84a1 Mon Sep 17 00:00:00 2001 From: Dave Jones Date: Thu, 11 May 2023 08:56:28 -0500 Subject: [PATCH 3/3] blip-10 cleanup --- value/blip-0010.md | 82 ++++++++++++++++++++++++---------------------- 1 file changed, 42 insertions(+), 40 deletions(-) diff --git a/value/blip-0010.md b/value/blip-0010.md index 46cc8f5..dc12e9b 100644 --- a/value/blip-0010.md +++ b/value/blip-0010.md @@ -15,10 +15,9 @@ called a `stream`, a manually triggered payment is called a `boost` and an autom payment is called an `auto` payment. If there is a message to the podcaster included in a `boost` it is referred to as a `boostagram`. -The payload is a simple JSON structure that is encoded as a TLV in the Lightning payment when it is sent. This +The payload is a simple JSON structure that is encoded as a TLV in the Lightning payment when it is sent. This structure is explained in this document. - Simple Example: ```json @@ -35,7 +34,7 @@ Simple Example: ## Specification -The sender of a bLIP-10 payment (i.e. - the podcast app) needs to include some metadata so the podcast host can +The sender of a bLIP-10 payment (i.e. - the podcast app) needs to include some metadata so the podcast host can identify for whom the payment is for. Most fields are optional.
@@ -44,7 +43,7 @@ identify for whom the payment is for. Most fields are optional. A flat, key-value json structure is used where the keys listed below can be set. The json string is then encoded into `utf8` and attached to the Lightning payment. Most of the time, the payment will be a `keysend` payment, but this -TLV data can be used in standard BOLT11 and BOLT12 payments also. Receivers of messages must be aware that there +TLV data can be used in standard BOLT11 and BOLT12 payments also. Receivers of messages must be aware that there is no guarantee for the order of the keys. A more complex example: @@ -67,6 +66,7 @@ A more complex example: ``` Treated as `utf-8`, the hex value of the above json record would be: + ```base64 7b226170705f6e616d65223a202243617374616d61746963222c20226170705f76657273696f6e223a2022382e302e36222c202276616c75655f 6d7361745f746f74616c223a2034393936302c202275726c223a202268747470733a2f2f66656564732e62757a7a7370726f75742e636f6d2f31 @@ -80,7 +80,7 @@ Treated as `utf-8`, the hex value of the above json record would be: ### Types -If a field is indicated to be a `str` in the fields-list, that means it is a JSON string (within quotes). An `int` is +If a field is indicated to be a `str` in the fields-list, that means it is a JSON string (within quotes). An `int` is a plain number.
@@ -89,7 +89,8 @@ a plain number. Identifying the podcast **required**: use one or more of `podcast`, `guid`, `feedID` and/or `url`. **guid preferred** -* `guid` (str) [The `` tag](https://github.com/Podcastindex-org/podcast-namespace/blob/main/docs/1.0.md#guid). +* `guid` ( + str) [The `` tag](https://github.com/Podcastindex-org/podcast-namespace/blob/main/docs/1.0.md#guid). * `podcast` (str) Title of the podcast * `feedID` (int) ID of podcast in PodcastIndex.org directory * `url` (str) RSS feed URL of podcast @@ -109,61 +110,62 @@ Information about time within the episode **recommended**: use one of `ts` or `t * `ts` (int) Timestamp of when the payment was sent, in seconds, as an offset from zero (i.e. - playback position) * `time` (str) Timestamp of when the payment was sent, in HH:MM:SS notation, as an offset from 00:00:00 - (i.e. - playback position) + (i.e. - playback position)
Other fields that are strongly recommended: -* `action` **recommended**: (str) "boost", "stream" or "auto". See Appending B of the - [value](/value.md#appendix-b---payment-actions) spec for details. +* `action` **recommended**: (str) "boost", "stream" or "auto". See Appending B of the + [value](/value.md#appendix-b---payment-actions) spec for details. * `app_name`: **recommended** (str) Name of sending app * `sender_name` **recommended** (str) Name of the sender (free text, not validated in any way) * `value_msat_total`: **recommended** (int) TOTAL Number of millisats for the payment before any fees are subtracted. - This should be the number the listener entered into the app. Preserving - this value is important for numerology reasons. Certain numeric values can - have significance to the sender and/or receiver, so giving a way to show - this is critical. + This should be the number the listener entered into the app. Preserving + this value is important for numerology reasons. Certain numeric values can + have significance to the sender and/or receiver, so giving a way to show + this is critical.
Other optional fields: -* `message` (str) Text message to add to the payment. When this field is present, the payment is known as a - "boostagram". +* `message` (str) Text message to add to the payment. When this field is present, the payment is known as a + "boostagram". * `app_version`: (str) Version of sending app -* `boost_link`: (str) App specific URL containing route to podcast, episode, and/or timestamp at time of the action. - The use case for this is sending a link along with the payment that will take the recipient to - the exact playback position within the episode where the payment was sent. +* `boost_link`: (str) App specific URL containing route to podcast, episode, and/or timestamp at time of the action. + The use case for this is sending a link along with the payment that will take the recipient to + the exact playback position within the episode where the payment was sent. * `name` (str) Name for this split in value tag * `sender_id` (str) Static random identifier for users, not displayed by apps to prevent abuse. Apps can set this - per-feed or app-wide. A GUID-like random identifier or a hash works well. Max 32 bytes (64 ascii - characters). This can be a Nostr hex encoded pubkey (not NIP-19) for purposes of sender attribution. + per-feed or app-wide. A GUID-like random identifier or a hash works well. Max 32 bytes (64 ascii + characters). This can be a Nostr hex encoded pubkey (not NIP-19) for purposes of sender attribution. * `signature` (str) Optionally, this field can contain a signature for the payment, to be able to verify that the - user who sent it is actually who they claim in the `sender_id` field. If the `sender_id` contains - a Nostr public key, this field should contain a Nostr `sig` value as a 64-byte encoded hex string. - For the purpose of generating the Nostr signature, the following data should be serialized: - [0,`sender_id`,`ts`,1,[],`message`] to conform to the - [NIP-01](https://github.com/nostr-protocol/nips/blob/master/01.md) specification. The resulting - serialized string should be hashed with `sha256` to obtain the value. -* `speed` (str) Speed in which the podcast was playing, in decimal notation at the time the payment was sent. So 0.5 - is half speed and 2 is double speed. + user who sent it is actually who they claim in the `sender_id` field. If the `sender_id` contains + a Nostr public key, this field should contain a Nostr `sig` value as a 64-byte encoded hex string. + For the purpose of generating the Nostr signature, the following data should be serialized: + [0,`sender_id`,`ts`,1,[],`message`] to conform to the + [NIP-01](https://github.com/nostr-protocol/nips/blob/master/01.md) specification. The resulting + serialized string should be hashed with `sha256` to obtain the value. +* `speed` (str) Speed in which the podcast was playing, in decimal notation at the time the payment was sent. So 0.5 + is half speed and 2 is double speed. * `uuid` (str) Unique UUID of the payment. -* `reply_address` (str) The pubkey of the lightning node that can receive payments for the sender. The node given - must be capable of receiving keysend payments. If this field contains an "@" symbol, it should - be interpreted as a - "[lightning address](https://github.com/andrerfneves/lightning-address/blob/master/README.md#tldr)". -* `reply_custom_key` (str) The custom key for routing a reply payment to the sender. This field should not be present - if it is not required for payment routing. -* `reply_custom_value` (str) The custom value for routing a reply payment to the sender. This field should not be present - if it is not required for payment routing. -* `remote_feed_guid` (str) Sometimes a payment will be sent to a feed's value block because a different feed referenced it in a `` tag. When that happens, this field will contain the guid of the referencing feed. -* `remote_item_guid` (str) Sometimes a payment will be sent to an episode's value block because a different feed referenced it in a `` tag. When that happens, this field will contain the guid of the referencing feed's ``. - +* `reply_address` (str) The pubkey of the lightning node that can receive payments for the sender. The node given + must be capable of receiving keysend payments. If this field contains an "@" symbol, it should + be interpreted as a + "[lightning address](https://github.com/andrerfneves/lightning-address/blob/master/README.md#tldr)". +* `reply_custom_key` (str) The custom key for routing a reply payment to the sender. This field should not be present + if it is not required for payment routing. +* `reply_custom_value` (str) The custom value for routing a reply payment to the sender. This field should not be + present if it is not required for payment routing. +* `remote_feed_guid` (str) Sometimes a payment will be sent to a feed's value block because a different feed referenced + it in a `` tag. When that happens, this field will contain the guid of the referencing feed. +* `remote_item_guid` (str) Sometimes a payment will be sent to an episode's value block because a different feed + referenced it in a `` tag. When that happens, this field will contain the guid of the + referencing feed's ``.
- ## Reference Implementations *