Share what you learned today. Click here
March 20, 2024

What Activity Streams Could Enable in Podcasting

What Activity Streams Could Enable in Podcasting

Dave is out on this episode, and Sam Sethi from joins Daniel to geek out on Activity Steams and Activity Pub and break it down to find the pros and cons.  "The holy grail of podcasting is cross-app comments. The idea of being able to make a...

Dave is out on this episode, and Sam Sethi from Truefans.fm joins Daniel to geek out on Activity Steams and Activity Pub and break it down to find the pros and cons. 

"The holy grail of podcasting is cross-app comments. The idea of being able to make a comment in one app and then have a comment in another app, and then they synchronize over a single episode."— Sam Sethi 

Your Hosts

Find Dave at schoolofpodcasting.com

Find Daniel at theaudacitytopodcast.com

 Find Sam at truefans.fm (a great way to get access to ALL the 2.0 features)

Mentioned In This Episode

Evan Prodromou on ActivityPub; Gretchen Smith on Ad Results Media

https://weekly.podnews.net/1538779/14700579-evan-prodromou-on-activitypub-gretchen-smith-on-ad-results-media 

 Activity Pub Book by Evan Prodromou

https://www.oreilly.com/library/view/activitypub/9781098162733/ 

Activity Streams 2.0

https://www.w3.org/TR/activitystreams-core/ 

The Audacity to Podcast

School of Podcasting

TrueFans.fm 

Podgagement

Chapters

00:00:51 - Activity Stream Vs Activity Pub 
00:04:31 - Daniel's Translation
00:05:02 - What's the Potential
00:07:30 - Playback and Completion
00:10:50 - Understanding Mastedon
00:14:45 - Different Servers?
00:16:14 - TLV Records
00:18:57 - Privacy Concerns
00:22:33 - Centralized and Decentralized Performance
00:27:13 - Publishing and Pushing
00:28:32 - Comment Moderation
00:35:26 - Are Boostagrams Public?
00:36:27 - Lightbulb Moment
00:38:11 - Separating Data and Payments
00:41:37 - Just Ditch RSS?
00:42:31 - Truefans and Podgagement
00:44:01 - Because It is a Standard
00:48:01 - Yes, Sam Built Them All
00:49:53 - Progressive Web App
00:52:27 - Daniel is On Board
00:53:12 - Different Types of Streams
00:55:58 - You Won't Have to Learn This
00:57:08 - Sam's Challenge

FOLLOW THE SHOW ON A MODERN PODCAST APP

Castamatic Podverse  Listen on the Fountain App

 

Chapters

00:51 - Activity Stream Vs Activity Pub

04:31 - Daniel's Translation

05:02 - What's the Potential

07:30 - Playback and Completion

10:50 - Understanding Mastodon

14:45 - Different Servers?

16:14 - TLV Records

18:57 - Privacy Concerns

22:33 - Centralized and Decentralized Performance

27:13 - Publishing and Pushing

28:32 - Comment Moderation

35:26 - Are Boostagrams Public?

36:27 - Lightbulb Moment

38:11 - Separating Data and Payments

41:37 - Just Ditch RSS?

42:31 - Truefans and Podgagement

44:01 - Because It is a Standard

48:01 - Yes, Sam Built Them All

49:53 - Progressive Web App

52:27 - Daniel is On Board

53:12 - Different Types of Streams

55:58 - You Won't Have to Learn This

57:08 - Sam's Challenge

59:14 - 100,000 Sats

Transcript
1
00:00:00,080 --> 00:00:03,919
What activity streams could enable in podcasting? Strap in because this is

2
00:00:03,919 --> 00:00:07,135
a long episode, and we get deep in the technical weeds.

3
00:00:22,050 --> 00:00:25,705
Get your geek on because we've kicked out Dave Jackson for this episode, and

4
00:00:25,705 --> 00:00:29,385
this could end up being a little bit nerdy. It's just me, Daniel j

5
00:00:29,385 --> 00:00:32,790
Lewis with a special guest, Sam Sethi from truefans.fm,

6
00:00:33,650 --> 00:00:37,410
formerly known as Pod Fans. And we are going to talk about something

7
00:00:37,410 --> 00:00:41,165
that has some really awesome potential for

8
00:00:41,165 --> 00:00:44,785
podcasting 2.0 and several other cool things as well

9
00:00:45,005 --> 00:00:48,685
as siloed into specific apps, especially like what you're going to learn

10
00:00:48,685 --> 00:00:52,320
that Sam has been able to do with True Fans. So, Sam,

11
00:00:52,380 --> 00:00:56,220
here's my first question. Activity stream Mhmm.

12
00:00:56,380 --> 00:01:00,165
And activity pub. Mhmm. What is the difference?

13
00:01:01,025 --> 00:01:04,865
Very simple. Thanks. Good question. Okay. So a little bit

14
00:01:04,865 --> 00:01:08,060
of a walk down memory lane.

15
00:01:08,440 --> 00:01:12,040
RSS dot 2 dot o, Dave Weiner froze

16
00:01:12,040 --> 00:01:15,884
it and gave it over to Harvard. So the IETF created

17
00:01:15,884 --> 00:01:19,424
this thing called the Atom Feed which was a competitor

18
00:01:19,804 --> 00:01:22,950
to RSS. And the Atom Feed's

19
00:01:23,329 --> 00:01:26,770
core function was the extensibility that it had within

20
00:01:26,770 --> 00:01:30,505
it. And as we now know, you

21
00:01:30,505 --> 00:01:34,265
know, Daniel, there's a name space extensibility to

22
00:01:34,265 --> 00:01:37,920
RSS as well, so it was very odd. But in the day, there was a

23
00:01:37,920 --> 00:01:41,520
battle between RSS and Atom, and I'd have no

24
00:01:41,520 --> 00:01:45,295
idea. Betamax versus VHS. No idea what the difference is. Or

25
00:01:45,295 --> 00:01:49,135
or for the more modern kids, Blu ray versus HD Thank you very

26
00:01:49,135 --> 00:01:52,815
much. Or DVD HD. What was it? HD DVD. Yeah. That's where it

27
00:01:52,815 --> 00:01:56,240
was. Bring that one up to date. Now what happened was

28
00:01:56,240 --> 00:02:00,080
Atom morphed into something called the activity stream, and what is an

29
00:02:00,080 --> 00:02:03,575
activity stream? So a couple of very clever people,

30
00:02:03,575 --> 00:02:07,335
Christmas Cena, Jason Snell, and Evan

31
00:02:07,335 --> 00:02:11,014
Prodimo said, look. Wouldn't it be cool with social

32
00:02:11,014 --> 00:02:14,590
networks where you could basically track the activity of

33
00:02:14,590 --> 00:02:18,430
people into an XML file and that was a structured piece

34
00:02:18,430 --> 00:02:22,145
of data. And so it started off with a very simple structure. It was

35
00:02:22,145 --> 00:02:25,765
called active verb object. Actor

36
00:02:25,825 --> 00:02:29,630
Daniel played object podcast. So the name of the

37
00:02:29,630 --> 00:02:33,230
podcast, future podcasting. And you can record that as an entry.

38
00:02:33,230 --> 00:02:37,070
That's very simple. And there were more verbs that you could use. So

39
00:02:37,070 --> 00:02:40,515
you can extend those verbs to be follow, like,

40
00:02:40,895 --> 00:02:44,495
share, whatever. And what that gave you was a nice

41
00:02:44,495 --> 00:02:47,930
structured piece of data, XML based, that

42
00:02:47,930 --> 00:02:51,145
wasn't a set of activities that were carried out by the

43
00:02:51,145 --> 00:02:54,970
chapters, in this case, you. And I could

44
00:02:54,970 --> 00:02:58,495
then read that file and I could then pass it. I could do other things

45
00:02:58,495 --> 00:03:02,095
with it. So I like to liken it to a user

46
00:03:02,095 --> 00:03:05,770
generated RSS feed. That's the best way I like to talk about

47
00:03:05,770 --> 00:03:09,290
it. Now activity pub is the

48
00:03:09,290 --> 00:03:13,085
protocol over which you deliver activity stream. So

49
00:03:13,085 --> 00:03:16,625
think of TCP IP and then RSS is

50
00:03:17,005 --> 00:03:20,610
the data and TCP IP is the transfer protocol. So in the

51
00:03:20,610 --> 00:03:24,130
same way, you have an activity stream and you then

52
00:03:24,130 --> 00:03:27,830
send it to over an activity pub protocol

53
00:03:28,130 --> 00:03:31,974
to a client like Mastodon or whatever. And

54
00:03:31,974 --> 00:03:35,735
so in that client, they can then read the activity stream

55
00:03:35,735 --> 00:03:39,290
and then pass it out and then display whatever's in there. So a

56
00:03:39,290 --> 00:03:42,730
good example is Dave Jones has created something called the

57
00:03:42,730 --> 00:03:46,474
activity bridge. I don't know if you've seen this yet. So

58
00:03:46,474 --> 00:03:49,995
you can go into podcast index, look up in

59
00:03:49,995 --> 00:03:53,435
our, feed or a podcast. Sorry. It has a

60
00:03:53,435 --> 00:03:56,840
unique ID number. You put that ID number with

61
00:03:56,840 --> 00:04:00,360
atap.podcastindex, and boom, it

62
00:04:00,360 --> 00:04:04,035
suddenly appears in your Mastodon as the podcast, and you can follow

63
00:04:04,035 --> 00:04:07,795
it. And so what you've got is the activity stream is

64
00:04:07,795 --> 00:04:11,415
a set of, data based on users'

65
00:04:11,670 --> 00:04:15,370
activity in a social network. In this case, it could be Truefans.

66
00:04:15,590 --> 00:04:18,870
It could be or another third party client. It could be, you know, if if

67
00:04:18,870 --> 00:04:22,645
Twitter supported it, you could have it in there as well. And then

68
00:04:22,645 --> 00:04:26,264
you deliver that over the activity pub to a activity

69
00:04:26,324 --> 00:04:28,905
pub client such as Bastogon. That's it.

70
00:04:30,110 --> 00:04:33,950
So trying to simplify this as well as understand it.

71
00:04:33,950 --> 00:04:37,735
Because some of this stuff I'm learning too along with our audience and also

72
00:04:37,735 --> 00:04:41,495
wanting to Yeah. Make some of this a little more plain English. So

73
00:04:41,495 --> 00:04:45,335
activity stream is basically how the data is stored. Yep. Is

74
00:04:45,335 --> 00:04:49,140
that correct? And then activity pub is how it's

75
00:04:49,140 --> 00:04:52,820
delivered. Correct. Okay. You should've said you should've done this for

76
00:04:52,820 --> 00:04:56,525
me. It was much easier. No. See,

77
00:04:56,525 --> 00:05:00,045
that simple understanding came from the

78
00:05:00,045 --> 00:05:03,479
complex explanation. Right. Thank you. So

79
00:05:03,620 --> 00:05:07,220
what is some of the potential with this? First, let's

80
00:05:07,220 --> 00:05:10,520
jump to what you're doing with activity stream on truefans.fm.

81
00:05:11,925 --> 00:05:15,385
Yeah. So we built Truefans, with activity

82
00:05:15,445 --> 00:05:19,205
streams at the core of it. So we said that as a

83
00:05:19,205 --> 00:05:22,949
user, I can log in, and we will then give you your

84
00:05:22,949 --> 00:05:26,629
personal activity stream of all the things you do while using

85
00:05:26,629 --> 00:05:30,330
Truefence. So I could go in, and I can see how many,

86
00:05:31,145 --> 00:05:34,824
episodes I've played, how many people I've followed, how many

87
00:05:34,824 --> 00:05:38,505
times I've created a clip, how many times I've boosted, how many times I've

88
00:05:38,505 --> 00:05:42,260
zapped. So we've created 30 verbs within

89
00:05:42,260 --> 00:05:46,020
Truefans that enable us to track the activity of

90
00:05:46,020 --> 00:05:49,835
all users. Now what we wanted to do and have done is make

91
00:05:49,835 --> 00:05:53,675
sure that that activity is private if the user wants

