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.