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
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/
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
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
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.