92
00:05:53,675 --> 00:05:57,240
it to be. So you can go into the user settings and say hide activity

93
00:05:57,300 --> 00:06:00,980
and the only person who will see that activity is you, the

94
00:06:00,980 --> 00:06:04,740
user. Or you can say, actually, I wanna make everything

95
00:06:04,740 --> 00:06:08,485
public. No problem. And anyone can then go to your profile and see

96
00:06:08,485 --> 00:06:12,245
what activity you've done or converse the 3rd way, which I think is

97
00:06:12,245 --> 00:06:16,010
the best way is we've made all the 30 verbs available. So you just tick

98
00:06:16,010 --> 00:06:19,710
the ones that you want public, and the ones you want private are then hidden.

99
00:06:20,090 --> 00:06:23,635
And see, I might say, I just want to show my plays and boost, I

100
00:06:23,635 --> 00:06:27,315
don't wanna show the show to people I follow or any other

101
00:06:27,315 --> 00:06:31,095
activity I make. So, yes, so we create the activity

102
00:06:31,555 --> 00:06:35,010
stream for each user. And because we've got a social

103
00:06:35,070 --> 00:06:38,610
network element, I can follow Daniel, Value can follow me.

104
00:06:39,070 --> 00:06:42,854
Because we have that model, you can then go and see my profile and see

105
00:06:42,854 --> 00:06:46,534
my activity. And therefore, you might say, oh, what

106
00:06:46,534 --> 00:06:50,215
what was Sam listening to yesterday? Or what did he

107
00:06:50,215 --> 00:06:53,890
boost just now? Or what did he clip? And,

108
00:06:53,890 --> 00:06:57,490
again, that might be a signal for you to go and

109
00:06:57,490 --> 00:07:01,155
listen to a podcast or listen to a clip because you can

110
00:07:01,155 --> 00:07:02,295
see my activity.

111
00:07:04,515 --> 00:07:08,355
Okay. So where I want to switch this

112
00:07:08,355 --> 00:07:12,070
around a little bit is when we're thinking about the future of podcasting.

113
00:07:12,210 --> 00:07:15,510
And we've got a lot of things in development with podcasting

114
00:07:15,570 --> 00:07:19,005
2.0. And my impression, the more I

115
00:07:19,005 --> 00:07:22,605
understand activity stream, the more it seems

116
00:07:22,605 --> 00:07:26,320
like this could be used for a

117
00:07:26,320 --> 00:07:29,919
lot of things inside of podcasting 2 point o. Like, I'm

118
00:07:29,919 --> 00:07:33,520
thinking years ago, it feels like now, I

119
00:07:33,520 --> 00:07:37,265
proposed a webhook idea where podcast apps

120
00:07:37,265 --> 00:07:40,725
could report back play information to some

121
00:07:40,785 --> 00:07:44,600
central server or something. And that's how we could then get

122
00:07:44,600 --> 00:07:48,120
the playback and completion rates from an app, and an app

123
00:07:48,120 --> 00:07:51,815
developer could report that kind of information back. Can can

124
00:07:51,815 --> 00:07:55,335
activity stream do that kind of thing? Yeah. So what

125
00:07:55,335 --> 00:07:58,955
we've done is, apart from the verbs, we've also attached

126
00:07:59,439 --> 00:08:03,219
things like time listened, percent completed, and value paid.

127
00:08:03,840 --> 00:08:07,360
So if you play the future of podcasting, I might

128
00:08:07,360 --> 00:08:11,185
have time listened 88 let's say, 28

129
00:08:11,185 --> 00:08:14,865
minutes, which might be 60% of the show and I

130
00:08:14,865 --> 00:08:18,320
gave you 10,000 cents. Right? All of that's interesting

131
00:08:18,620 --> 00:08:22,080
data metric as well that gets attached to your activity stream.

132
00:08:22,780 --> 00:08:26,320
What we're missing right now is the ability to centrally

133
00:08:26,935 --> 00:08:30,694
aggregate all of that into a single point. So the

134
00:08:30,694 --> 00:08:34,534
next step for Truefans is that we're gonna allow users

135
00:08:34,534 --> 00:08:37,940
on Truefans to publish their activity stream to an

136
00:08:37,940 --> 00:08:41,299
activity pub client. So you might say, I want to

137
00:08:41,299 --> 00:08:45,140
publish, all the things I play automatically. Or anytime

138
00:08:45,140 --> 00:08:48,425
I make a a clip, just let me have the option to click it and

139
00:08:48,425 --> 00:08:51,645
then share it on an activity pub client in the fediverse.

140
00:08:52,425 --> 00:08:55,850
So that's a good second step to what we wanna

141
00:08:55,850 --> 00:08:59,450
do. I aggregate all my activity and then I share the bits I

142
00:08:59,450 --> 00:09:03,265
want with my social network, and that's good. And then that's a

143
00:09:03,265 --> 00:09:07,105
signal to my social network maybe to come and listen to another podcast or

144
00:09:07,105 --> 00:09:10,940
whatever. But the core bot part, and and I think the

145
00:09:10,940 --> 00:09:14,779
holy grail of podcasting is cross app comments. The idea of being

146
00:09:14,779 --> 00:09:18,365
able to make a comment in one app and then have a comment in

147
00:09:18,365 --> 00:09:21,964
another app, and then they synchronize over a single

148
00:09:21,964 --> 00:09:25,699
episode, let's say. So the way to do that would be I

149
00:09:25,699 --> 00:09:29,459
would create an activity stream in Truefans, somebody want to create 1 in Podverse,

150
00:09:29,459 --> 00:09:32,905
someone creates 1 in Fountain. Because we've got this

151
00:09:32,905 --> 00:09:36,505
unique GUID, this, and the feed item, which is

152
00:09:36,505 --> 00:09:40,025
a a unique identifier for a podcast and an

153
00:09:40,025 --> 00:09:43,400
episode, we could aggregate everything around that

154
00:09:43,400 --> 00:09:47,020
single core ID ID. And so

155
00:09:47,160 --> 00:09:50,175
Fountain would publish the activity stream for Daniel

156
00:09:51,035 --> 00:09:54,714
from fountain with your permission. And then if you use true

157
00:09:54,714 --> 00:09:58,330
funds again, that would happen. So you could actually aggregate all of

158
00:09:58,330 --> 00:10:01,690
your activity from any apps you use

159
00:10:01,690 --> 00:10:04,190
or it might be Dave

160
00:10:14,190 --> 00:10:17,870
the apps could just listen to updates from the central

161
00:10:17,870 --> 00:10:21,410
database repository and pull down the additional

162
00:10:21,470 --> 00:10:24,995
comment or pull down additional data. It doesn't have to be comments.

163
00:10:25,215 --> 00:10:28,995
It could be, for example, on fountain, you followed Adam,

164
00:10:29,455 --> 00:10:32,860
and then, we don't need you to follow

165
00:10:33,000 --> 00:10:36,540
Adam again on Truefence. Why would you want to replicate that social

166
00:10:37,000 --> 00:10:40,705
graph? So the point is we would see that activity and

167
00:10:40,705 --> 00:10:44,145
then we could replicate that activity in all the other apps as well. So when

168
00:10:44,145 --> 00:10:47,985
you went into the alternative app, guess what? You're

169
00:10:47,985 --> 00:10:51,570
following Adam. So when we're

170
00:10:51,570 --> 00:10:55,030
talking about this, especially, like, with the cross app comments because

171
00:10:55,570 --> 00:10:59,175
that's the like you said, that is the holy grail. That is something that I

172
00:10:59,175 --> 00:11:02,935
wish we had solved by now. And it feels like it's not

173
00:11:02,935 --> 00:11:06,540
so much a data storage issue, but

174
00:11:06,540 --> 00:11:10,380
an interoperability and a, both the

175
00:11:10,380 --> 00:11:13,980
whole cross app aspect of this. Because what I've

176
00:11:13,980 --> 00:11:17,225
seen that's frustrated me so far, and

177
00:11:17,605 --> 00:11:21,125
before, maybe as recent as before a month

178
00:11:21,125 --> 00:11:24,600
ago, I didn't know there was a difference between ActivityStream and

179
00:11:24,600 --> 00:11:28,060
ActivityPub because every time people were talking about ActivityPub,

180
00:11:28,760 --> 00:11:32,365
I thought Mastodon. But Mastodon is just an

181
00:11:32,365 --> 00:11:35,725
Activity Pub client. Yes. Right? Think of Activity Pub and

182
00:11:35,725 --> 00:11:39,560
Nosta. The same they're a protocol. That's all. Okay.

183
00:11:39,560 --> 00:11:43,319
Well and I know nothing about nosta either. But,

184
00:11:43,800 --> 00:11:47,500
so these are protocols to be able to access the activity

185
00:11:47,639 --> 00:11:50,825
pub. So, like, when I think about cross app commons

186
00:11:51,065 --> 00:11:54,904
Mhmm. One of the frustrations I faced is the understanding of just how,

187
00:11:54,904 --> 00:11:58,550
like, Mastodon works. How there is no one central server,

188
00:11:58,850 --> 00:12:02,550
but these multiple instances or multiple servers

189
00:12:03,010 --> 00:12:06,685
can connect with each other. And so

190
00:12:06,685 --> 00:12:10,285
you can follow people who are on a different server.

191
00:12:10,285 --> 00:12:13,990
Mhmm. And you can bring in

192
00:12:13,990 --> 00:12:17,130
content from another server into your own server. Yep.

193
00:12:17,910 --> 00:12:21,210
Where I see some complications with this,

194
00:12:22,295 --> 00:12:26,055
performance is a big thing that I'm worried about. Because the first time

195
00:12:26,055 --> 00:12:29,675
I saw cross app comments using activity pub implemented,

196
00:12:30,649 --> 00:12:34,430
it was dead slow Yeah. To load just a single episodes

197
00:12:34,490 --> 00:12:37,870
comment stream. And there were not a lot of comments. There were only

198
00:12:38,545 --> 00:12:42,385
under a dozen, I think. How do we solve

199
00:12:42,385 --> 00:12:46,199
that with what we're talking about here? Or is that Let's take

200
00:12:46,199 --> 00:12:49,720
a step back. Right? You use email. I use email. Right? You don't need to

201
00:12:49,720 --> 00:12:53,240
know the underlying structure of the email, whether it's pop 3, IMAP 4,

202
00:12:53,240 --> 00:12:55,805
whatever. Right? I just need to know you're danieljlewis@someserver.com

203
00:12:58,665 --> 00:13:02,360
somewhere. And conversely, you just need to know mine. Right? You click a

204
00:13:02,360 --> 00:13:05,660
button, the email goes off and you don't think about it twice.

205
00:13:06,040 --> 00:13:09,880
That's a federated network. Right? That is a federated network

206
00:13:09,880 --> 00:13:13,635
of email And we we are used to that and we know it

207
00:13:13,635 --> 00:13:16,775
works and, you know, that's it. It has its own,

208
00:13:17,395 --> 00:13:20,949
foibles. Sometimes email doesn't get go out, but fundamentally, it

209
00:13:20,949 --> 00:13:23,529
works 99.999 percent of the time.

210
00:13:24,470 --> 00:13:28,205
The social network, Mastodon, Plex,

211
00:13:28,205 --> 00:13:31,885
and all the others are federated servers of,

212
00:13:32,285 --> 00:13:35,970
Activity Pub. And again, you have an address. I have,

213
00:13:36,290 --> 00:13:39,970
Sam Sethi at Sam Sethi at podcast index dot

214
00:13:39,970 --> 00:13:43,670
social. Right? That's my Mastodon address. And

215
00:13:44,295 --> 00:13:47,815
if you wanna follow me, that's how you find me. You go to it it

216
00:13:47,815 --> 00:13:51,415
basically finds that address like you would an email, and then

217
00:13:51,415 --> 00:13:55,190
you just type something out to that address and boom, it appears in

218
00:13:55,190 --> 00:13:58,550
my inbox. And in fact, activity pub

219
00:13:58,550 --> 00:14:02,385
clients are fundamentally an inbox and outbox. That's all they

220
00:14:02,385 --> 00:14:06,225
are. Very, very simple. Your inbox is the stream of information

221
00:14:06,225 --> 00:14:09,905
you're reading, and your outbox is the messages you write that appear in

222
00:14:09,905 --> 00:14:13,650
somebody else's inbox. That is as fundamentally simple just like

223
00:14:13,650 --> 00:14:17,410
email. And that's why I think it will work and it will scale because we

224
00:14:17,410 --> 00:14:21,090
know that we can scale email that's gone and done for 20

225
00:14:21,090 --> 00:14:24,695
plus years. And what we're seeing with the Fediverse is

226
00:14:24,915 --> 00:14:28,675
more developers are putting time and energy into it and

227
00:14:28,675 --> 00:14:32,310
fixing some of those bugs and those slowness and those issues. So I

228
00:14:32,310 --> 00:14:36,070
think, you know, again, give it give it another year. I think all of that's

229
00:14:36,070 --> 00:14:39,750
gone. So your your problem around scalability and your problem

230
00:14:39,750 --> 00:14:43,565
about speed, I think, are just short term road bumps on

231
00:14:43,565 --> 00:14:47,345
the road to where we need to get to. Okay.

232
00:14:47,644 --> 00:14:51,130
Because as I understand it, like, even with the metaphor

233
00:14:51,190 --> 00:14:54,870
of an email inbox, when

234
00:14:54,870 --> 00:14:58,515
I get my email in my mail app, it is downloading

235
00:14:58,895 --> 00:15:02,675
the messages and I've got that on my computer there.

236
00:15:03,135 --> 00:15:06,880
You don't if you send me an email, you don't have access to all of

237
00:15:06,880 --> 00:15:10,720
my emails. I don't have access to all of yours. We are

238
00:15:10,720 --> 00:15:14,452
sending one thing directly to the other JSON,

239
00:15:15,185 --> 00:15:18,705
but not making that whole conversation thread visible to a third

240
00:15:18,705 --> 00:15:22,300
party. Mhmm. Whereas cross app comments, we

241
00:15:22,300 --> 00:15:25,600
want it all to be visible to everyone else.

242
00:15:25,900 --> 00:15:29,660
So, what it seems like and please correct me if

243
00:15:29,660 --> 00:15:33,285
I'm wrong here. I hope I'm wrong. What it seems like the way

244
00:15:33,285 --> 00:15:36,745
that it has to work now is that there is a

245
00:15:37,125 --> 00:15:40,665
a root post that is basically the episode post.

246
00:15:40,910 --> 00:15:44,510
Is this is episode 5, and that's the thing that

247
00:15:44,510 --> 00:15:48,350
everyone is commenting on that or replying

248
00:15:48,350 --> 00:15:52,185
to each other. But when they're replying to each other, there's still the it's

249
00:15:52,185 --> 00:15:55,945
just a downward tree or a cascading of

250
00:15:55,945 --> 00:15:59,290
all of these connections and replies and relationships across each other.

251
00:16:00,089 --> 00:16:02,990
It seems like every one of those individual messages

252
00:16:03,850 --> 00:16:07,310
could potentially be on a different server.

253
00:16:07,805 --> 00:16:10,685
Is that true? Yep. It could be on a potential different server. It could be

254
00:16:10,685 --> 00:16:14,445
a federated index that we're looking at. Again So that's

255
00:16:14,445 --> 00:16:17,930
the nightmare. Yeah. We haven't, to be honest with you, Daniel, this

256
00:16:17,930 --> 00:16:21,310
last part of the leg, the step 3 hasn't been

257
00:16:21,529 --> 00:16:25,175
really finished. I was I was interviewing Evan Prodimo.

258
00:16:25,315 --> 00:16:28,775
I was talking about cross app comments and there is a server based

259
00:16:29,235 --> 00:16:32,675
capability where you can publish your activity streams to, but it's not

260
00:16:32,675 --> 00:16:36,389
quite, you know, fully baked out. And so I think

261
00:16:36,389 --> 00:16:40,230
there's still another step. So I think what I've been trying

262
00:16:40,230 --> 00:16:43,714
to do is say to the community, look. Here's a w

263
00:16:43,714 --> 00:16:46,935
three c open standard. This is not some

264
00:16:47,635 --> 00:16:50,615
something. I I asked actually, I asked

265
00:16:51,820 --> 00:16:55,660
the Mastodon group, you know, all of the guys you you're involved in

266
00:16:55,660 --> 00:16:59,120
it as well. I put out a message. What does TLV

267
00:16:59,260 --> 00:17:02,815
record stand for and who created it? Oh, my god. It

268
00:17:02,815 --> 00:17:06,494
wasn't very clear. And I think Dave Jones eventually said it was somebody from Sphinx

269
00:17:06,494 --> 00:17:09,990
who created it many years ago. And then Steven Bell said, well,

270
00:17:09,990 --> 00:17:12,970
actually, the TLV record which is this,

271
00:17:13,350 --> 00:17:17,190
payment record of what's been paid on a podcast is

272
00:17:17,190 --> 00:17:20,585
an activity stream. But it's a proprietary activity stream

273
00:17:20,804 --> 00:17:24,585
devised by somebody that we don't really know anymore who's not involved in the community.

274
00:17:25,125 --> 00:17:28,690
It's got 4 verbs in it which is stream, boost,

275
00:17:28,910 --> 00:17:31,730
auto, and reply. That's the 4 verbs.

276
00:17:32,510 --> 00:17:36,305
And within those 4 verbs, the stream verb, for example, you

277
00:17:36,305 --> 00:17:39,905
will put payments, you will put sender, you'll put receiver, you'll

278
00:17:39,905 --> 00:17:43,505
put, podcast episode, all sorts of data will go into

279
00:17:43,505 --> 00:17:47,250
that one bit of information. But that's just an

280
00:17:47,250 --> 00:17:50,630
activity stream, but we've created this TLV record

281
00:17:50,690 --> 00:17:53,885
activity stream fundamentally by

282
00:17:56,185 --> 00:17:59,805
by by chance, I think. What's happened was somebody started off this idea,

283
00:18:00,200 --> 00:18:03,960
and I then think Dave Jones created helipad for Adam to be

284
00:18:03,960 --> 00:18:07,320
able to read them. And then we've sort of gone and followed this

285
00:18:07,320 --> 00:18:10,934
whole concept of the TLV record, but

286
00:18:10,934 --> 00:18:14,775
nobody's actually really understanding how we expand it, how we

287
00:18:14,775 --> 00:18:18,540
extend it, and what's the value of it. And and cross out

288
00:18:18,540 --> 00:18:22,300
comments won't come from the TLV record. So Adam is doing

289
00:18:22,300 --> 00:18:25,360
something that I find, a little frustrating.

290
00:18:26,095 --> 00:18:29,855
The TLV record which is a, basically, it's

291
00:18:29,855 --> 00:18:33,455
the whenever you listen to a podcast and you make a payment, a stream, or

292
00:18:33,455 --> 00:18:37,300
a boost, it creates a like a receipt. Okay? Think of it as like

293
00:18:37,360 --> 00:18:40,480
a receipt and telling you Sure. What you've paid and who you paid it to.

294
00:18:40,480 --> 00:18:44,325
Right? That's private to you and the person who

295
00:18:44,325 --> 00:18:47,305
receives it. So if you paid me,

296
00:18:47,925 --> 00:18:51,740
a a 1,000 boost a 1,000 sat as a boost, I receive that. But

297
00:18:51,740 --> 00:18:55,500
if I then decide to put James Cridland in the split, James now sees

298
00:18:55,500 --> 00:18:59,260
that TLV record. Yeah. If I put 15 people in the split, all

299
00:18:59,260 --> 00:19:03,005
15 people will see the split. And that is right there, that's

300
00:19:03,005 --> 00:19:06,705
a, I've raised this concern as well. That is a major privacy

301
00:19:06,765 --> 00:19:10,470
concern because the person listening may

302
00:19:10,470 --> 00:19:14,070
not know who all is going to receive this message. And some

303
00:19:14,070 --> 00:19:17,685
people in a boostagram, they may say upfront, please don't share

304
00:19:17,685 --> 00:19:21,445
this on the podcast, but I wanna send you this gift because I was gonna

305
00:19:21,445 --> 00:19:25,120
commit suicide last night, but I listened to your episode, and it stopped me

306
00:19:25,120 --> 00:19:28,880
from pulling the trigger, and that's why I'm sending you this they do not want

307
00:19:28,880 --> 00:19:32,320
the world to know that message. And now, everyone in the splits will get to

308
00:19:32,320 --> 00:19:36,125
know that message. Right. And there could be even

309
00:19:36,125 --> 00:19:39,965
worse scenarios than that. So that does

310
00:19:39,965 --> 00:19:43,740
create a problem. One of the things I would love to see is

311
00:19:44,280 --> 00:19:48,040
this activity stream idea be used for more

312
00:19:48,040 --> 00:19:51,475
than cross op comments. And, we can get back to cross op comments. But, like,

313
00:19:51,475 --> 00:19:55,175
for the boostograms, which you and I both see boostograms

314
00:19:55,235 --> 00:19:58,535
as basically comments With payments. Yeah. That's it. Yeah.

315
00:19:58,835 --> 00:20:02,670
So we could write boostergrams to

316
00:20:02,670 --> 00:20:06,270
the activity stream as well, or has that have that as some

317
00:20:06,270 --> 00:20:09,855
kind of option. We do that now anyway. On.

318
00:20:09,855 --> 00:20:13,235
True fans are doing that? Okay. Yeah. And

319
00:20:13,615 --> 00:20:17,155
then the maybe that could even be an an option

320
00:20:17,215 --> 00:20:21,040
to the person sending the boostagram where there is that toggle that

321
00:20:21,040 --> 00:20:24,800
is, like, make this public. And if they say yes, then it goes into

322
00:20:24,800 --> 00:20:27,965
the And, again, we have done that. So in your user settings,

323
00:20:28,424 --> 00:20:32,184
you choose which verbs you wanna meet private and fit

324
00:20:32,184 --> 00:20:35,960
which verbs are public, and that is it. Nobody you know,

325
00:20:35,960 --> 00:20:39,240
if you want everything to be private, you set it to private and no one

326
00:20:39,240 --> 00:20:43,000
sees your activity. Set it to fully public and everyone sees

327
00:20:43,000 --> 00:20:46,845
it or set that intermediary. I choose the verbs I want to be

328
00:20:46,845 --> 00:20:50,625
public. Now we talk about cross app comments, but what about cross app clips?

329
00:20:51,020 --> 00:20:54,700
Right? Yeah. Or, you know, we we've

330
00:20:54,700 --> 00:20:58,460
got other things that we've got planned that would allow you to

331
00:20:58,460 --> 00:21:02,215
have interoperability between apps. So

332
00:21:02,515 --> 00:21:06,115
I think what I'm trying to do and I'm I I I don't know if

333
00:21:06,115 --> 00:21:09,560
I'm failing, but I'm I'm still knocking this door very

334
00:21:09,560 --> 00:21:13,320
hard, is saying to people, look. We are very good

335
00:21:13,320 --> 00:21:17,135
as a community of saying RSS is the, you know, the truth

336
00:21:17,195 --> 00:21:21,035
of feed a feed of truth. Right? Right? It's an XML structure piece of data,

337
00:21:21,035 --> 00:21:24,770
and we're adding tags into it. Think of those tags as verbs.

338
00:21:24,770 --> 00:21:28,370
They're just the same wording. Right? We're just using a different word

339
00:21:28,370 --> 00:21:32,045
in RSS, but they are just verbs. Right? So the person

340
00:21:32,045 --> 00:21:35,485
tag, the transcript tag, they're verbs in the

341
00:21:35,485 --> 00:21:39,270
RSS feed. And then we know what we do with them. In the

342
00:21:39,270 --> 00:21:42,950
same way with a user generated feed, the activity stream, we

343
00:21:42,950 --> 00:21:46,630
just have verbs and we can extend those verbs to as many

344
00:21:46,630 --> 00:21:50,034
verbs we want. You know, things that we haven't thought about now we can add

345
00:21:50,034 --> 00:21:53,554
as a new verb. And so, what I'm trying to say is,

346
00:21:53,794 --> 00:21:57,090
the top end we've got RSS with a a structured piece of data. At the

347
00:21:57,090 --> 00:22:00,769
bottom, we've got activity team with a structured piece of data. And that our

348
00:22:00,769 --> 00:22:04,529
activity stream just in its basic format as I said earlier, can you can

349
00:22:04,529 --> 00:22:08,325
just say, I just wanna publish it to my Mastodon client. And so everyone can

350
00:22:08,325 --> 00:22:12,165
see who's in my social network, who follows me what I'm doing. And

351
00:22:12,165 --> 00:22:15,990
that's one simple way of sharing. And then the other one, as

352
00:22:15,990 --> 00:22:19,830
I said, is to aggregate it around an episode. And then, yes,

353
00:22:19,830 --> 00:22:22,630
maybe we start with cross that comments, but then we end up with cross that

354
00:22:22,630 --> 00:22:26,165
clips. Maybe we end up with other things that we haven't developed

355
00:22:26,165 --> 00:22:29,525
yet that can be interoperable between apps, but you've got

356
00:22:29,525 --> 00:22:32,905
structured data which means it's possible. It's totally

357
00:22:32,965 --> 00:22:36,270
possible. I know that some of the complication

358
00:22:36,410 --> 00:22:40,170
with building things in the modern web and with podcasting 2.0

359
00:22:40,170 --> 00:22:43,794
is we've got in podcasting, we have a combination

360
00:22:43,934 --> 00:22:47,235
of centralized and decentralized. The

361
00:22:47,774 --> 00:22:51,550
the data for a podcast, from a podcast Mhmm. The podcast

362
00:22:51,550 --> 00:22:55,310
itself is centralized. The consumption is

363
00:22:55,310 --> 00:22:59,125
decentralized. So like the RSS feed, there is 1 or

364
00:22:59,125 --> 00:23:02,885
there should be only 1 RSS feed Yes. For a podcast. There should

365
00:23:02,885 --> 00:23:06,440
not be hundreds of feeds and mirrors and all of these

366
00:23:06,440 --> 00:23:10,200
proxies you have to worry about. There is 1. Mhmm. So that's centralized. There

367
00:23:10,200 --> 00:23:13,955
are other aspects of podcasting. Like, there is one media file. Yes,

368
00:23:14,015 --> 00:23:17,715
it does get syndicated across a CDN or a content distribution

369
00:23:17,855 --> 00:23:21,530
network. But still, that's super easy for the publisher when they upload a new

370
00:23:21,530 --> 00:23:25,210
file or replace it that then all of that gets flushed out and then refreshed

371
00:23:25,210 --> 00:23:28,975
with a new file. It's still centralized. The podcaster themselves

372
00:23:28,975 --> 00:23:32,675
is in control. The decentralized asset aspect

373
00:23:32,735 --> 00:23:36,580
is the consumption of all of JSON, And

374
00:23:36,580 --> 00:23:40,020
that's where we have hundreds of apps that people can use to

375
00:23:40,020 --> 00:23:43,860
consume centralized information but consume it

376
00:23:43,860 --> 00:23:47,465
in a decentralized way. So looking at activity

377
00:23:47,465 --> 00:23:51,065
stream, one of the ways that I could see this working out for cross hop

378
00:23:51,065 --> 00:23:54,765
comments, for a lot of things, for the webhook or,

379
00:23:55,429 --> 00:23:59,030
John Spurlock came along and also proposed a similar idea calling it the events

380
00:23:59,030 --> 00:24:02,789
tag. Same thing. Webhook events. Same thing. But all of this could go

381
00:24:02,789 --> 00:24:06,585
into a central activity stream that

382
00:24:06,585 --> 00:24:10,425
the podcaster controls or owns in some way, whether that's through

383
00:24:10,425 --> 00:24:14,130
their podcast hosting provider, some service that they run themselves

384
00:24:14,130 --> 00:24:17,750
or pay for, whatever. But it's a centralized service, centralized

385
00:24:17,890 --> 00:24:21,495
location. And then all of these other

386
00:24:21,875 --> 00:24:25,235
activity pub clients built into apps or

387
00:24:25,235 --> 00:24:28,835
other, systems can read

388
00:24:28,835 --> 00:24:30,760
that centralized information.

389
00:24:33,140 --> 00:24:36,820
And maybe the solution to this performance problem is that whatever is

390
00:24:36,820 --> 00:24:40,044
hosting that centralized activity stream

391
00:24:40,825 --> 00:24:44,585
is responsible to go out and find everything that

392
00:24:44,585 --> 00:24:48,184
was federated, that was networked with it and sent back into

393
00:24:48,184 --> 00:24:50,450
it, And then pull that in

394
00:24:51,950 --> 00:24:55,490
whenever one of those apps, like, sends that ping into

395
00:24:55,895 --> 00:24:59,735
that activity streams inbox. And please correct me if

396
00:24:59,735 --> 00:25:03,575
I'm, like, saying something incorrectly. I'm along the way here, but What you've got

397
00:25:03,575 --> 00:25:07,030
to think of is, if I write a boost in

398
00:25:07,030 --> 00:25:10,390
Truefans, in my activity stream, that's now my

399
00:25:10,390 --> 00:25:13,610
outbox. Okay? And then I publish it.

400
00:25:14,015 --> 00:25:17,855
That gets published, then we where it get published to today

401
00:25:17,855 --> 00:25:21,375
is the question. Right? That's what we're trying to figure out that part, that that

402
00:25:21,375 --> 00:25:24,530
last part. But wherever that gets published to,

403
00:25:24,910 --> 00:25:28,450
fountain will then have an inbox, which is the

404
00:25:28,990 --> 00:25:32,815
boost section of that episode where that

405
00:25:32,815 --> 00:25:36,255
will then appear as a message into that

406
00:25:36,255 --> 00:25:39,715
section. So my boost that I wrote in True Fans gets published.

407
00:25:40,170 --> 00:25:43,930
Fountain listens for that episode, and there's a new piece

408
00:25:43,930 --> 00:25:47,450
of data in there, like, think of it as an email, and it gets then

409
00:25:47,450 --> 00:25:51,165
published down to Fountain. Right? So fountain

410
00:25:51,165 --> 00:25:54,925
is an inbox in this case because it's getting data from another

411
00:25:54,925 --> 00:25:58,519
app. And I'm an out box because I created

412
00:25:58,519 --> 00:26:02,200
it in Truefence. Conversely, if you were using

413
00:26:02,200 --> 00:26:05,639
fountain and you created a clip or a boost in

414
00:26:05,639 --> 00:26:09,305
fountain and then published it, That's then goes out of

415
00:26:09,305 --> 00:26:13,065
Fountain's outbox for Daniel, and I then listen for

416
00:26:13,065 --> 00:26:16,525
that, and then I bring it into the inbox, which is the episode

417
00:26:17,030 --> 00:26:20,490
where it then gets aggregated with any other comments

418
00:26:20,550 --> 00:26:24,150
made by Truefans people. So you then get a

419
00:26:24,150 --> 00:26:27,965
mixture of Truefans comments and you get a mixture of Fountain and

420
00:26:27,965 --> 00:26:31,804
Podverse and, podcast guru. And that's how you

421
00:26:31,804 --> 00:26:35,400
get cross outcomes. This concept of an inbox and an

422
00:26:35,400 --> 00:26:39,240
outbox is fundamentally critical to understanding how

423
00:26:39,240 --> 00:26:42,695
activity pub works and how activity streams are just

424
00:26:42,695 --> 00:26:45,915
messages. So activity streams are just messages,

425
00:26:47,015 --> 00:26:50,780
but they happen to be richer than an email message, which is a single verb.

426
00:26:51,100 --> 00:26:54,720
It happens to be multiple verbs. And so I'm creating

427
00:26:55,500 --> 00:26:59,100
fundamentally a boost in email message if you wanna think of it. I'm then putting

428
00:26:59,100 --> 00:27:02,764
in my outbox in Truefans that then gets published, and that could be

429
00:27:02,764 --> 00:27:06,365
published to my Mastodon or to a central location. And then

430
00:27:06,365 --> 00:27:10,030
others are listening for it just like they would on an email, and then

431
00:27:10,030 --> 00:27:13,410
gets dragged into the inboxes of those applications.

432
00:27:14,430 --> 00:27:18,270
So that whole publishing aspect and the other apps listening, that is

433
00:27:18,270 --> 00:27:21,985
something where when you publish, you're sending it

434
00:27:21,985 --> 00:27:25,765
to those listening services. Right? It's a it's a push. Yes.

435
00:27:26,305 --> 00:27:30,130
Okay. So they could receive that push. They don't have to be

436
00:27:30,130 --> 00:27:33,970
running a server that is pulling p o o or p o

437
00:27:33,970 --> 00:27:37,725
l l Yeah. I n g. That is pulling these

438
00:27:37,725 --> 00:27:41,505
other services. They don't have to do that. They can just have a listener webhook

439
00:27:41,565 --> 00:27:44,945
endpoint, whatever. Ping. Yep. And it can receive that

440
00:27:45,660 --> 00:27:49,340
and then publish it to the centralized activity stream that

441
00:27:49,340 --> 00:27:52,860
belongs to the podcaster. Yep. And by belongs to, I mean, is in their

442
00:27:52,860 --> 00:27:56,415
control. It might be on the podcast hosting provider server,

443
00:27:56,415 --> 00:28:00,255
but it's in their control. And then one of the

444
00:28:00,255 --> 00:28:03,830
other problems, haven't mentioned yet in this episode, a big thing that I see is

445
00:28:03,830 --> 00:28:07,670
the need for moderation. Not in the sense of what the world

446
00:28:07,670 --> 00:28:11,205
is talking about with content moderation, but in the sense of the podcaster

447
00:28:11,345 --> 00:28:14,945
wants to be able to moderate content and control what content is

448
00:28:14,945 --> 00:28:18,680
seen with their content. So, a

449
00:28:18,680 --> 00:28:22,360
practical example here is maybe I have a clean

450
00:28:22,360 --> 00:28:26,034
podcast designed for kids and someone

451
00:28:26,034 --> 00:28:29,495
comes JSON, and they make a comment that's laced with profanity

452
00:28:29,794 --> 00:28:33,570
and sexual content, whatever. Yep. And I might not

453
00:28:33,570 --> 00:28:37,330
be able to block their whole activity pub server

454
00:28:37,330 --> 00:28:40,770
because maybe they're using an open server that's used by a lot of other

455
00:28:40,770 --> 00:28:44,554
people. But I need to be able to either remove that

456
00:28:44,554 --> 00:28:48,075
comment completely or maybe it's a

457
00:28:48,075 --> 00:28:51,840
genuinely valuable comment, but they just didn't realize, oh,

458
00:28:51,840 --> 00:28:55,380
this is to an audience of children. I probably shouldn't use this profanity.

459
00:28:55,919 --> 00:28:59,375
So, I would want the ability to then just edit

460
00:28:59,375 --> 00:29:02,975
out, censor that profanity so that the value they're

461
00:29:02,975 --> 00:29:06,735
giving in the comment could still be there, but it would still

462
00:29:06,735 --> 00:29:10,320
be appropriate for being

463
00:29:10,320 --> 00:29:13,940
alongside my podcast. So that's why I think that there is the need for

464
00:29:14,400 --> 00:29:17,840
a centralized storage of the activity stream. Yeah.

465
00:29:17,840 --> 00:29:21,225
So so two parts to that. 1 is how do

466
00:29:21,845 --> 00:29:25,445
you moderate comments? I mean, look. We've we've all had this

467
00:29:25,445 --> 00:29:29,140
problem across the web. Right? I mean, look at look at YouTube's

468
00:29:29,140 --> 00:29:32,900
comments. Look at, you know, every time that Facebook has comments,

469
00:29:32,900 --> 00:29:36,555
there's a whole bunch of issues. Right? So, with

470
00:29:36,555 --> 00:29:40,095
Boost right now, we have no moderation in the sense of

471
00:29:40,395 --> 00:29:44,200
keyword lookups or keywords that we don't want. Right? That hasn't been built. But

472
00:29:44,200 --> 00:29:47,960
what we have done again in true fans is got a flagging system and a

473
00:29:47,960 --> 00:29:51,740
moderation system. So for example, in your admin dashboard

474
00:29:51,880 --> 00:29:55,075
for the future of podcasting, if I made a profane

475
00:29:56,655 --> 00:30:00,415
boost, right? And somebody reported it, you don't have to

476
00:30:00,415 --> 00:30:03,290
see you you don't have to do it yourself but you can read all of

477
00:30:03,290 --> 00:30:07,130
your own comments that people are making. And you might say, right, flag that

478
00:30:07,130 --> 00:30:10,910
one, delete that one, get rid of that. As the owner of the podcast,

479
00:30:11,304 --> 00:30:15,065
you will get a flag notification and then you can read it and

480
00:30:15,065 --> 00:30:17,965
go, you know what, Sam? That wasn't very clever.

481
00:30:18,810 --> 00:30:22,650
I'm gonna delete it or I'm gonna send you a message which says, by

482
00:30:22,650 --> 00:30:25,850
the way, Sam change that. Take those words out and I'll I'll let it be

483
00:30:25,850 --> 00:30:29,434
published again. So we've built that in already as

484
00:30:29,434 --> 00:30:33,135
well. That moderation. That was built day 1 fundamentally

485
00:30:33,195 --> 00:30:36,890
because my wife used to run MSN UK and they had to close

486
00:30:36,890 --> 00:30:40,730
down all of the community, sites because of all

487
00:30:40,730 --> 00:30:44,465
of the pedophiles and the dodgy content that was going.

488
00:30:44,544 --> 00:30:48,065
So I've had that drilled into me from day 1. And I think we haven't

489
00:30:48,065 --> 00:30:51,904
even thought about that in the podcast community yet, about cross app

490
00:30:51,904 --> 00:30:55,649
comments and the whole of what you just said. We, you know, we

491
00:30:55,649 --> 00:30:59,190
we know that, YouTube commerce is a cesspool of commentary

492
00:30:59,649 --> 00:31:03,269
half the time, and we haven't seen that yet because guess what?

493
00:31:03,375 --> 00:31:07,135
There isn't enough, usage of boosts to

494
00:31:07,135 --> 00:31:10,835
make that a worry. The hope is that because a boost has a micropayment

495
00:31:11,055 --> 00:31:14,700
with it that that trolls won't leave, you know,

496
00:31:14,700 --> 00:31:18,539
crappy comments. That's what we're hoping, but that's not true. I've

497
00:31:18,539 --> 00:31:22,220
seen advertising comments. I've seen other comments that

498
00:31:22,220 --> 00:31:25,735
are, you know, one sat sort of made a micropayment

499
00:31:26,115 --> 00:31:29,795
but they put up total rubbish. And I remember from my days

500
00:31:29,795 --> 00:31:33,270
in, WordPress. You know, we had, something called a

501
00:31:33,270 --> 00:31:36,970
pingback, which was a great idea. Yeah. Right? Which was, you know,

502
00:31:37,030 --> 00:31:40,630
somebody's made a comment that's referenced you. You get a notification, blah blah

503
00:31:40,630 --> 00:31:43,755
blah. Well, of course, the the the spam has worked out that you could use

504
00:31:43,755 --> 00:31:46,235
pingbacks to go and do all sorts of other things, and we had to close

505
00:31:46,235 --> 00:31:49,595
that down. So I think we have got some challenges in the

506
00:31:49,595 --> 00:31:53,210
future, but, they're not there yet. And I think, you know, just make

507
00:31:53,330 --> 00:31:57,090
being able to do first level moderation flagging and deleting, I think,

508
00:31:57,090 --> 00:32:00,805
is the thing we have to look at. Yeah. And I think that the the

509
00:32:00,805 --> 00:32:04,425
solution for that is if that activity stream can be centralized

510
00:32:05,125 --> 00:32:08,500
that the podcaster has control over, and that is then

511
00:32:08,500 --> 00:32:12,179
seen as the source of truth Yeah. For that podcast. So the

512
00:32:12,179 --> 00:32:15,559
podcast apps would default to loading from that even though

513
00:32:15,934 --> 00:32:19,375
that comment would still exist somewhere out there in the

514
00:32:19,375 --> 00:32:22,595
fediverse. Mhmm. It would not be in my

515
00:32:22,960 --> 00:32:26,419
comment stream, in my activity stream because

516
00:32:26,480 --> 00:32:30,240
I've removed it. And so when a podcast app loads the cross app comments from

517
00:32:30,240 --> 00:32:33,605
my podcast, it would be loading from my activity stream,

518
00:32:34,065 --> 00:32:37,905
and therefore, it would not show that comment. I think again, you

519
00:32:37,905 --> 00:32:41,710
know, let's go back to basics. Right? So an activity

520
00:32:41,710 --> 00:32:45,470
stream now, now that we've discussed it a little bit, is basically a

521
00:32:45,470 --> 00:32:48,770
set of activities of a user on a podcasting

522
00:32:48,830 --> 00:32:52,195
app. Daniel played feature of podcasting.

523
00:32:52,495 --> 00:32:56,175
Sam played podcasting 2 dot o.

524
00:32:56,655 --> 00:32:59,440
Daniel boosted Daniel clip. Right?

525
00:33:00,220 --> 00:33:03,980
That becomes a stream of activity that you own that is

526
00:33:03,980 --> 00:33:07,035
your data that you can have hidden

527
00:33:07,575 --> 00:33:11,415
for privacy or public. The bits that we know is that

528
00:33:11,415 --> 00:33:15,115
that can be published to your activity pub client like a Mastodon,

529
00:33:15,175 --> 00:33:18,790
so I can choose what I want my social network on Mastodon to

530
00:33:18,790 --> 00:33:22,550
know about what I'm doing or not. And then the final part

531
00:33:22,550 --> 00:33:25,645
is how we publish it to a central repository

532
00:33:26,424 --> 00:33:30,265
that will then allow cross app comments, cross app clips. And that third

533
00:33:30,265 --> 00:33:33,760
part is still being developed or thought

534
00:33:33,760 --> 00:33:37,440
through and and is not finished. Right? So let's be

535
00:33:37,440 --> 00:33:41,245
clear that part isn't. But my worry is what we're doing

536
00:33:41,245 --> 00:33:44,764
in the podcasting 2 dot o community right now is we're using the

537
00:33:44,764 --> 00:33:48,125
TLV record as a proxy for an activity

538
00:33:48,125 --> 00:33:51,460
stream with 4 verbs, and we're creating,

539
00:33:51,760 --> 00:33:55,520
as you said rightly, a privacy issue that the person

540
00:33:55,520 --> 00:33:59,085
who's receiving the money can create splits and then

541
00:33:59,385 --> 00:34:03,145
multiple people get that TLV record without the user

542
00:34:03,145 --> 00:34:06,770
who made the payment knowing where that record went to.

543
00:34:06,770 --> 00:34:10,469
And I don't think it's scalable because, you know, as I said,

544
00:34:10,690 --> 00:34:14,435
it's 20 podcast apps. Right? So Adam today puts 1%

545
00:34:14,494 --> 00:34:18,335
in for the boost to gram bot on fountain. What if Podverse has

546
00:34:18,335 --> 00:34:20,974
a boost to gram bot? What if I have a boost to gram bot? Does

547
00:34:20,974 --> 00:34:24,809
he have to put 3 splits in now? What if all 20 of us

548
00:34:24,809 --> 00:34:28,650
have a boost to gram bot? Is there 20 splits in Adam's wallet so

549
00:34:28,650 --> 00:34:32,324
that we can all see that TLV record? That is not a scalable

550
00:34:32,324 --> 00:34:35,464
solution. That is a hack, and it needs to stop.

551
00:34:36,324 --> 00:34:40,040
Yeah. And one of the things that I brought up before, and

552
00:34:40,040 --> 00:34:43,719
I'll I'll mention what shot it down in a moment, but

553
00:34:43,719 --> 00:34:47,400
I I brought up a proposal of what if we have on the

554
00:34:47,400 --> 00:34:51,105
value tag for whatever split that you were putting in there. Now we

555
00:34:51,105 --> 00:34:54,545
have to think about also the time based splits, but for whatever

556
00:34:54,545 --> 00:34:58,310
split, you could have a flag on there that is basically

557
00:34:59,490 --> 00:35:03,110
like do not send messages with this.

558
00:35:04,610 --> 00:35:08,435
For for Podverse or for whatever. If we've got them in the

559
00:35:08,435 --> 00:35:12,035
split, then they do not get whatever message

560
00:35:12,035 --> 00:35:15,829
someone is sending, but they do get the split of

561
00:35:16,210 --> 00:35:19,890
the this booster grant or the, the sats that are being sent with

562
00:35:19,890 --> 00:35:23,185
them. One of the things that

563
00:35:23,724 --> 00:35:27,405
was used to shoot that down though was saying that all

564
00:35:27,405 --> 00:35:31,160
Boostagrams are already public. Is that true? Like, on the

565
00:35:31,160 --> 00:35:34,680
blockchain sort of public or what? Yeah. I mean, if you go to

566
00:35:34,680 --> 00:35:38,440
Olby, and you go to a product they've called Saturn, you can see

567
00:35:38,440 --> 00:35:42,205
pretty much most streams that are coming through. I can see so

568
00:35:42,205 --> 00:35:45,965
anyone who's sending stuff to True Fans, I can go and see.

569
00:35:45,965 --> 00:35:49,380
Right? But because it's But you can only see it because it's being sent to

570
00:35:49,380 --> 00:35:53,140
True Fans. You can't there is no public record. And

571
00:35:53,140 --> 00:35:56,980
which is why you put somebody in the splits to make them available so

572
00:35:56,980 --> 00:36:00,355
that they can see that same TLV record. And I just

573
00:36:00,355 --> 00:36:04,055
think you know, let's be brutally honest. I think

574
00:36:04,515 --> 00:36:08,190
the idea of value for value is great. I love the idea of the micropayments.

575
00:36:08,490 --> 00:36:12,190
I love the idea of wallets and splits. I think that's a brilliant model.

576
00:36:12,650 --> 00:36:15,790
Don't wanna change that. But I think the data

577
00:36:16,744 --> 00:36:20,365
mechanism of how we record those activities

578
00:36:20,665 --> 00:36:22,685
around payments boosts streams,

579
00:36:24,420 --> 00:36:27,240
replies shouldn't be done through a TLV record.

580
00:36:28,020 --> 00:36:31,860
Okay. So I just had this light bulb moment that all this time when you've

581
00:36:31,860 --> 00:36:35,474
been saying that, like, dissing on the whole 20 different splits in a

582
00:36:35,474 --> 00:36:39,315
single podcast episode and saying the activity stream solves this, all this time

583
00:36:39,315 --> 00:36:43,130
I was thinking, how in the world so for anyone else that was there

584
00:36:43,130 --> 00:36:46,890
with me wondering how does this solve the splits, this was the light bulb moment

585
00:36:46,890 --> 00:36:50,685
that finally I realized is when you're adding like a Podverse

586
00:36:50,985 --> 00:36:54,765
or an OP3 or whatever in there, the only reason

587
00:36:54,905 --> 00:36:58,720
that many podcasters are putting that in there is so that those

588
00:36:58,720 --> 00:37:02,480
apps get access to the data. Yeah. So that they get access

589
00:37:02,480 --> 00:37:06,305
to the activity. Yes. Not so they get

590
00:37:06,305 --> 00:37:08,705
a portion of the fee. Although, I'm sure some of the people And they will

591
00:37:08,705 --> 00:37:11,345
get a portion of the fee as well. They'll get a 1% portion of the

592
00:37:11,345 --> 00:37:15,190
fee. So what you're saying that we could do with this and

593
00:37:15,190 --> 00:37:18,410
the activity stream and everything is so that those services

594
00:37:19,430 --> 00:37:23,075
that only need to be able to track the activity could instead

595
00:37:23,855 --> 00:37:26,974
use the activity stream as long as the apps, whenever they send a boost to

596
00:37:26,974 --> 00:37:30,355
gram, also send that data over to the activity stream.

597
00:37:30,750 --> 00:37:34,510
And to your point, I could then say, yes. I want

598
00:37:34,510 --> 00:37:38,349
John Spurlock in o p 3 to have access to my activity, but, no,

599
00:37:38,349 --> 00:37:42,115
I don't want I can't think of anyone. Facebook

600
00:37:42,655 --> 00:37:46,255
on threads, which is an activity pub client to have access to my

601
00:37:46,255 --> 00:37:49,475
activity stream. Right? So I could choose

602
00:37:50,100 --> 00:37:53,860
where my activity stream is public when it's published, who has

603
00:37:53,860 --> 00:37:57,560
access to that published data. That's the point.

604
00:37:58,100 --> 00:38:01,704
And the problem is I, as the user, can

605
00:38:01,704 --> 00:38:05,085
set my permission levels on what I want public and private

606
00:38:05,385 --> 00:38:09,005
and access levels on who should get access to my data

607
00:38:09,220 --> 00:38:12,980
that I have published. So then you would be

608
00:38:12,980 --> 00:38:16,660
splitting right now it's data and payment is

609
00:38:16,660 --> 00:38:20,245
together. Mhmm. So you would be splitting it so that you only put who you

610
00:38:20,245 --> 00:38:24,005
want to receive a payment in your value time splits

611
00:38:24,005 --> 00:38:27,760
or your value splits. But data would be completely

612
00:38:27,760 --> 00:38:31,520
separate from that. It can be. It doesn't have to be. It can be. So

613
00:38:31,520 --> 00:38:34,260
as I said very earlier, the activity

614
00:38:35,145 --> 00:38:38,905
stream structure is active verb object. The object is

615
00:38:38,905 --> 00:38:42,745
fundamentally the episode, but we can extend the object to

616
00:38:42,745 --> 00:38:46,579
be the timeless and the value paid and the percent completed.

617
00:38:46,579 --> 00:38:50,339
We can extend objects to be multiple objects. It doesn't just have to

618
00:38:50,339 --> 00:38:53,994
be the episode name. Right? So what what

619
00:38:54,295 --> 00:38:58,055
did Value, the actor, do? He played the object. And

620
00:38:58,055 --> 00:39:01,820
what happened with that object? It had these extra attributes on it,

621
00:39:02,140 --> 00:39:05,820
value, time, and etcetera. That's data.

622
00:39:05,820 --> 00:39:09,645
That's just we've done it. We've seen this structured data. Right? You know?

623
00:39:09,805 --> 00:39:13,645
So that's data that that can be read. I could then, as

624
00:39:13,645 --> 00:39:17,485
a user through apps, choose what verbs are

625
00:39:17,485 --> 00:39:21,200
published. But once I've published that, I can then choose

626
00:39:21,660 --> 00:39:25,200
who has access to that as well. And so you aren't,

627
00:39:26,585 --> 00:39:30,125
separating payment from data. Sorry to be clear.

628
00:39:30,585 --> 00:39:34,410
But what you are doing is separating the for people to

629
00:39:34,410 --> 00:39:38,089
access the data I choose to publish because they have to have my

630
00:39:38,089 --> 00:39:41,685
permission to access my data. And that's all it is.

631
00:39:41,745 --> 00:39:45,505
So Fountain would request access to it and I go, yeah, I love

632
00:39:45,505 --> 00:39:48,785
Fountain. Yeah. I love Podverse wants it. Yeah. Go. You go for it. OP 3

633
00:39:48,785 --> 00:39:52,610
fantastic. Meta, nah. I'm not giving you my data. That's it.

634
00:39:52,610 --> 00:39:55,330
That's a simple Sure. Thing. And I don't think

635
00:39:56,615 --> 00:40:00,214
look. It it takes a little bit of thinking and time, but but you start

636
00:40:00,214 --> 00:40:03,255
off small and you can build it. So as I said in True Fans, we

637
00:40:03,255 --> 00:40:07,089
we create your activity stream around 30 verbs. We're going to

638
00:40:07,089 --> 00:40:10,769
step 2, allow users to publish that to chapters Don clients

639
00:40:10,769 --> 00:40:14,405
over activity pub, and then we're gonna work on a

640
00:40:14,965 --> 00:40:18,585
model for centralization of activities around

641
00:40:18,965 --> 00:40:22,485
a central repository. And when people say, oh, you can't

642
00:40:22,485 --> 00:40:25,950
centralize things. I go, isn't the podcast index a central

643
00:40:25,950 --> 00:40:29,550
repository? You know, I I won't say who told me that. And then I

644
00:40:29,550 --> 00:40:32,130
said, strange that, isn't it?

645
00:40:33,555 --> 00:40:37,154
And you know one of the cool potentials I'm realizing with this is right now

646
00:40:37,154 --> 00:40:40,515
we already have a great model of a way something like this is being used.

647
00:40:40,515 --> 00:40:44,340
Whenever you connect one App to another App, often there are certain

648
00:40:44,340 --> 00:40:48,040
permissions that you're giving. Certain apps require certain permissions,

649
00:40:48,500 --> 00:40:52,200
but you have control sometimes over those permissions.

650
00:40:52,565 --> 00:40:56,405
Like, you might say that for this app, I'm giving

651
00:40:56,405 --> 00:41:00,085
it permission to read Mhmm. All my data from this other app, but

652
00:41:00,085 --> 00:41:03,560
not to write to it. Exactly. Or like here in the activity

653
00:41:03,560 --> 00:41:07,320
stream aspect, where maybe it's Saturn taps into

654
00:41:07,320 --> 00:41:11,165
your activity stream, and then you're saying, I am giving Saturn permission

655
00:41:11,305 --> 00:41:14,045
to read all of the value

656
00:41:15,225 --> 00:41:18,630
of my satoshis I've received, but not

657
00:41:18,850 --> 00:41:22,610
the messages Yes. That came in from it. So, like, whatever that

658
00:41:22,610 --> 00:41:26,425
server is that's hosting the central activity stream could then handle

659
00:41:26,425 --> 00:41:30,265
that authentication, creating the different API endpoints, or all of that. That's all

660
00:41:30,265 --> 00:41:34,105
developer stuff that they can take care of. The podcaster themselves and the audience

661
00:41:34,105 --> 00:41:37,690
don't have to worry about that. That's pure developer stuff, but

662
00:41:37,990 --> 00:41:41,830
that's possible with this activity stream idea. Yes.

663
00:41:41,830 --> 00:41:45,175
Why don't we just switch why don't we just ditch RSS completely and switch to

664
00:41:45,175 --> 00:41:48,775
activity stream? Well, boy, don't don't don't No. No. No. Don't do

665
00:41:48,775 --> 00:41:52,599
not. I didn't say that, Adam. Yeah. That takes us back to

666
00:41:52,599 --> 00:41:56,440
RSS versus Atom. That's where that the whole discussion started.

667
00:41:56,440 --> 00:42:00,115
Look, I think what it is, I I

668
00:42:00,335 --> 00:42:03,955
I don't know whether we'll we'll get activity streams, if I'm honest,

669
00:42:04,095 --> 00:42:07,940
to to be adopted by everybody. I don't Because I think there's

670
00:42:07,940 --> 00:42:11,319
a lot of people who are invested into the TLV

671
00:42:11,460 --> 00:42:14,279
record and the way it works. So I think

672
00:42:15,115 --> 00:42:18,795
it could be the inertia of people saying, I'm not even gonna

673
00:42:18,795 --> 00:42:22,370
bother to look at what's going on elsewhere with an open standard. I'm gonna keep

674
00:42:22,450 --> 00:42:26,290
this proprietary standard that we have within our community because there's

675
00:42:26,290 --> 00:42:29,030
too many people invested into that proprietary standard.

676
00:42:31,205 --> 00:42:34,965
Well, one of the things that I've noticed with podcasting 2.0 is what

677
00:42:34,965 --> 00:42:38,725
catches an idea is when it can be shown

678
00:42:38,725 --> 00:42:42,210
that it's working and also the actual code

679
00:42:42,270 --> 00:42:45,710
shown like this is how easy this is to integrate with this thing or the

680
00:42:45,710 --> 00:42:49,515
other thing. And it has me thinking like

681
00:42:49,515 --> 00:42:53,275
with Podgaugment, Sam and I are both developers here and

682
00:42:53,275 --> 00:42:56,680
we are developing on very similar code stacks even. Mhmm. But it has me

683
00:42:56,680 --> 00:43:00,360
thinking where I want to go with Podgagement, all about engaging your

684
00:43:00,360 --> 00:43:04,120
audience with a podcast, I want it to support cross app comments and I

685
00:43:04,120 --> 00:43:07,694
will build that in whenever we figure out how that's possible.

686
00:43:08,154 --> 00:43:11,755
But I'm kind of wondering, maybe I should just

687
00:43:11,755 --> 00:43:15,540
start trying to work with you on what can I get

688
00:43:15,600 --> 00:43:19,120
from true fans and bring it into Podgave already?

689
00:43:19,120 --> 00:43:22,815
Yep. And then we can show that to the world to say, look.

690
00:43:22,815 --> 00:43:26,655
Here are 2 apps working together, and look how

691
00:43:26,655 --> 00:43:30,350
fast they're working because the activity stream is centralized. And one

692
00:43:30,350 --> 00:43:34,190
of the things one of the big reasons why I think that the activity

693
00:43:34,190 --> 00:43:37,875
stream itself needs to be centralized as a source of truth that the

694
00:43:37,875 --> 00:43:41,714
podcaster can control is the portability of it. Mhmm. That's something

695
00:43:41,714 --> 00:43:45,175
that else is, I think, very important in the podcasting space.

696
00:43:45,380 --> 00:43:48,900
Because everything else about podcasting is portable too. The

697
00:43:48,900 --> 00:43:52,340
activity stream needs to be portable as well. So to the point

698
00:43:52,340 --> 00:43:55,985
that you could take that activity stream, export it from

699
00:43:55,985 --> 00:43:59,345
whatever tool is currently hosting it, import it into the other

700
00:43:59,345 --> 00:44:02,500
tool, and then you just pick right up Yeah. Where you let them know. Guess

701
00:44:02,500 --> 00:44:05,880
what? It would contain your social graph and your podcast graph.

702
00:44:06,580 --> 00:44:10,244
So your social graph of people you follow and your podcast graph

703
00:44:10,244 --> 00:44:13,925
of the podcast that you JSON to. That's contained

704
00:44:13,925 --> 00:44:17,760
within the activity stream as well. So it's not just containing

705
00:44:17,820 --> 00:44:21,420
boosts and and and values paid and streams. It

706
00:44:21,420 --> 00:44:25,125
contains follows and, and, you know, we have we use

707
00:44:25,125 --> 00:44:28,805
the verb become a fan but that's subscribe. Right? That's fundamentally I

708
00:44:28,805 --> 00:44:32,560
subscribe to the future of podcasting. The minute that there's a new

709
00:44:32,560 --> 00:44:35,700
episode of the future of podcasting, I get a notification.

710
00:44:36,320 --> 00:44:40,079
Boom. That's simple. We just call the verb become a fan but underlying, it's

711
00:44:40,079 --> 00:44:43,835
really subscribe. And if I follow Daniel in True Fans

712
00:44:43,835 --> 00:44:47,675
and Daniel happens to listen to a new podcast or or makes a boost or

713
00:44:47,675 --> 00:44:51,170
a clip, I get a notification that says Daniel made a boost or a

714
00:44:51,170 --> 00:44:54,610
clip. And so the activity can be linked to

715
00:44:54,610 --> 00:44:58,305
notifications, which is, like, fundamentally webhooks. And

716
00:44:58,305 --> 00:45:02,005
again, that aspect of it as well is is really interesting.

717
00:45:02,065 --> 00:45:05,744
But I think where we are as an industry, I think we need

718
00:45:05,744 --> 00:45:08,930
to think We're getting excited about

719
00:45:09,150 --> 00:45:12,910
activity pub and then we sort of go,

720
00:45:12,910 --> 00:45:16,645
yeah, but we're not gonna use that. We're gonna use this other thing. And

721
00:45:16,645 --> 00:45:20,165
I I worry. That's where I am. I'm I'm very worried that

722
00:45:20,165 --> 00:45:24,005
we so I'm trying to find out if we could

723
00:45:24,005 --> 00:45:27,550
aggregate both activity streams and the TLV stuff together because all it

724
00:45:27,550 --> 00:45:31,010
means is I can take what I've got internally in Truefans, the verbs,

725
00:45:31,310 --> 00:45:34,110
and I can go to Dave Jones or I can go to Adam or whoever,

726
00:45:34,110 --> 00:45:37,494
Nathan. Say, hey, I've got an extrovert to add to the TLV

727
00:45:37,494 --> 00:45:40,935
record, follow or become a fan or subscribe or

728
00:45:40,935 --> 00:45:44,770
whatever. I don't even know who would make that decision

729
00:45:45,230 --> 00:45:48,770
to extend the TLV record with a new verb. I just don't know.

730
00:45:49,205 --> 00:45:52,905
It may be just down to Dave Jones, which is fine. I love Dave Jones.

731
00:45:53,125 --> 00:45:56,725
But I don't know, and it's not a standard that I could

732
00:45:56,725 --> 00:46:00,340
follow, whereas activity streams is a standard.

733
00:46:01,760 --> 00:46:05,520
Yeah. And what I like about it is how extensible it

734
00:46:05,520 --> 00:46:08,994
is. I think I've made a couple enemies in the Podcasting 2.0 space because Well,

735
00:46:08,994 --> 00:46:12,595
I think I am as well, Daniel. I tend to come in with one of

736
00:46:12,595 --> 00:46:15,394
2 things. Yes. Or it's a bonus if you get both of these things from

737
00:46:15,394 --> 00:46:19,030
me. One is, hey, the tag should be called this instead. Yes. Yes.

738
00:46:19,030 --> 00:46:22,630
That's one of the things that I'm, to put it in British for you, I'm

739
00:46:22,630 --> 00:46:26,375
on about often. The other thing is I often

740
00:46:26,435 --> 00:46:30,195
think of the future. That's why I wanted so much to

741
00:46:30,195 --> 00:46:33,920
be involved with this podcast with Dave, the future of podcasting, because I keep trying

742
00:46:33,920 --> 00:46:37,619
to think about what is the potential for this? What are the

743
00:46:37,680 --> 00:46:41,460
things that we could foresee doing with this? So how can we

744
00:46:41,835 --> 00:46:45,435
build it now so that it supports these things in the

745
00:46:45,435 --> 00:46:49,115
future? And, I see that with activity stream so much

746
00:46:49,115 --> 00:46:52,960
that in a way, it's almost like this beautiful blank

747
00:46:53,020 --> 00:46:56,380
canvas that we can do almost whatever we want with

748
00:46:56,380 --> 00:46:59,975
it. We will need a structure to it, of course, and

749
00:46:59,975 --> 00:47:03,495
certain verbs and a set of these things. But it could be easily

750
00:47:03,495 --> 00:47:07,140
extensible to the point that app developers who

751
00:47:07,140 --> 00:47:10,740
build in support for activity stream and cross app

752
00:47:10,740 --> 00:47:14,260
comments, at some point we could say, alright. Here

753
00:47:14,260 --> 00:47:17,775
is the protocol or the spec

754
00:47:17,915 --> 00:47:21,755
for podcast consumption data. So, report the

755
00:47:21,755 --> 00:47:25,560
playback at every 5% mark or every 1% or whatever it

756
00:47:25,560 --> 00:47:29,320
is, every 10 seconds, 5 minutes, whatever. And whenever

757
00:47:29,320 --> 00:47:32,984
we come up with that standard, then the developers who are

758
00:47:32,984 --> 00:47:36,585
already supporting cross app comments through activity stream could know that,

759
00:47:36,585 --> 00:47:40,265
hey. I already know how to write to the activity stream.

760
00:47:40,265 --> 00:47:44,040
All I need to do is add an extra trigger into my App

761
00:47:44,100 --> 00:47:47,940
that will send this slightly different data that's

762
00:47:47,940 --> 00:47:51,484
in the same structure, just slightly different verbiage here and there in the

763
00:47:51,484 --> 00:47:55,244
data to the same destination. And now,

764
00:47:55,244 --> 00:47:58,925
boom, we've got this other new feature and easily populating it. That's what I

765
00:47:58,925 --> 00:48:02,750
love about this. Yeah. And look, I think going back to what

766
00:48:02,750 --> 00:48:06,510
you said, I think, you know, post this, I'm very happy to sit down with

767
00:48:06,510 --> 00:48:10,085
you and show you how we've built the activity stream in True Fans and then

768
00:48:10,085 --> 00:48:13,785
how we can share that data, you know, with you.

769
00:48:14,244 --> 00:48:17,610
I can do it from my own activity stream, so I'm not asking for anyone

770
00:48:17,610 --> 00:48:21,370
else's permission. So before everyone goes, you're not giving all of your data

771
00:48:21,370 --> 00:48:24,975
to Daniel. I no. I can just do one. It doesn't have to be all.

772
00:48:25,055 --> 00:48:28,175
And Daniel can do his, so we've got 2 sets of streams and we can

773
00:48:28,175 --> 00:48:30,735
share that and we can cross that comment and we can do all sorts of

774
00:48:30,735 --> 00:48:34,470
different things with it. And then once we've worked it out and and one of

775
00:48:34,470 --> 00:48:37,350
the jokes in the industry, Dan Daniel, you said one of yours is, you know,

776
00:48:37,510 --> 00:48:41,095
you always talk about certain things and people go, oh, Daniel Varian. You don't have

777
00:48:41,095 --> 00:48:44,454
to do that. What's the name of this tag? Mine is and I get it

778
00:48:44,454 --> 00:48:47,974
often. Oh, True Fans has built every name space tag, have

779
00:48:47,974 --> 00:48:51,770
they? Right? And the answer is yes. And why do I

780
00:48:51,770 --> 00:48:55,450
do that? I I do that because seeing is believing.

781
00:48:55,450 --> 00:48:59,065
I believe that so we implemented pod roles first.

782
00:48:59,125 --> 00:49:02,805
And and the reason why James Cridland did it and I did it was because

783
00:49:02,805 --> 00:49:05,765
we could show it working. Then we could give it out to everybody and go,

784
00:49:05,765 --> 00:49:09,560
look. That's what it is. People then came back and said, you could tweak it

785
00:49:09,560 --> 00:49:13,079
here, comment there, blah blah blah. We did that, and now it's rolled

786
00:49:13,079 --> 00:49:16,415
out. Same happened with, you know,

787
00:49:16,995 --> 00:49:19,895
publisher feeds that we've been working on recently. Okay?

788
00:49:20,515 --> 00:49:24,319
Those are, you know, aggregated podcast feeds of,

789
00:49:24,319 --> 00:49:28,020
you know, so Wondery might have 50 podcasts. Right?

790
00:49:28,079 --> 00:49:31,359
How do you find the other podcast that Wondery has if you re if you

791
00:49:31,359 --> 00:49:35,015
just like 1? Well, there's a publisher feed. Now we built those

792
00:49:35,155 --> 00:49:38,995
and Dovidast did that with me and and we made it work and it's

793
00:49:38,995 --> 00:49:42,550
looking great. There's a couple of tweaks still left to be done. But

794
00:49:42,550 --> 00:49:46,230
once those are done, that will be published as a standard. And so, yes, I'm

795
00:49:46,230 --> 00:49:49,755
a great believer in build fast, fix quickly.

796
00:49:52,375 --> 00:49:56,214
Yeah. And a a lot of potential. And

797
00:49:56,214 --> 00:49:59,700
I like that with since you're building a web app

798
00:49:59,859 --> 00:50:03,619
Mhmm. Where the cool thing these days is to call it a PWA, which

799
00:50:03,619 --> 00:50:07,035
I see that those three letters thrown around all this time and so many people

800
00:50:07,035 --> 00:50:10,815
don't even know what a PWA is. But progressive web app. But

801
00:50:11,680 --> 00:50:15,200
what is great and what I want other developers to

802
00:50:15,200 --> 00:50:18,960
understand is that you can be so agile

803
00:50:18,960 --> 00:50:22,575
with your development because for one thing, there is no gatekeeper

804
00:50:22,714 --> 00:50:26,555
for you. You're not waiting for Apple to approve your latest app and

805
00:50:26,555 --> 00:50:30,280
they're not homing through your code to make sure that your app update

806
00:50:30,280 --> 00:50:34,119
can be allowed onto the store. Like, look at Podcast Addict. Man, the

807
00:50:34,119 --> 00:50:37,925
problems that Xavier has faced with Google Mhmm. And Google

808
00:50:37,925 --> 00:50:41,605
is much more lenient than Apple is, but that he'll add a new

809
00:50:41,605 --> 00:50:44,425
feature and then Google will basically say, no. You can't do that.

810
00:50:45,410 --> 00:50:48,849
And so he runs into that problem. You don't have that problem. So you get

811
00:50:48,849 --> 00:50:51,910
to be agile, and you don't have to wait

812
00:50:52,355 --> 00:50:56,194
until True Fans 5 can launch to start thinking

813
00:50:56,194 --> 00:50:59,494
about podcasting 2 point o No. Support.

814
00:51:00,847 --> 00:51:04,550
JSON. But you can just put in that feature right away and

815
00:51:04,550 --> 00:51:07,990
that's what's really neat about the web based development of

816
00:51:07,990 --> 00:51:11,815
this. And that that was really just a little

817
00:51:11,815 --> 00:51:15,575
tangent aside there. But what I would love to see

818
00:51:15,575 --> 00:51:18,315
then is more of these web based tools

819
00:51:19,250 --> 00:51:22,690
being this agile like this since we

820
00:51:22,690 --> 00:51:26,390
can. And so that's why I'm thinking, since I've got Podgageman,

821
00:51:26,609 --> 00:51:30,175
I wanted to have more Podcasting 2.0 support. I'm thinking,

822
00:51:30,555 --> 00:51:33,994
what can I do to demonstrate what's

823
00:51:33,994 --> 00:51:37,490
possible with ActivityStream? And there's just so much that we could do with it

824
00:51:37,730 --> 00:51:41,490
Mhmm. That could solve a lot of problems. And even

825
00:51:41,650 --> 00:51:45,434
I I was thinking too that you don't necessarily have to

826
00:51:45,434 --> 00:51:49,035
have a single activity stream for a podcast. No. You

827
00:51:49,035 --> 00:51:52,414
could potentially have multiples. Like this is the

828
00:51:52,800 --> 00:51:56,099
the comments activity stream. This is the

829
00:51:56,640 --> 00:52:00,400
playback consumption rate activity stream if they needed to

830
00:52:00,400 --> 00:52:04,015
be split apart like that. Because I know, I talk

831
00:52:04,015 --> 00:52:07,635
about episode metadata file, and some people hate me for that term,

832
00:52:07,775 --> 00:52:11,590
the chapters and all of that stuff. But what's cool about

833
00:52:11,590 --> 00:52:14,150
the way that we are doing chapters right now is that it can be split

834
00:52:14,150 --> 00:52:17,755
into a separate file and you can have other episode metadata in a

835
00:52:17,755 --> 00:52:20,734
separate file or you could merge these all into the same file.

836
00:52:21,355 --> 00:52:25,150
There's that same kind of potential with Activity Stream. So

837
00:52:25,369 --> 00:52:29,130
I love how this looks possible, and I am now

838
00:52:29,130 --> 00:52:32,685
an advocate of this. I know that here on the

839
00:52:32,685 --> 00:52:36,285
future of podcasting a few months ago, I was all gung ho about this

840
00:52:36,285 --> 00:52:39,585
proposal I had for Cross App comments of a way to do things.

841
00:52:39,965 --> 00:52:43,230
And, Basically, what I was describing,

842
00:52:43,930 --> 00:52:47,530
I was kind of reinventing Activity Stream but in

843
00:52:47,530 --> 00:52:50,724
a very clunky way and a not

844
00:52:51,425 --> 00:52:55,045
not backed by certain standards. Like, the activity stream

845
00:52:55,329 --> 00:52:59,089
is a W3C standard Yes. Which is the World

846
00:52:59,089 --> 00:53:02,770
Wide Web Consortium. Yep. So this is a standard of how to

847
00:53:02,770 --> 00:53:06,225
form this data and how to structure it, so it's not like we're making up

848
00:53:06,225 --> 00:53:08,965
something on our own. But it's a flexible standard.

849
00:53:10,385 --> 00:53:14,089
Yes. I like it. The other thing that you you should be aware of, you

850
00:53:14,089 --> 00:53:17,690
mentioned, podcast streams and and and creator streams.

851
00:53:17,690 --> 00:53:21,375
So first the first stream that you as a user

852
00:53:21,375 --> 00:53:25,135
on Truefence see is your own personal stream. Right? Of everything you that you've done

853
00:53:25,135 --> 00:53:28,950
across if if you think about it multiple podcasts, so that's your view

854
00:53:28,950 --> 00:53:32,410
of the world. But when you go to a podcast

855
00:53:32,470 --> 00:53:36,235
site, let's say the future of podcasting, it will show an

856
00:53:36,235 --> 00:53:40,075
activity stream of any user that's interacted with

857
00:53:40,075 --> 00:53:43,835
that podcast. So so who played, who boosted, who clicked

858
00:53:43,835 --> 00:53:47,655
on the future of podcasting. And non fans

859
00:53:48,188 --> 00:53:51,786
and all of their

860
00:53:52,319 --> 00:53:55,525
activity. So and non fans

861
00:53:55,985 --> 00:53:59,765
and all of their activity. So then you get an aggregated

862
00:53:59,905 --> 00:54:03,525
view. So Sam played my, latest episode,

863
00:54:03,790 --> 00:54:06,849
but he only played 70% of it and he gave me

864
00:54:07,150 --> 00:54:10,885
6,000 sats. Right? That's an activity entry and

865
00:54:10,885 --> 00:54:14,565
then we can roll that up for that episode. So now you can

866
00:54:14,565 --> 00:54:18,265
roll up all of that activity and say, this podcast episode

867
00:54:18,485 --> 00:54:21,690
earned 27,000 sats. There were 16 listeners

868
00:54:21,990 --> 00:54:24,810
and the on average they dropped off at 44%,

869
00:54:26,070 --> 00:54:28,970
and it was 60% complete. Right? Whatever that so

870
00:54:29,725 --> 00:54:33,245
because that's just data from the individual that became

871
00:54:33,245 --> 00:54:37,005
aggregated at a podcast episode level and then rolled up

872
00:54:37,005 --> 00:54:40,730
again. Eventually, we will roll that up to a total podcast level. So you've

873
00:54:40,730 --> 00:54:44,430
got, I think, 35, 36 episodes of the future of podcasting.

874
00:54:44,925 --> 00:54:48,685
You will then see how many sets has that future of podcasting at, how many

875
00:54:48,685 --> 00:54:52,285
fans have they got, etcetera, etcetera. There's so much you can

876
00:54:52,285 --> 00:54:56,020
do from the activity stream data just within the

877
00:54:56,020 --> 00:54:59,800
app itself, let alone sharing it cross app,

878
00:55:00,260 --> 00:55:03,800
let alone sharing it with analytics companies and whatever.

879
00:55:04,305 --> 00:55:08,085
So, yeah, there's a lot you can do with it because it's good structured data.

880
00:55:09,185 --> 00:55:12,944
Let's keep that, like all the bigger things, a little secret just between us and

881
00:55:12,944 --> 00:55:16,370
our audience for now just so we don't overwhelm everyone when we come

882
00:55:16,370 --> 00:55:19,670
back saying, Hey, we're all gung ho with Activity Stream.

883
00:55:20,850 --> 00:55:24,345
There's I'm excited about this and what we can

884
00:55:24,345 --> 00:55:28,105
do. I'm totally on board with this now, especially now that I understand a little

885
00:55:28,105 --> 00:55:31,790
bit better. And you listening right now, I hope I know we got in the

886
00:55:31,790 --> 00:55:34,670
weeds on some of the stuff we know. Sorry. We probably lost everyone in that,

887
00:55:34,670 --> 00:55:38,350
unfortunately. I didn't mean to. Well,

888
00:55:38,350 --> 00:55:42,135
I I think the people who need to understand this

889
00:55:42,195 --> 00:55:45,715
most can probably figure this out. And we'll have put some

890
00:55:45,715 --> 00:55:49,560
links also, like, to the w three c standard and some more information. And

891
00:55:49,560 --> 00:55:53,240
there's also a book coming out Yep. About all of this. We'll have those links

892
00:55:53,240 --> 00:55:56,460
in the notes for this episode, number 39, on future of podcasting.net.

893
00:55:58,715 --> 00:56:01,915
So there is a lot of potential for this. And the nice thing is that

894
00:56:01,915 --> 00:56:05,675
the individual podcaster eventually will not have to

895
00:56:05,675 --> 00:56:09,230
learn this. Years ago, I gave a keynote at a podcasting

896
00:56:09,290 --> 00:56:13,130
conference, and the keynote was the future of podcasting. And one

897
00:56:13,130 --> 00:56:16,595
of my predictions was the technology will disappear

898
00:56:17,134 --> 00:56:20,734
in the aspect of the audience and the podcaster won't

899
00:56:20,734 --> 00:56:24,569
even have to worry about what's running it. They won't have

900
00:56:24,569 --> 00:56:28,410
to worry that it's activity stream. It will just work. Yep. That's when

901
00:56:28,410 --> 00:56:32,165
the technology disappears. Nobody who's using

902
00:56:33,025 --> 00:56:36,725
Spotify or Apple Podcasts or YouTube, you know, the main

903
00:56:36,945 --> 00:56:40,760
big three, let's say, knows that the underlying delivery technology

904
00:56:40,819 --> 00:56:44,260
is RSS. They don't need to. Right? The fundamentally

905
00:56:44,500 --> 00:56:48,345
it ends up in the Apple Podcast and they play it. And that's it.

906
00:56:48,345 --> 00:56:52,025
End of story. They don't need to understand how it got there and

907
00:56:52,025 --> 00:56:55,789
what it was delivered by. Right. And it's the same with, I

908
00:56:55,789 --> 00:56:59,390
I just wanna know that there was a comment made on this app and it's

909
00:56:59,390 --> 00:57:03,069
over on this app, and now it's at the same they're aggregated together under one

910
00:57:03,069 --> 00:57:06,565
episode, and that's magically happened. I don't need to know how it

911
00:57:06,565 --> 00:57:10,165
happened, and that's that's what we have to get to. So you set me a

912
00:57:10,165 --> 00:57:13,880
challenge on Macedon this week, which was I said,

913
00:57:14,579 --> 00:57:18,260
you know, I've put the best I can as version

914
00:57:18,260 --> 00:57:20,930
1, a help system into this in into

915
00:57:21,815 --> 00:57:25,355
Truefans. And we use activity streams with gamification.

916
00:57:25,815 --> 00:57:29,540
So, when you, enable your wallet, that's

917
00:57:29,620 --> 00:57:32,740
a a verb, you know, and then we give you some sats for doing that

918
00:57:32,740 --> 00:57:36,420
750 sats for enabling your wallet. When you do your first boost, we

919
00:57:36,420 --> 00:57:40,095
can give you sats. We can do that 10 times. So you're learning

920
00:57:40,155 --> 00:57:43,835
and earning at the same time. But then your 11th boost, we won't

921
00:57:43,835 --> 00:57:47,595
pay you. Right? That's just a gamification model that we've attached to

922
00:57:47,595 --> 00:57:51,200
Verbs. And the thing about it is you said to me, well,

923
00:57:51,420 --> 00:57:54,540
don't do the videos because I'm in the middle of doing loads of videos just

924
00:57:54,540 --> 00:57:58,385
showing how it all works. And my my answer to you is

925
00:57:58,385 --> 00:58:02,005
yes. You're right. It shouldn't need videos and it shouldn't need extensive

926
00:58:02,145 --> 00:58:05,665
help files to make this work because complexity has failed

927
00:58:05,665 --> 00:58:09,380
simplicity. And, fundamentally, though,

928
00:58:09,380 --> 00:58:11,960
what we're struggling with is vocabulary.

929
00:58:13,220 --> 00:58:17,005
Yeah. Somebody on the Mastodon list said to

930
00:58:17,005 --> 00:58:20,285
me, I don't even understand the difference between a Zap and a boost. So when

931
00:58:20,285 --> 00:58:23,565
I explained it to them very simply, a Zap is a a like with a

932
00:58:23,565 --> 00:58:27,370
payment and a boost is a comment with a payment. Why doesn't anyone ever

933
00:58:27,370 --> 00:58:31,130
say that to me? Right? I'm like, well, they probably have, but now

934
00:58:31,130 --> 00:58:34,805
they've got so far down the weeds of not having to re explain

935
00:58:34,805 --> 00:58:38,005
every time when they say the word zap and when they say boost because they

936
00:58:38,005 --> 00:58:41,684
expect everyone to understand it. And we have to remember people don't even know

937
00:58:41,684 --> 00:58:45,160
what those things mean, Let alone value time splits and

938
00:58:45,160 --> 00:58:49,000
wallet switching and everything else. Right? So there's

939
00:58:49,000 --> 00:58:52,460
a lot of complexity in what we're all doing. And,

940
00:58:53,405 --> 00:58:56,385
yeah, that vocabulary just needs to be

941
00:58:57,485 --> 00:59:01,165
common knowledge. And then I think a lot of it becomes easier to not

942
00:59:01,165 --> 00:59:04,770
have to explain how to do it with a video, but people think, oh,

943
00:59:04,770 --> 00:59:08,529
yeah. Oh, you wanna boost it? I've got a wallet. There's

944
00:59:08,529 --> 00:59:12,255
there's 50 sats done. Right? It all becomes second nature. I just

945
00:59:12,255 --> 00:59:16,095
don't know when it'll become second nature. And speaking

946
00:59:16,095 --> 00:59:19,270
of boosts, we got a boost here that is,

947
00:59:20,770 --> 00:59:24,150
100,000 It sounds bad person.

948
00:59:24,610 --> 00:59:28,325
It says great show, great episode. Please keep them coming.

949
00:59:28,385 --> 00:59:32,065
And am I back at the top of the leaderboard? And that

950
00:59:32,065 --> 00:59:35,585
came from Sam. Thank you so much. You're very

951
00:59:35,585 --> 00:59:39,210
welcome. I was I was gutted when Dave Jackson said I was on top of

952
00:59:39,210 --> 00:59:42,730
the leaderboard. So I went, well, that's it. 100,000. Send that straight

953
00:59:42,730 --> 00:59:45,755
over. Let's see if that gets me back there. So I don't know if I

954
00:59:45,755 --> 00:59:49,215
am or who knows? Yeah. And just to be clear,

955
00:59:49,275 --> 00:59:52,829
that boost is not what got Sam onto this podcast. No. Thank you. Sam and

956
00:59:52,829 --> 00:59:56,270
I have been wanting to have a conversation for a long time. It just worked

957
00:59:56,270 --> 00:59:59,994
out really cool to be able to thank you personally here on the

958
00:59:59,994 --> 01:00:02,655
podcast for that boost. So thank you so much.

959
01:00:03,434 --> 01:00:07,260
Anyone else who would like to send us a boost, please do send that inside

960
01:00:07,260 --> 01:00:10,700
of your podcast app, and recommend that your own audience, if you've got an audience

961
01:00:10,700 --> 01:00:14,305
of other podcasters or listeners, recommend that they check out a new

962
01:00:14,305 --> 01:00:15,925
podcast app over at podcasting2.org/apps.

963
01:00:18,945 --> 01:00:22,670
For Dave Jackson, I'm Daniel j Lewis, And Sam Sethi

964
01:00:22,670 --> 01:00:26,350
was our guest here from truefans.fm. Check him out. Thank you

965
01:00:26,350 --> 01:00:29,810
so much for listening. Keep boosting and keep podcasting.