podcast_agent_parser 0.1.2 → 0.1.7

Sign up to get free protection for your applications and to get access to all the features.
Files changed (5) hide show
  1. checksums.yaml +4 -4
  2. data/LICENSE +1 -1
  3. data/README.md +1 -1
  4. data/vendor/opawg/user-agents.json +1054 -116
  5. metadata +2 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 4b28003b8fc629eea208af74eee3378564f8699c9afc5dcc8fb51b884308632c
4
- data.tar.gz: f3563d885d6f48685264ec742856d5732f2185a46c424c85d8a0ab4f86ba63a5
3
+ metadata.gz: 5cea872ce4cd7567e234e9fca16c2a6222e689357c5f493392c9ba7f9356ffe6
4
+ data.tar.gz: 53ef3ea8a8cf277b3046e8e7480981a4d0171149597d660a4560ad7ea4452363
5
5
  SHA512:
6
- metadata.gz: c121985b06f2366fe6d9cb4d789052ab3dd1b621f5f3628ee6d0f14b433b5de6a6da20cfe948d0cbc9920c7b465f0ce686a1c20d9fb3ffe9a1634f1ffff51a2e
7
- data.tar.gz: 82c38ab8f39d8c4b24b9d7304972ee933b8476fb50c0228d2900fac3e1b3b0096cb17522afec8afe8583ef1d7ee7b521dac0bc8cb7bf3c7215c098240ca5e4d8
6
+ metadata.gz: a381e3a072e21d0eb43b40a9b1d2eab84c35927d207fc004bc444ddf63295cf5dbb95f900899c650cf31b1e66f17b9d8cd0229b5ca165d7293ce6043bcc0b6ac
7
+ data.tar.gz: 9646030599c8aab63bd7846015b9a4bba19db61cb115154a32301252a5d93a0f10266724a10970d4b3e9fc49c83c42734700f89b9b041e2f80c4c8d842c65518
data/LICENSE CHANGED
@@ -1,4 +1,4 @@
1
- Copyright 2019 Dan Benjamin
1
+ Copyright 2020 Dan Benjamin
2
2
 
3
3
  Permission is hereby granted, free of charge, to any person obtaining
4
4
  a copy of this software and associated documentation files (the
data/README.md CHANGED
@@ -5,7 +5,7 @@ The Podcast Agent Parser is a user agent parser written in Ruby, using [regex pa
5
5
  Installation:
6
6
 
7
7
  ```
8
- gem 'podcast_agent_parser', '~> 0.1.1'
8
+ gem 'podcast_agent_parser', '~> 0.1.7'
9
9
  ```
10
10
 
11
11
  Then, look up your user agents like so:
@@ -17,15 +17,33 @@
17
17
  },
18
18
  {
19
19
  "user_agents": [
20
- "^AdsBot-Google"
20
+ "AdsBot-Google"
21
21
  ],
22
- "bot": true
22
+ "app": "Google AdsBot",
23
+ "bot": true,
24
+ "info_url": "http://www.google.com/adsbot.html"
23
25
  },
24
26
  {
25
27
  "user_agents": [
26
- "AhrefsBot"
28
+ "AhrefsBot\/"
27
29
  ],
28
- "bot": true
30
+ "app": "AhrefsBot",
31
+ "bot": true,
32
+ "info_url": "http://ahrefs.com/robot/",
33
+ "examples": [
34
+ "Mozilla/5.0 (compatible; AhrefsBot/7.0; http://ahrefs.com/robot/)"
35
+ ]
36
+ },
37
+ {
38
+ "user_agents": [
39
+ "^Airr/"
40
+ ],
41
+ "app": "Airr",
42
+ "info_url": "https://www.airr.io/",
43
+ "examples": [
44
+ "Airr/3787 CFNetwork/1128.0.1 Darwin/19.6.0",
45
+ "Airr/4070 CFNetwork/1206 Darwin/20.1.0"
46
+ ]
29
47
  },
30
48
  {
31
49
  "user_agents": [
@@ -42,11 +60,50 @@
42
60
  "user_agents": [
43
61
  "^AmazonNewsContentService"
44
62
  ],
45
- "app": "Amazon Alexa Flash Briefing caching service",
63
+ "app": "Alexa Flash Briefing cache",
46
64
  "description": "A service which downloads, caches and normalises audio for the Flash Briefing service on Alexa-enabled devices",
47
65
  "os": "alexa",
48
66
  "info_url": "https://developer.amazon.com/docs/flashbriefing/flash-briefing-skill-api-feed-reference.html#performance-requirements",
49
- "developer_notes": "Stats are available within the Alexa skills dashboard",
67
+ "developer_notes": "Stats are available within the Alexa skills dashboard.",
68
+ "svg": "amazon.svg",
69
+ "bot": true
70
+ },
71
+ {
72
+ "user_agents": [
73
+ "^AmazonMusic.*iPhone"
74
+ ],
75
+ "examples": [
76
+ "AmazonMusic/9.15.2 iPhone7,2 CFNetwork/978.0.7 Darwin/18.7.0",
77
+ "AmazonMusic/9.16.1 iPhone9,1 CFNetwork/1128.0.1 Darwin/19.6.0",
78
+ "AmazonMusic/9.16.0 iPhone12,1 CFNetwork/1128.0.1 Darwin/19.6.0"
79
+ ],
80
+ "app": "Amazon Music Podcasts",
81
+ "description": "A music and podcasts streaming app",
82
+ "os": "ios",
83
+ "device": "phone",
84
+ "developer_notes": "Examples are from an Amazon contact",
85
+ "svg": "amazon.svg"
86
+ },
87
+ {
88
+ "user_agents": [
89
+ "^AmazonMusic.*Android"
90
+ ],
91
+ "examples": [
92
+ "AmazonMusic/16.17.0 Dalvik/2.1.0 (Linux; U; Android 6.0.1; vivo 1610 Build/MMB29M)"
93
+ ],
94
+ "app": "Amazon Music Podcasts",
95
+ "description": "A music and podcasts streaming app",
96
+ "os": "android",
97
+ "developer_notes": "Examples are from an Amazon contact",
98
+ "svg": "amazon.svg"
99
+ },
100
+ {
101
+ "user_agents": [
102
+ "^Amazon Music Podcast"
103
+ ],
104
+ "app": "Amazon Music Podcasts",
105
+ "description": "A music and podcasts streaming app",
106
+ "developer_notes": "Backend ingestion service",
50
107
  "svg": "amazon.svg",
51
108
  "bot": true
52
109
  },
@@ -61,12 +118,19 @@
61
118
  },
62
119
  {
63
120
  "user_agents": [
64
- "Android 5.*ford/"
121
+ "^com.audible.playersdk.player",
122
+ "^Audible,"
65
123
  ],
66
- "app": "Amazon Kindle Fire",
67
- "device": "tablet",
124
+ "app": "Audible",
68
125
  "os": "android"
69
126
  },
127
+ {
128
+ "user_agents": [
129
+ "^Audible.*Darwin"
130
+ ],
131
+ "app": "Audible",
132
+ "os": "ios"
133
+ },
70
134
  {
71
135
  "user_agents": [
72
136
  "^AndroidDownloadManager"
@@ -83,7 +147,8 @@
83
147
  "de.danoeh.antennapod/1.7.3b (Linux;Android 8.0.0) ExoPlayerLib/2.9.3"
84
148
  ],
85
149
  "info_url": "https://github.com/AntennaPod/AntennaPod",
86
- "os": "android"
150
+ "os": "android",
151
+ "developer_notes": "The de.danoeh version was used when streaming only, and will been phased out as of v2"
87
152
  },
88
153
  {
89
154
  "user_agents": [
@@ -95,12 +160,13 @@
95
160
  "user_agents": [
96
161
  "^AppleCoreMedia/1\\..*iPod"
97
162
  ],
98
- "app": "Apple Podcasts",
99
163
  "device": "mp3_player",
100
164
  "examples": [
101
165
  "AppleCoreMedia/1.0.0.16G114 (iPod touch; U; CPU OS 12_4_2 like Mac OS X; en_us)"
102
166
  ],
103
- "os": "ios"
167
+ "os": "ios",
168
+ "description": "AppleCoreMedia library",
169
+ "developer_notes": "This is a library used by a number of apps when progressively downloading podcasts. It is not (just) Apple Podcasts, and should not be treated as an Apple Podcasts useragent"
104
170
  },
105
171
  {
106
172
  "user_agents": [
@@ -109,72 +175,95 @@
109
175
  "examples": [
110
176
  "AppleCoreMedia/1.0.0.19A583 (Macintosh; U; Intel Mac OS X 10_15; en_us)"
111
177
  ],
112
- "app": "Apple Podcasts",
113
178
  "device": "pc",
114
179
  "os": "macos",
115
- "description": "The Apple Podcasts app on MacOS Catalina and above",
116
- "developer_notes": "Used when progressively downloading podcasts"
180
+ "description": "AppleCoreMedia library",
181
+ "developer_notes": "This is a library used by a number of apps when progressively downloading podcasts. It is not (just) Apple Podcasts, and should not be treated as an Apple Podcasts useragent"
117
182
  },
118
183
  {
119
184
  "user_agents": [
120
185
  "^AppleCoreMedia/1\\..*iPhone"
121
186
  ],
122
- "app": "Apple Podcasts",
123
187
  "device": "phone",
124
188
  "examples": [
125
189
  "AppleCoreMedia/1.0.0.15G77 (iPhone; U; CPU OS 11_4_1 like Mac OS X; en_us)"
126
190
  ],
127
- "os": "ios"
191
+ "os": "ios",
192
+ "description": "AppleCoreMedia library",
193
+ "developer_notes": "This is a library used by a number of apps when progressively downloading podcasts. It is not (just) Apple Podcasts, and should not be treated as an Apple Podcasts useragent"
128
194
  },
129
195
  {
130
196
  "user_agents": [
131
197
  "^AppleCoreMedia/1\\..*iPad"
132
198
  ],
133
- "app": "Apple Podcasts",
134
199
  "device": "tablet",
135
200
  "examples": [
136
201
  "AppleCoreMedia/1.0.0.17A860 (iPad; U; CPU OS 13_1_2 like Mac OS X; en_us)"
137
202
  ],
138
- "os": "ios"
203
+ "os": "ios",
204
+ "description": "AppleCoreMedia library",
205
+ "developer_notes": "This is a library used by a number of apps when progressively downloading podcasts. It is not (just) Apple Podcasts, and should not be treated as an Apple Podcasts useragent"
139
206
  },
140
207
  {
141
208
  "user_agents": [
142
209
  "^AppleCoreMedia/1\\..*HomePod"
143
210
  ],
144
- "app": "Apple Podcasts",
145
211
  "device": "speaker",
146
212
  "examples": [
147
213
  "AppleCoreMedia/1.0.0.16G78 (HomePod; U; CPU OS 12_4 like Mac OS X; en_us)"
148
214
  ],
149
- "os": "homepod_os"
215
+ "os": "homepodos",
216
+ "description": "AppleCoreMedia library",
217
+ "developer_notes": "This is a library used by a number of apps when progressively downloading podcasts. It is not (just) Apple Podcasts, and should not be treated as an Apple Podcasts useragent"
150
218
  },
151
219
  {
152
220
  "user_agents": [
153
221
  "^AppleCoreMedia/1\\..*Apple TV"
154
222
  ],
155
- "app": "Apple Podcasts",
156
223
  "device": "tv",
157
224
  "examples": [
158
225
  "AppleCoreMedia/1.0.0.17J586 (Apple TV; U; CPU OS 13_0 like Mac OS X; en_us)"
159
226
  ],
160
- "os": "tvos"
227
+ "os": "tvos",
228
+ "description": "AppleCoreMedia library",
229
+ "developer_notes": "This is a library used by a number of apps when progressively downloading podcasts. It is not (just) Apple Podcasts, and should not be treated as an Apple Podcasts useragent"
161
230
  },
162
231
  {
163
232
  "user_agents": [
164
- "^AppleCoreMedia/1\\..*Apple Watch",
165
- "watchOS/"
233
+ "^AppleCoreMedia/1\\..*Apple Watch"
234
+ ],
235
+ "device": "watch",
236
+ "os": "watchos",
237
+ "description": "AppleCoreMedia library",
238
+ "developer_notes": "This is a library used by a number of apps when progressively downloading podcasts. It is not (just) Apple Podcasts, and should not be treated as an Apple Podcasts useragent"
239
+ },
240
+ {
241
+ "user_agents": [
242
+ "^atc\/.* watchOS\/.* model\/Watch"
166
243
  ],
167
244
  "app": "Apple Podcasts",
168
245
  "device": "watch",
246
+ "os": "watchos",
247
+ "bot": true,
248
+ "developer_notes": "All of these examples given are verified (via stamping the audio URL with the RSS useragent) as being sourced from Apple Podcasts; and accordingly this is marked as a bot since these downloads are duplicated with the phone.",
169
249
  "examples": [
170
- "atc/1.0 watchOS/6.0.1 model/Watch4,1 hwp/t8006 build/17R605 (6; dt:190)"
171
- ],
172
- "os": "watchos"
250
+ "atc/1.0 watchOS/6.2 model/Watch3,3 hwp/t8004 build/17T529 (6; dt:155)",
251
+ "atc/1.0 watchOS/6.2.8 model/Watch2,3 hwp/t8002 build/17U63 (6; dt:133)",
252
+ "atc/1.0 watchOS/6.2.8 model/Watch3,3 hwp/t8004 build/17U63 (6; dt:155)",
253
+ "atc/1.0 watchOS/6.2.8 model/Watch4,2 hwp/t8006 build/17U63 (6; dt:191)",
254
+ "atc/1.0 watchOS/7.0.2 model/Watch5,10 hwp/t8006 build/18R402 (6; dt:233)",
255
+ "atc/1.0 watchOS/7.0.2 model/Watch5,11 hwp/t8006 build/18R402 (6; dt:234)",
256
+ "atc/1.0 watchOS/7.1 model/Watch4,2 hwp/t8006 build/18R590 (6; dt:191)",
257
+ "atc/1.0 watchOS/7.1 model/Watch4,3 hwp/t8006 build/18R590 (6; dt:192)",
258
+ "atc/1.0 watchOS/7.1 model/Watch4,4 hwp/t8006 build/18R590 (6; dt:193)",
259
+ "atc/1.0 watchOS/7.1 model/Watch5,1 hwp/t8006 build/18R590 (6; dt:201)",
260
+ "atc/1.0 watchOS/7.1 model/Watch5,3 hwp/t8006 build/18R590 (6; dt:202)",
261
+ "atc/1.0 watchOS/7.1 model/Watch5,4 hwp/t8006 build/18R590 (6; dt:202)"
262
+ ]
173
263
  },
174
264
  {
175
265
  "user_agents": [
176
266
  "^Podcasts/.*\\(.*\\)",
177
-
178
267
  "^Balados/.*\\(.*\\)",
179
268
  "^Podcasti/.*\\(.*\\)",
180
269
  "^Podcastit/.*\\(.*\\)",
@@ -183,7 +272,6 @@
183
272
  "^Podcast’ler/.*\\(.*\\)",
184
273
  "^Podkaster/.*\\(.*\\)",
185
274
  "^Podcaster/.*\\(.*\\)",
186
- "^Podcast/.*\\(.*\\)",
187
275
  "^Podcastok/.*\\(.*\\)",
188
276
  "^Подкасти/.*\\(.*\\)",
189
277
  "^Подкасты/.*\\(.*\\)",
@@ -207,7 +295,6 @@
207
295
  {
208
296
  "user_agents": [
209
297
  "^Podcasts/.*\\d$",
210
-
211
298
  "^Balados/.*\\d$",
212
299
  "^Podcasti/.*\\d$",
213
300
  "^Podcastit/.*\\d$",
@@ -216,7 +303,6 @@
216
303
  "^Podcast’ler/.*\\d$",
217
304
  "^Podkaster/.*\\d$",
218
305
  "^Podcaster/.*\\d$",
219
- "^Podcast/.*\\d$",
220
306
  "^Podcastok/.*\\d$",
221
307
  "^Подкасти/.*\\d$",
222
308
  "^Подкасты/.*\\d$",
@@ -224,16 +310,15 @@
224
310
  "^البودكاست/.*\\d$",
225
311
  "^पॉडकास्ट/.*\\d$",
226
312
  "^พ็อดคาสท์/.*\\d$",
313
+ "^%E6%92%AD%E5%AE%A2/.*\\d$",
227
314
  "^播客/.*\\d$",
228
315
  "^팟캐스트/.*\\d$"
229
316
  ],
230
317
  "app": "Apple Podcasts",
231
- "os": "ios",
232
- "description": "The Apple Podcasts app on devices other than MacOS Catalina and above",
233
- "developer_notes": "Used when downloading podcasts (not progressive downloads), with support for the following languages: Arabic, Chinese, Finnish, French, English, Hebrew, Hindi, Hungarian, Korean, Polish, Romanian, Russian, Serbian, Slovenian, Swedish, Thai, Turkish",
318
+ "description": "The Apple Podcasts app",
319
+ "developer_notes": "Used when downloading podcasts (not progressive downloads). This could be on iOS or iPadOS.",
234
320
  "examples": [
235
- "Podcasts/2.6",
236
- "Podcast/1150.47 CFNetwork/811.5.4 Darwin/16.6.0"
321
+ "Podcasts/1440.4 CFNetwork/1128.0.1 Darwin/19.6.0"
237
322
  ]
238
323
  },
239
324
  {
@@ -244,6 +329,14 @@
244
329
  "device": "pc",
245
330
  "info_url": "http://lincgeek.org/bashpodder/"
246
331
  },
332
+ {
333
+ "user_agents": [
334
+ "Barkrowler\/"
335
+ ],
336
+ "app": "Babbar",
337
+ "bot": true,
338
+ "info_url": "https://beta.babbar.tech/crawler"
339
+ },
247
340
  {
248
341
  "user_agents": [
249
342
  "BBC%20Sounds/"
@@ -278,6 +371,17 @@
278
371
  "os": "android"
279
372
  },
280
373
  {
374
+ "user_agents": [
375
+ "^Bitcast/"
376
+ ],
377
+ "app": "Bitcast",
378
+ "os": "ios",
379
+ "info_url": "https://bitcast.fm/",
380
+ "examples": [
381
+ "Bitcast/336 CFNetwork/1197 Darwin/20.0.0"
382
+ ]
383
+ },
384
+ {
281
385
  "user_agents": [
282
386
  "^Bose/"
283
387
  ],
@@ -286,10 +390,10 @@
286
390
  },
287
391
  {
288
392
  "user_agents": [
289
- "^Breaker/"
393
+ "^Breaker/iOS"
290
394
  ],
291
395
  "app": "Breaker",
292
- "device": "phone"
396
+ "os": "ios"
293
397
  },
294
398
  {
295
399
  "user_agents": [
@@ -322,6 +426,18 @@
322
426
  "device": "pc",
323
427
  "os": "windows"
324
428
  },
429
+ {
430
+ "user_agents": [
431
+ "BroadwayPodcastNetwork/iOS"
432
+ ],
433
+ "app": "Broadway Podcast Network",
434
+ "description": "The Broadway Podcast Network iOS App",
435
+ "device": "phone",
436
+ "examples": [
437
+ "BroadwayPodcastNetwork/iOS"
438
+ ],
439
+ "os": "ios"
440
+ },
325
441
  {
326
442
  "user_agents": [
327
443
  "^Cast(?:b|B)ox/.+Android"
@@ -329,7 +445,9 @@
329
445
  "app": "CastBox",
330
446
  "device": "phone",
331
447
  "examples": [
332
- "CastBox/8.2.6-191015245 (Linux;Android 10) ExoPlayerLib/2.10.4"
448
+ "CastBox/8.2.6-191015245 (Linux;Android 10) ExoPlayerLib/2.10.4",
449
+ "CastBox/8.19.0-200927161 (Linux;Android 10) ExoPlayerLib/2.10.4",
450
+ "CastBox/8.18.1-200917153 (Linux;Android 8.0.0) ExoPlayerLib/2.10.4"
333
451
  ],
334
452
  "os": "android"
335
453
  },
@@ -346,7 +464,7 @@
346
464
  },
347
465
  {
348
466
  "user_agents": [
349
- "^Cast(?:b|B)ox"
467
+ "^Cast(?:b|B)ox(?!.*(Android|iOS))"
350
468
  ],
351
469
  "app": "CastBox",
352
470
  "developer_notes": "There are CastBox compatible User Agents that come without Android/iOS platform marker",
@@ -365,6 +483,16 @@
365
483
  "info_url": "https://castget.johndal.com/",
366
484
  "device": "pc"
367
485
  },
486
+ {
487
+ "user_agents": [
488
+ "Castopod/1.0"
489
+ ],
490
+ "app": "Castopod",
491
+ "examples": [
492
+ "Castopod/1.0"
493
+ ],
494
+ "bot": true
495
+ },
368
496
  {
369
497
  "user_agents": [
370
498
  "Castro "
@@ -372,7 +500,8 @@
372
500
  "app": "Castro",
373
501
  "device": "phone",
374
502
  "examples": [
375
- "Castro 2019.13/1167"
503
+ "Castro 2019.13/1167",
504
+ "Castro 2020.14/1287"
376
505
  ],
377
506
  "os": "ios"
378
507
  },
@@ -418,14 +547,45 @@
418
547
  "Deezer/.*Android;"
419
548
  ],
420
549
  "app": "Deezer",
421
- "device": "phone",
422
- "os": "android"
550
+ "os": "android",
551
+ "examples": [
552
+ "Deezer/6.2.2.80 (Android; 9; Mobile; fr) samsung SM-G950F",
553
+ "Deezer/6.2.3.96 (Android; 10; Mobile; fr) samsung SM-A405FN"
554
+ ],
555
+ "info_url": "https://play.google.com/store/apps/details?id=deezer.android.app"
556
+ },
557
+ {
558
+ "user_agents": [
559
+ "^Deezer/.*CFNetwork/"
560
+ ],
561
+ "app": "Deezer",
562
+ "os": "ios",
563
+ "examples": [
564
+ "Deezer/8.13.0.4 CFNetwork/1125.2 Darwin/19.4.0"
565
+ ],
566
+ "info_url": "https://apps.apple.com/us/app/deezer-music-podcast-player/id292738169"
567
+ },
568
+ {
569
+ "user_agents": [
570
+ "^Deezer.*Electron; windows"
571
+ ],
572
+ "app": "Deezer",
573
+ "examples": [
574
+ "Deezer/4.20.0 (Electron; windows/10.0.18362; Desktop; fr)"
575
+ ],
576
+ "device": "pc",
577
+ "os": "windows"
423
578
  },
424
579
  {
425
580
  "user_agents": [
426
- "^Deezer"
581
+ "^Deezer.*Electron; osx"
582
+ ],
583
+ "app": "Deezer",
584
+ "examples": [
585
+ "Deezer/4.20.0 (Electron; osx/10.14.6; Desktop; fr)"
427
586
  ],
428
- "app": "Deezer"
587
+ "device": "pc",
588
+ "os": "macos"
429
589
  },
430
590
  {
431
591
  "user_agents": [
@@ -442,6 +602,10 @@
442
602
  "user_agents": [
443
603
  "DotBot/1"
444
604
  ],
605
+ "app": "DotBot",
606
+ "examples": [
607
+ "Mozilla/5.0 (compatible; DotBot/1.1; http://www.opensiteexplorer.org/dotbot, help@moz.com)"
608
+ ],
445
609
  "bot": true
446
610
  },
447
611
  {
@@ -458,7 +622,7 @@
458
622
  },
459
623
  {
460
624
  "user_agents": [
461
- "Downcast/"
625
+ "Downcast/.*iPhone"
462
626
  ],
463
627
  "app": "Downcast",
464
628
  "device": "phone",
@@ -468,6 +632,28 @@
468
632
  "os": "ios"
469
633
  },
470
634
  {
635
+ "user_agents": [
636
+ "Downcast/.*iPad"
637
+ ],
638
+ "app": "Downcast",
639
+ "device": "tablet",
640
+ "examples": [
641
+ "Downcast/2.9.57 (iPad; iOS 14.2; Scale/2.00)"
642
+ ],
643
+ "os": "ios"
644
+ },
645
+ {
646
+ "user_agents": [
647
+ "Downcast/.*Mac OS X"
648
+ ],
649
+ "app": "Downcast",
650
+ "examples": [
651
+ "Downcast/2.9.57 (Mac OS X Version 10.15.7 (Build 19H15))"
652
+ ],
653
+ "os": "macos",
654
+ "device": "pc"
655
+ },
656
+ {
471
657
  "user_agents": [
472
658
  "Xbox.+Edge/"
473
659
  ],
@@ -504,9 +690,25 @@
504
690
  },
505
691
  {
506
692
  "user_agents": [
507
- "FacebookBot"
693
+ "FacebookBot",
694
+ "facebookexternalhit/"
508
695
  ],
509
- "bot": true
696
+ "bot": true,
697
+ "app": "Facebook",
698
+ "info_url": "https://www.facebook.com/externalhit_uatext.php",
699
+ "examples": [
700
+ "facebookexternalhit/1.1 ( http://www.facebook.com/externalhit_uatext.php)"
701
+ ]
702
+ },
703
+ {
704
+ "user_agents": [
705
+ "^feedly/"
706
+ ],
707
+ "app": "Feedly",
708
+ "examples": [
709
+ "feedly/81.0.1 CFNetwork/1206 Darwin/20.1.0"
710
+ ],
711
+ "description": "An RSS reader"
510
712
  },
511
713
  {
512
714
  "user_agents": [
@@ -562,7 +764,7 @@
562
764
  "user_agents": [
563
765
  "^Lavf/"
564
766
  ],
565
- "app": "ffmpeg"
767
+ "developer_notes": "ffmpeg is a library used within TuneIn, VLC, ffmpeg and other programs. This is the default useragent for the ffmpeg library. Since it's a library, not an app by itself, we don't add its name here."
566
768
  },
567
769
  {
568
770
  "user_agents": [
@@ -594,25 +796,37 @@
594
796
  "user_agents": [
595
797
  "^fyyd-poll"
596
798
  ],
799
+ "app": "Fyyd",
597
800
  "bot": true
598
801
  },
599
802
  {
600
803
  "user_agents": [
601
804
  "^Go-http-client"
602
805
  ],
603
- "bot": true
806
+ "developer_notes": "This has been seen being used by a TuneIn client, and may be within WinAMP code.",
807
+ "examples": [
808
+ "Go-http-client/2.0"
809
+ ]
604
810
  },
605
811
  {
606
812
  "user_agents": [
607
- "^Googlebot"
813
+ "Googlebot/",
814
+ "Googlebot-Video/"
608
815
  ],
816
+ "examples": [
817
+ "Mozilla/5.0 (Linux; Android 6.0.1; Nexus 5X Build/MMB29P) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.96 Mobile Safari/537.36 (compatible; Googlebot/2.1; http://www.google.com/bot.html)"
818
+ ],
819
+ "description": "Google's search bot",
820
+ "app": "Googlebot",
821
+ "info_url": "http://www.google.com/bot.html",
609
822
  "bot": true
610
823
  },
611
824
  {
612
825
  "user_agents": [
613
826
  "Google-Podcast"
614
827
  ],
615
- "bot": true
828
+ "bot": true,
829
+ "app": "Google Podcasts Manager"
616
830
  },
617
831
  {
618
832
  "user_agents": [
@@ -620,6 +834,7 @@
620
834
  ],
621
835
  "app": "Google Home",
622
836
  "device": "speaker",
837
+ "description": "Google Podcasts on smart speakers",
623
838
  "os": "google_assistant"
624
839
  },
625
840
  {
@@ -628,22 +843,23 @@
628
843
  ],
629
844
  "app": "Google Podcasts",
630
845
  "device": "speaker",
846
+ "description": "Google Podcasts on smart speakers",
631
847
  "os": "google_assistant"
632
848
  },
633
849
  {
634
850
  "user_agents": [
635
- "iPhone;.*GSA/"
851
+ "(iPhone|iPad|iPod touch).*GSA/",
852
+ "^Podcasts$",
853
+ "^GooglePodcasts/"
636
854
  ],
637
855
  "app": "Google Podcasts",
638
- "device": "phone",
639
- "os": "ios"
640
- },
641
- {
642
- "user_agents": [
643
- "iPad;.*GSA/"
856
+ "description": "Google Podcasts on iOS",
857
+ "examples": [
858
+ "GooglePodcasts/2.0.2%20iPod_touch/13.4.1%20hw/iPod9_1",
859
+ "Mozilla/5.0 (iPhone; CPU iPhone OS 13_4 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) GSA/107.0.310639584 Mobile/15E148 Safari/604.1",
860
+ "Mozilla/5.0 (iPod touch; CPU iPhone OS 12_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) GSA/107.0.310639584 Mobile/15E148 Safari/601.1"
644
861
  ],
645
- "app": "Google Podcasts",
646
- "device": "tablet",
862
+ "developer_notes": "'GooglePodcasts' is the iOS app, while (?:(?:iPhone|iPad|iPod touch);.+)?GSA/ is used in the Google app when searching and playing podcasts. The first useragent was simply 'Podcasts'.",
647
863
  "os": "ios"
648
864
  },
649
865
  {
@@ -651,7 +867,13 @@
651
867
  "(?:Android;.+)?GSA/"
652
868
  ],
653
869
  "app": "Google Podcasts",
654
- "os": "android"
870
+ "os": "android",
871
+ "description": "Google Podcasts on Android (the app or player)",
872
+ "examples": [
873
+ "Mozilla/5.0 (Linux; Android 10; Pixel 3a Build/QQ2A.200305.002; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/80.0.3987.149 Mobile Safari/537.36 GSA/11.2.7.21.arm64",
874
+ "Mozilla/5.0 (Linux; Android 10; SM-G986U Build/QP1A.190711.020; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/86.0.4240.75 Mobile Safari/537.36 GSA/11.31.12.21.arm64"
875
+ ],
876
+ "developer_notes": "*GSA/ is used in the Google app when searching and playing podcasts, and in the Google Podcasts app"
655
877
  },
656
878
  {
657
879
  "user_agents": [
@@ -662,10 +884,11 @@
662
884
  },
663
885
  {
664
886
  "user_agents": [
665
- "Android.*Chrome/"
887
+ "Android.*Chrome/(?!.*(Googlebot|CrKey|GSA/))"
666
888
  ],
667
889
  "app": "Google Chrome",
668
- "os": "android"
890
+ "os": "android",
891
+ "developer_notes": "This won't match Googlebot, a Chromecast device, Google speaker or Google app"
669
892
  },
670
893
  {
671
894
  "user_agents": [
@@ -677,26 +900,28 @@
677
900
  },
678
901
  {
679
902
  "user_agents": [
680
- "Linux.*Chrome/"
903
+ "Linux(?!.*(Android)).*Chrome/(?!.*(CrKey|GSA/))"
681
904
  ],
682
905
  "app": "Google Chrome",
683
906
  "device": "pc",
684
- "os": "linux"
907
+ "os": "linux",
908
+ "developer_notes": "This won't match an Android device, Chromecast device, Google speaker or Google app"
685
909
  },
686
910
  {
687
911
  "user_agents": [
688
- "Mac OS X.*Chrome/"
912
+ "Mac OS X.*Chrome/(?!.*(Spreaker\/|OPR\/))"
689
913
  ],
690
914
  "app": "Google Chrome",
691
915
  "device": "pc",
692
916
  "examples": [
693
917
  "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.71 Safari/537.36"
694
918
  ],
695
- "os": "macos"
919
+ "os": "macos",
920
+ "developer_notes": "This won't match the Spreaker app"
696
921
  },
697
922
  {
698
923
  "user_agents": [
699
- "Windows.*Chrome/"
924
+ "Windows.*Chrome/(?!.*(OPR/))"
700
925
  ],
701
926
  "app": "Google Chrome",
702
927
  "device": "pc",
@@ -723,10 +948,12 @@
723
948
  },
724
949
  {
725
950
  "user_agents": [
726
- "^gPodder/",
951
+ "^gPodder/.*Windows",
727
952
  "^gpodder\\.net"
728
953
  ],
729
954
  "app": "gPodder",
955
+ "os": "windows",
956
+ "device": "pc",
730
957
  "examples": [
731
958
  "gPodder/3.10.8 (+http://gpodder.org/) Windows/10"
732
959
  ]
@@ -737,6 +964,17 @@
737
964
  ],
738
965
  "device": "radio"
739
966
  },
967
+ {
968
+ "user_agents": [
969
+ "^GaanaAndroid-"
970
+ ],
971
+ "app": "Gaana",
972
+ "os": "android",
973
+ "examples": [
974
+ "GaanaAndroid-8.13.0/Dalvik/2.1.0 (Linux; U; Android 9; vivo 1906 Build/PKQ1.190616.001)",
975
+ "GaanaAndroid-8.13.0/Dalvik/2.1.0 (Linux; U; Android 5.1; Micromax P701 Build/LMY47D)"
976
+ ]
977
+ },
740
978
  {
741
979
  "user_agents": [
742
980
  "^Guardian-iOSLive/"
@@ -771,9 +1009,16 @@
771
1009
  },
772
1010
  {
773
1011
  "user_agents": [
774
- "^Himalaya/"
1012
+ "^Himalaya/.+iPhone"
1013
+ ],
1014
+ "app": "Himalaya",
1015
+ "device": "phone",
1016
+ "examples": [
1017
+ "Himalaya/2.4.41 (iPhone; iOS 14.0.1; Scale/3.00; CFNetwork; iPhone9,4)",
1018
+ "Himalaya/2.4.42 (iPhone; iOS 14.2; Scale/2.00; CFNetwork; iPhone8,1)"
775
1019
  ],
776
- "app": "Himalaya"
1020
+ "os": "ios",
1021
+ "description": "Himalaya is a podcast app"
777
1022
  },
778
1023
  {
779
1024
  "user_agents": [
@@ -785,9 +1030,30 @@
785
1030
  },
786
1031
  {
787
1032
  "user_agents": [
788
- "^iHeartRadio/"
1033
+ "^iHeartRadio/.*Android"
1034
+ ],
1035
+ "app": "iHeartRadio",
1036
+ "os": "android",
1037
+ "examples": [
1038
+ "iHeartRadio/9.19.0 (Android 10; SM-G960U Build/QP1A.190711.020)",
1039
+ "iHeartRadio/9.19.0 (Android 9; SM-G950U Build/PPR1.180610.011)"
1040
+ ],
1041
+ "info_url": "https://play.google.com/store/apps/details?id=com.clearchannel.iheartradio.controller"
1042
+ },
1043
+ {
1044
+ "user_agents": [
1045
+ "^iHeartRadio/.* CFNetwork/",
1046
+ "^iHeartRadio/.* iOS"
789
1047
  ],
790
- "app": "iHeartRadio"
1048
+ "app": "iHeartRadio",
1049
+ "os": "ios",
1050
+ "examples": [
1051
+ "iHeartRadio/2020052002 CFNetwork/1125.2 Darwin/19.4.0",
1052
+ "iHeartRadio/9.20.0 (iPhone; iOS 13.4.1; iPhone11,8)",
1053
+ "iHeartRadio/9.20.0 (iPad; iOS 13.4.1; iPad6,12)",
1054
+ "iHeartRadio/9.7.0 (iPod touch; iOS 12.4.5; iPod7,1)"
1055
+ ],
1056
+ "info_url": "https://apps.apple.com/us/app/iheart-radio-music-podcasts/id290638154"
791
1057
  },
792
1058
  {
793
1059
  "user_agents": [
@@ -800,6 +1066,13 @@
800
1066
  ],
801
1067
  "os": "windows"
802
1068
  },
1069
+ {
1070
+ "user_agents": [
1071
+ "iVoox"
1072
+ ],
1073
+ "app": "iVoox",
1074
+ "info_url": "https://www.ivoox.com/"
1075
+ },
803
1076
  {
804
1077
  "user_agents": [
805
1078
  "iTMS",
@@ -809,7 +1082,8 @@
809
1082
  },
810
1083
  {
811
1084
  "user_agents": [
812
- "^iTunes/.+Mac OS"
1085
+ "^iTunes/.+Mac OS",
1086
+ "^iTunes/.+OS X"
813
1087
  ],
814
1088
  "examples": [
815
1089
  "iTunes/10.6.3 (Macintosh; Intel Mac OS X 10.5.8) AppleWebKit/534.50.2"
@@ -821,10 +1095,11 @@
821
1095
  },
822
1096
  {
823
1097
  "user_agents": [
824
- "^iTunes/1[12]\\."
1098
+ "^iTunes/.+Windows"
825
1099
  ],
826
1100
  "examples": [
827
- "iTunes/11.4 (Windows; Microsoft Windows 7 x64 Home Premium Edition (Build 7600)) AppleWebKit/7600.1017.0.24"
1101
+ "iTunes/11.4 (Windows; Microsoft Windows 7 x64 Home Premium Edition (Build 7600)) AppleWebKit/7600.1017.0.24",
1102
+ "iTunes/12.10.9 (Windows; Microsoft Windows 10 x64 Home Premium Edition (Build 19041); x64) AppleWebKit/7609.3005.1003.3"
828
1103
  ],
829
1104
  "app": "iTunes",
830
1105
  "device": "pc",
@@ -848,6 +1123,33 @@
848
1123
  "info_url": "https://www.jriver.com/",
849
1124
  "os": "windows"
850
1125
  },
1126
+ {
1127
+ "user_agents": [
1128
+ ".*KAIOS/"
1129
+ ],
1130
+ "app": "KAIOS podcast app",
1131
+ "device": "phone",
1132
+ "os": "kaios",
1133
+ "info_url": "https://kaiostech.com",
1134
+ "examples": [
1135
+ "Mozilla/5.0 (Mobile; LYF/F271i/LYF_F271i-000-01-20-101019; Android; rv:48.0) Gecko/48.0 Firefox/48.0 KAIOS/2.5"
1136
+ ],
1137
+ "developer_notes": "This is a standard useragent for KaiOS, the cut-down operating system for mobile phones in developing countries. Watch out - it may also contain Android."
1138
+ },
1139
+ {
1140
+ "user_agents": [
1141
+ ".*PodLP/"
1142
+ ],
1143
+ "app": "PodLP podcast app for KaiOS",
1144
+ "device": "phone",
1145
+ "os": "kaios",
1146
+ "info_url": "https://podlp.com",
1147
+ "examples": [
1148
+ "Mozilla/5.0 (Mobile; LYF/F271i/LYF_F271i-000-01-20-101019; Android; rv:48.0) Gecko/48.0 Firefox/48.0 KAIOS/2.5 PodLP/1.3.2.0"
1149
+ ],
1150
+ "description": "PodLP is the first podcast app available for KaiOS smart feature phones on the KaiStore.",
1151
+ "developer_notes": "Introduced in version v1.2.0.0 for limited content (downloads); available for all content after v1.3.0.0"
1152
+ },
851
1153
  {
852
1154
  "user_agents": [
853
1155
  "^Laughable.+iOS"
@@ -856,6 +1158,47 @@
856
1158
  "device": "phone",
857
1159
  "os": "ios"
858
1160
  },
1161
+ {
1162
+ "user_agents": [
1163
+ "^com.jio.media.jiobeats",
1164
+ "^com.saavn.android",
1165
+ "^saavn"
1166
+ ],
1167
+ "app": "JioSaavn",
1168
+ "os": "android",
1169
+ "info_url": "https://www.jiosaavn.com/",
1170
+ "description": "A music streaming and podcast app from India. Earn Your Happy!",
1171
+ "developer_notes": "The user-agent will start with one of the above strings followed by the app version and player version.",
1172
+ "examples": [
1173
+ "com.jio.media.jiobeats/7.3.1 (Linux;Android 8.1.0) ExoPlayerLib/2.11.4"
1174
+ ]
1175
+ },
1176
+ {
1177
+ "user_agents": [
1178
+ "^lamarr-iOS",
1179
+ "^TheEconomist-Lamarr-ios"
1180
+ ],
1181
+ "app": "The Economist",
1182
+ "device": "phone",
1183
+ "os": "ios",
1184
+ "examples": [
1185
+ "lamarr-iOS-2.20.3-116",
1186
+ "TheEconomist-Lamarr-ios-2.22.2-12002"
1187
+ ]
1188
+ },
1189
+ {
1190
+ "user_agents": [
1191
+ "^lamarr-android",
1192
+ "^TheEconomist-Lamarr-android"
1193
+ ],
1194
+ "app": "The Economist",
1195
+ "device": "phone",
1196
+ "os": "android",
1197
+ "examples": [
1198
+ "lamarr-android-2.18.1-21810",
1199
+ "TheEconomist-Lamarr-android-2.22.2-12002"
1200
+ ]
1201
+ },
859
1202
  {
860
1203
  "user_agents": [
861
1204
  "LG Player"
@@ -933,7 +1276,11 @@
933
1276
  },
934
1277
  {
935
1278
  "user_agents": [
936
- "MJ12bot"
1279
+ ".*MJ12bot"
1280
+ ],
1281
+ "app": "MJ12bot",
1282
+ "examples": [
1283
+ "Mozilla/5.0 (compatible; MJ12bot/v1.4.8; http://mj12bot.com/)"
937
1284
  ],
938
1285
  "bot": true
939
1286
  },
@@ -956,6 +1303,25 @@
956
1303
  "info_url": "https://getmusicbee.com/",
957
1304
  "os": "windows"
958
1305
  },
1306
+ {
1307
+ "user_agents": [
1308
+ "^NPR%20One/"
1309
+ ],
1310
+ "app": "NPR One",
1311
+ "examples": [
1312
+ "NPR%20One/234 CFNetwork/1197 Darwin/20.0.0"
1313
+ ]
1314
+ },
1315
+ {
1316
+ "user_agents": [
1317
+ "^NPROneAndroid"
1318
+ ],
1319
+ "app": "NPR One",
1320
+ "os": "android",
1321
+ "examples": [
1322
+ "NPROneAndroid"
1323
+ ]
1324
+ },
959
1325
  {
960
1326
  "user_agents": [
961
1327
  "^OkDownload/"
@@ -994,7 +1360,8 @@
994
1360
  },
995
1361
  {
996
1362
  "user_agents": [
997
- "Opera/.*\\(Windows"
1363
+ "Opera/.*\\(Windows",
1364
+ "Windows.*OPR/"
998
1365
  ],
999
1366
  "app": "Opera",
1000
1367
  "device": "pc",
@@ -1002,13 +1369,35 @@
1002
1369
  },
1003
1370
  {
1004
1371
  "user_agents": [
1005
- "Opera[/ ]"
1372
+ "Macintosh.*OPR/"
1006
1373
  ],
1007
- "app": "Opera"
1008
- },
1009
- {
1010
- "user_agents": [
1011
- "^Overcast/"
1374
+ "app": "Opera",
1375
+ "os": "macos",
1376
+ "device": "pc",
1377
+ "examples": [
1378
+ "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.111 Safari/537.36 OPR/72.0.3815.186"
1379
+ ]
1380
+ },
1381
+ {
1382
+ "user_agents": [
1383
+ "^MauiBot"
1384
+ ],
1385
+ "app": "MauiBot",
1386
+ "bot": true,
1387
+ "examples": [
1388
+ "MauiBot (crawler.feedback dc@gmail.com)"
1389
+ ]
1390
+ },
1391
+ {
1392
+ "user_agents": [
1393
+ "Opera[/ ]"
1394
+ ],
1395
+ "app": "Opera"
1396
+ },
1397
+ {
1398
+ "user_agents": [
1399
+ "^Overcast/2",
1400
+ "^Overcast/3"
1012
1401
  ],
1013
1402
  "app": "Overcast",
1014
1403
  "examples": [
@@ -1018,17 +1407,63 @@
1018
1407
  },
1019
1408
  {
1020
1409
  "user_agents": [
1021
- "^PandoraRSSCrawler"
1410
+ "^Overcast.*Apple Watch"
1022
1411
  ],
1412
+ "app": "Overcast",
1413
+ "examples": [
1414
+ "Overcast ( http://overcast.fm/; Apple Watch podcast app)"
1415
+ ],
1416
+ "os": "watchos",
1417
+ "device": "watch"
1418
+ },
1419
+ {
1420
+ "user_agents": [
1421
+ "^Overcast/1.0 Podcast Sync"
1422
+ ],
1423
+ "app": "Overcast feed parser",
1424
+ "examples": [
1425
+ "Overcast/1.0 Podcast Sync"
1426
+ ],
1427
+ "developer_notes": "Marco Arment says: when a new episode is detected, the servers fetch a copy of it to seed these values with an initial set of data to make the privacy screen more accurate.",
1023
1428
  "bot": true
1024
1429
  },
1430
+ {
1431
+ "user_agents": [
1432
+ "^PandoraRSSCrawler"
1433
+ ],
1434
+ "bot": true,
1435
+ "app": "Pandora RSS crawler"
1436
+ },
1025
1437
  {
1026
1438
  "user_agents": [
1027
1439
  "^Pandora.+Android"
1028
1440
  ],
1029
1441
  "app": "Pandora",
1442
+ "os": "android",
1443
+ "examples": [
1444
+ "Pandora/2009.2 Android/7.1.1 gteslteatt (ExoPlayerLib1.5.14.1)"
1445
+ ]
1446
+ },
1447
+ {
1448
+ "user_agents": [
1449
+ "iPhone.+Pandora\/"
1450
+ ],
1451
+ "app": "Pandora",
1030
1452
  "device": "phone",
1031
- "os": "android"
1453
+ "os": "ios",
1454
+ "examples": [
1455
+ "Mozilla/5.0 (iPhone; CPU iPhone OS 12_4_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 Pandora/2009.2"
1456
+ ]
1457
+ },
1458
+ {
1459
+ "user_agents": [
1460
+ "PaperLiBot\/"
1461
+ ],
1462
+ "app": "PaperLi",
1463
+ "examples": [
1464
+ "Mozilla/5.0 (compatible; PaperLiBot/2.1; https://support.paper.li/entries/20023257-what-is-paper-li)"
1465
+ ],
1466
+ "bot": true
1032
1467
  },
1033
1468
  {
1034
1469
  "user_agents": [
@@ -1048,7 +1483,6 @@
1048
1483
  "^PocketCasts/"
1049
1484
  ],
1050
1485
  "app": "Pocket Casts",
1051
- "device": "phone",
1052
1486
  "examples": [
1053
1487
  "Pocket Casts"
1054
1488
  ],
@@ -1064,16 +1498,32 @@
1064
1498
  "app": "PodcastAddict",
1065
1499
  "device": "phone",
1066
1500
  "examples": [
1067
- "PodcastAddict/v2 - Dalvik/2.1.0 (Linux; U; Android 9; SM-N950U Build/PPR1.180610.011)"
1501
+ "PodcastAddict/v2 - Dalvik/2.1.0 (Linux; U; Android 9; SM-N950U Build/PPR1.180610.011)",
1502
+ "PodcastAddict/v5 ( https://podcastaddict.com/; Android podcast app)"
1068
1503
  ],
1069
1504
  "os": "android"
1070
1505
  },
1071
1506
  {
1072
1507
  "user_agents": [
1073
- "iOS.*The Podcast App/"
1508
+ "iOS.*The Podcast App/",
1509
+ "com.evolve.podcast/"
1074
1510
  ],
1075
1511
  "app": "The Podcast App",
1076
- "os": "ios"
1512
+ "os": "ios",
1513
+ "examples": [
1514
+ "podcast/2358 iOS/Version 13.5.1 (Build 017F80) The Podcast App/3.22.1",
1515
+ "com.evolve.podcast/3.22.1 (iPhone; ) (build 2358, iOS 13.5.1)"
1516
+ ],
1517
+ "developer_notes": "The com.evolve version of the useragent is an error, and has been reported to the developers as a bug. Caution: the beginning of their main useragent is similar to Google Podcasts."
1518
+ },
1519
+ {
1520
+ "user_agents": [
1521
+ "^PodcastGuru "
1522
+ ],
1523
+ "app": "Podcast Guru",
1524
+ "os": "android",
1525
+ "info_url": "https://podcastguru.io/",
1526
+ "description": "Podcast Guru is the simple and free podcast player"
1077
1527
  },
1078
1528
  {
1079
1529
  "user_agents": [
@@ -1104,15 +1554,64 @@
1104
1554
  },
1105
1555
  {
1106
1556
  "user_agents": [
1107
- "^PodCruncher/"
1557
+ "^PodCruncher/.* CFNetwork/"
1558
+ ],
1559
+ "app": "PodCruncher",
1560
+ "os": "ios",
1561
+ "examples": [
1562
+ "PodCruncher/3.7.1 CFNetwork/1125.2 Darwin/19.4.0",
1563
+ "PodCruncher/3.7.1 CFNetwork/978.0.7 Darwin/18.7.0"
1564
+ ],
1565
+ "info_url": "https://apps.apple.com/us/app/podcruncher-podcast-player/id421894356"
1566
+ },
1567
+ {
1568
+ "user_agents": [
1569
+ "^Podbean/Android App",
1570
+ "^Podbean/Android generic"
1571
+ ],
1572
+ "app": "Podbean",
1573
+ "os": "android",
1574
+ "examples": [
1575
+ "Podbean/Android App 7.6.4 (http://podbean.com),1927526fe23b5acf535b3e91b64cee95",
1576
+ "Podbean/Android App 8.1.5 (http://podbean.com),4f6852f59091d32475ef75a53325a4fe",
1577
+ "Podbean/Android generic 1.1.2 (http://podbean.com),9376c517335ded9a716022cc1f15c884"
1578
+ ],
1579
+ "info_url": "https://play.google.com/store/apps/details?id=com.podbean.app.podcast"
1580
+ },
1581
+ {
1582
+ "user_agents": [
1583
+ "^Podbean/iOS"
1584
+ ],
1585
+ "app": "Podbean",
1586
+ "os": "ios",
1587
+ "examples": [
1588
+ "Podbean/iOS (http://podbean.com) 5.2.0 - 19c4ff292bd09cd2ccbad22cc6755a45"
1108
1589
  ],
1109
- "app": "PodCruncher"
1590
+ "info_url": "https://apps.apple.com/us/app/podbean-podcast-app-player/id973361050"
1110
1591
  },
1111
1592
  {
1112
1593
  "user_agents": [
1113
- "^Podbean/"
1594
+ "podfollowbot/"
1114
1595
  ],
1115
- "app": "Podbean"
1596
+ "app": "Podfollow",
1597
+ "examples": [
1598
+ "Mozilla/5.0 https://podfollow.com/crawling podfollowbot/1.0"
1599
+ ],
1600
+ "info_url": "https://podfollow.com",
1601
+ "description": "Podfollow, a service to help link to your podcast",
1602
+ "bot": true
1603
+ },
1604
+ {
1605
+ "user_agents": [
1606
+ "^Podhero",
1607
+ "^Swoot/"
1608
+ ],
1609
+ "app": "Podhero",
1610
+ "examples": [
1611
+ "Podhero%20Alpha/4373 CFNetwork/1197 Darwin/20.0.0"
1612
+ ],
1613
+ "info_url": "https://podhero.com",
1614
+ "description": "Podhero app on iOS and Android."
1116
1615
  },
1117
1616
  {
1118
1617
  "user_agents": [
@@ -1121,6 +1620,41 @@
1121
1620
  "app": "Podkicker Pro",
1122
1621
  "os": "android"
1123
1622
  },
1623
+ {
1624
+ "user_agents": [
1625
+ "PodLink"
1626
+ ],
1627
+ "app": "PodLink",
1628
+ "info_url": "https://pod.link/faq/crawler"
1629
+ },
1630
+ {
1631
+ "user_agents": [
1632
+ "^PodMN/Android"
1633
+ ],
1634
+ "description": "Minnesota Podcasts Live Here",
1635
+ "examples": [
1636
+ "PodMN/Android 1.2.6 (Android 7.1.1; SM-J510FN Build/NMF26X)"
1637
+ ],
1638
+ "info_url": "https://play.google.com/store/apps/details?id=com.podmn.app",
1639
+ "app": "PodMN",
1640
+ "device": "phone",
1641
+ "os": "android",
1642
+ "svg": "podmn.svg"
1643
+ },
1644
+ {
1645
+ "user_agents": [
1646
+ "^PodMN/iOS"
1647
+ ],
1648
+ "description": "Minnesota Podcasts Live Here",
1649
+ "examples": [
1650
+ "PodMN/iOS 1.2.6 (iPhone XR/13.6.1)"
1651
+ ],
1652
+ "info_url": "https://apps.apple.com/us/app/podmn/id1464935818",
1653
+ "app": "PodMN",
1654
+ "device": "phone",
1655
+ "os": "ios",
1656
+ "svg": "podmn.svg"
1657
+ },
1124
1658
  {
1125
1659
  "user_agents": [
1126
1660
  "PodnewsBot"
@@ -1130,12 +1664,65 @@
1130
1664
  "description": "Podnews runs a number of bots to read and test RSS and audio files",
1131
1665
  "info_url": "http://podnews.net"
1132
1666
  },
1667
+ {
1668
+ "user_agents": [
1669
+ "podnods-crawler",
1670
+ "podnods"
1671
+ ],
1672
+ "app": "Podnods",
1673
+ "bot": true,
1674
+ "description": "Podnods is a podcast discovery site. This user agent is for crawling podcast data.",
1675
+ "info_url": "https://podnods.com/about"
1676
+ },
1677
+ {
1678
+ "user_agents": [
1679
+ "podnods-player"
1680
+ ],
1681
+ "app": "Podnods",
1682
+ "description": "Podnods is a podcast discovery site. This user agent is for users to sample and play podcasts.",
1683
+ "info_url": "https://podnods.com/about"
1684
+ },
1685
+ {
1686
+ "user_agents": [
1687
+ "Podyssey App"
1688
+ ],
1689
+ "app": "Podyssey",
1690
+ "description": "Podyssey is a community for people that love podcasts. It's like Goodreads, but for podcasts.",
1691
+ "info_url": "https://podyssey.fm"
1692
+ },
1693
+ {
1694
+ "user_agents": [
1695
+ "com.toysinboxes.Echo"
1696
+ ],
1697
+ "app": "Podyssey",
1698
+ "description": "Podyssey is a community for people that love podcasts. It's like Goodreads, but for podcasts.",
1699
+ "info_url": "https://podyssey.fm",
1700
+ "os": "ios"
1701
+ },
1702
+ {
1703
+ "user_agents": [
1704
+ "fm.podyssey.podcasts"
1705
+ ],
1706
+ "app": "Podyssey",
1707
+ "description": "Podyssey is a community for people that love podcasts. It's like Goodreads, but for podcasts.",
1708
+ "info_url": "https://podyssey.fm",
1709
+ "os": "android"
1710
+ },
1133
1711
  {
1134
1712
  "user_agents": [
1135
1713
  "python-requests"
1136
1714
  ],
1137
1715
  "bot": true
1138
1716
  },
1717
+ {
1718
+ "user_agents": [
1719
+ "^radio.de/app.+Android"
1720
+ ],
1721
+ "app": "radio.de",
1722
+ "os": "android",
1723
+ "description": "Radio.de is a radio and podcast app in Germany",
1724
+ "info_url": "https://www.radio.de/"
1725
+ },
1139
1726
  {
1140
1727
  "user_agents": [
1141
1728
  "^Radioplayer Android app"
@@ -1171,10 +1758,14 @@
1171
1758
  {
1172
1759
  "user_agents": [
1173
1760
  "RadioPublic iOS",
1174
- "RadioPublic.+CFNetwork"
1761
+ "RadioPublic.+CFNetwork",
1762
+ "^RadioPublic/iOS"
1175
1763
  ],
1176
1764
  "app": "RadioPublic",
1177
1765
  "description": "RadioPublic’s free, easy to use podcast player makes listening to podcasts simple, enjoyable, and fun.",
1766
+ "examples": [
1767
+ "RadioPublic/iOS-2.0"
1768
+ ],
1178
1769
  "info_url": "https://radiopublic.com/",
1179
1770
  "svg": "radiopublic.svg",
1180
1771
  "os": "ios"
@@ -1200,12 +1791,13 @@
1200
1791
  },
1201
1792
  {
1202
1793
  "user_agents": [
1203
- "^RSSRadio7?/"
1794
+ "^RSSRadio"
1204
1795
  ],
1205
1796
  "app": "RSS Radio",
1206
1797
  "device": "phone",
1207
1798
  "examples": [
1208
- "RSSRadio7/9252 CFNetwork/1107.1 Darwin/19.0.0"
1799
+ "RSSRadio7/9252 CFNetwork/1107.1 Darwin/19.0.0",
1800
+ "RSSRadio/9710"
1209
1801
  ],
1210
1802
  "info_url": "http://rssrad.io",
1211
1803
  "os": "ios"
@@ -1214,14 +1806,29 @@
1214
1806
  "user_agents": [
1215
1807
  "^Ruby"
1216
1808
  ],
1217
- "bot": true
1809
+ "developer_notes": "The generic Ruby user-agent."
1218
1810
  },
1219
1811
  {
1220
1812
  "user_agents": [
1221
- "^SEMrushBot"
1813
+ "SemrushBot\/"
1814
+ ],
1815
+ "app": "SEMrushBot",
1816
+ "examples": [
1817
+ "Mozilla/5.0 (compatible; SemrushBot/6~bl; http://www.semrush.com/bot.html)"
1222
1818
  ],
1223
1819
  "bot": true
1224
1820
  },
1821
+ {
1822
+ "user_agents": [
1823
+ "SerendeputyBot\/"
1824
+ ],
1825
+ "app": "Serendeputy",
1826
+ "examples": [
1827
+ "SerendeputyBot/0.8.6 (http://serendeputy.com/about/serendeputy-bot)"
1828
+ ],
1829
+ "bot": true,
1830
+ "info_url": "https://serendeputy.com/about/serendeputy-bot"
1831
+ },
1225
1832
  {
1226
1833
  "user_agents": [
1227
1834
  "^Spotify/.+Linux"
@@ -1266,21 +1873,29 @@
1266
1873
  },
1267
1874
  {
1268
1875
  "user_agents": [
1269
- "^Spotify/\\d+"
1876
+ "^Spotify/1.0$"
1270
1877
  ],
1271
- "bot": true
1878
+ "app": "Spotify cache service",
1879
+ "bot": true,
1880
+ "examples": [
1881
+ "Spotify/1.0"
1882
+ ],
1883
+ "developer_notes": "This useragent, currently simply Spotify/1.0, is used when retrieving the RSS and audio for Spotify's catalogue. It isn't used for passthru."
1272
1884
  },
1273
1885
  {
1274
1886
  "user_agents": [
1275
- "Macintosh.*AppleWebKit.*Safari/"
1887
+ "Macintosh.*AppleWebKit(?!.*(Chrome\/)).*Safari/(?!.*(AdsBot/))"
1276
1888
  ],
1277
1889
  "app": "Safari",
1278
1890
  "device": "pc",
1279
- "os": "macos"
1891
+ "os": "macos",
1892
+ "examples": [
1893
+ "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_6) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.0 Safari/605.1.15"
1894
+ ]
1280
1895
  },
1281
1896
  {
1282
1897
  "user_agents": [
1283
- "Windows.*AppleWebKit.*Safari/"
1898
+ "Windows.*AppleWebKit(?!.*(Chrome\/)).*Safari/"
1284
1899
  ],
1285
1900
  "app": "Safari",
1286
1901
  "device": "pc",
@@ -1288,7 +1903,7 @@
1288
1903
  },
1289
1904
  {
1290
1905
  "user_agents": [
1291
- "iPhone.*AppleWebKit.*Safari/"
1906
+ "iPhone.*AppleWebKit(?!.*(AdsBot|CriOS)).*Safari/"
1292
1907
  ],
1293
1908
  "app": "Safari",
1294
1909
  "device": "phone",
@@ -1302,12 +1917,28 @@
1302
1917
  "device": "tablet",
1303
1918
  "os": "ios"
1304
1919
  },
1920
+ {
1921
+ "user_agents": [
1922
+ "^Slack/"
1923
+ ],
1924
+ "app": "Slack"
1925
+ },
1305
1926
  {
1306
1927
  "user_agents": [
1307
1928
  "^Subcast"
1308
1929
  ],
1309
1930
  "app": "Subcast"
1310
1931
  },
1932
+ {
1933
+ "user_agents": [
1934
+ "Sonnet"
1935
+ ],
1936
+ "app": "Sonnet",
1937
+ "description": "Sonnet is a simple, easy to use podcast app aimed at new listeners",
1938
+ "os": "android",
1939
+ "info_url": "https://sonnet.fm",
1940
+ "svg": "sonnet.svg"
1941
+ },
1311
1942
  {
1312
1943
  "user_agents": [
1313
1944
  "Sonos"
@@ -1318,7 +1949,14 @@
1318
1949
  },
1319
1950
  {
1320
1951
  "user_agents": [
1321
- "^Spreaker"
1952
+ "^Spreaker for Android"
1953
+ ],
1954
+ "app": "Spreaker",
1955
+ "os": "Android"
1956
+ },
1957
+ {
1958
+ "user_agents": [
1959
+ "Spreaker/"
1322
1960
  ],
1323
1961
  "app": "Spreaker"
1324
1962
  },
@@ -1330,7 +1968,12 @@
1330
1968
  },
1331
1969
  {
1332
1970
  "user_agents": [
1333
- "^Stitcher/Android"
1971
+ "^Stitcher\/Android",
1972
+ "^Stitcher Demo\/"
1973
+ ],
1974
+ "examples": [
1975
+ "Stitcher Demo/4.8.0 (Linux;Android 11) ExoPlayerLib/2.10.7",
1976
+ "Stitcher/Android"
1334
1977
  ],
1335
1978
  "app": "Stitcher",
1336
1979
  "os": "android"
@@ -1348,12 +1991,14 @@
1348
1991
  "^Stitcher/iOS"
1349
1992
  ],
1350
1993
  "app": "Stitcher",
1351
- "os": "ios"
1994
+ "os": "ios",
1995
+ "device": "phone"
1352
1996
  },
1353
1997
  {
1354
1998
  "user_agents": [
1355
- "StitcherBot"
1999
+ "^StitcherBot"
1356
2000
  ],
2001
+ "app": "Stitcher",
1357
2002
  "bot": true
1358
2003
  },
1359
2004
  {
@@ -1376,21 +2021,76 @@
1376
2021
  },
1377
2022
  {
1378
2023
  "user_agents": [
1379
- "^Swoot/"
2024
+ "TrendsmapResolver\/"
1380
2025
  ],
1381
- "app": "Swoot"
2026
+ "app": "Trendsmap Resolver",
2027
+ "bot": true
1382
2028
  },
1383
2029
  {
1384
2030
  "user_agents": [
1385
2031
  "^Trackable/"
1386
2032
  ],
2033
+ "app": "Chartable",
2034
+ "info_url": "https://chartable.com/",
1387
2035
  "bot": true
2036
+ },
2037
+ {
2038
+ "user_agents": [
2039
+ "^TuneIn Radio/.*;Android"
2040
+ ],
2041
+ "examples": [
2042
+ "TuneIn Radio/24.2 (Linux;Android 10) ExoPlayerLib/2.11.4"
2043
+ ],
2044
+ "app": "TuneIn Radio",
2045
+ "os": "android",
2046
+ "info_url": "https://play.google.com/store/apps/details?id=tunein.player"
1388
2047
  },
1389
2048
  {
1390
2049
  "user_agents": [
1391
- "^TuneIn"
2050
+ "^TuneIn Radio Pro/.*;Android"
1392
2051
  ],
1393
- "app": "TuneIn"
2052
+ "examples": [
2053
+ "TuneIn Radio Pro/23.3.2 (Linux;Android 5.1.1) ExoPlayerLib/2.10.7"
2054
+ ],
2055
+ "app": "TuneIn Pro",
2056
+ "os": "android",
2057
+ "info_url": "https://play.google.com/store/apps/details?id=radiotime.player"
2058
+ },
2059
+ {
2060
+ "user_agents": [
2061
+ "^TuneIn(%20| )Radio/.*(CFNetwork/|iPhone)"
2062
+ ],
2063
+ "examples": [
2064
+ "TuneIn Radio/1366 CFNetwork/1121.2.2 Darwin/19.3.0",
2065
+ "TuneIn Radio/18.1; iPhone12,8; iOS/13.4.1",
2066
+ "TuneIn%20Radio/1383 CFNetwork/1125.2 Darwin/19.4.0"
2067
+ ],
2068
+ "app": "TuneIn Radio",
2069
+ "os": "ios",
2070
+ "info_url": "https://apps.apple.com/us/app/tunein-radio-live-news-music/id418987775"
2071
+ },
2072
+ {
2073
+ "user_agents": [
2074
+ "^TuneIn(%20| )Radio(%20| )Pro/.*CFNetwork/"
2075
+ ],
2076
+ "examples": [
2077
+ "TuneIn Radio Pro/1361 CFNetwork/1121.2.2 Darwin/19.3.0",
2078
+ "TuneIn%20Radio%20Pro/1383 CFNetwork/1125.2 Darwin/19.4.0"
2079
+ ],
2080
+ "app": "TuneIn Pro",
2081
+ "os": "ios",
2082
+ "info_url": "https://apps.apple.com/us/app/tunein-pro-radio-sports/id319295332"
2083
+ },
2084
+ {
2085
+ "user_agents": [
2086
+ "^TuneIn(?!.*(CFNetwork|Android))"
2087
+ ],
2088
+ "examples": [
2089
+ "TuneIn Radio"
2090
+ ],
2091
+ "app": "TuneIn Radio",
2092
+ "info_url": "https://tunein.com/",
2093
+ "developer_notes": "Other versions of this app use many other user agents."
1394
2094
  },
1395
2095
  {
1396
2096
  "user_agents": [
@@ -1427,6 +2127,7 @@
1427
2127
  "user_agents": [
1428
2128
  "Wget"
1429
2129
  ],
2130
+ "app": "Wget",
1430
2131
  "bot": true
1431
2132
  },
1432
2133
  {
@@ -1460,8 +2161,9 @@
1460
2161
  },
1461
2162
  {
1462
2163
  "user_agents": [
1463
- "YandexBot"
2164
+ "YandexBot\/"
1464
2165
  ],
2166
+ "app": "YandexBot",
1465
2167
  "bot": true
1466
2168
  },
1467
2169
  {
@@ -1475,5 +2177,241 @@
1475
2177
  "stagefright/"
1476
2178
  ],
1477
2179
  "os": "android"
2180
+ },
2181
+ {
2182
+ "user_agents": [
2183
+ "^^com\\.evolve\\.podcast/"
2184
+ ],
2185
+ "app": "The Podcast App",
2186
+ "device": "phone",
2187
+ "examples": [
2188
+ "com.evolve.podcast/3.10.1 (iPhone; ) (build 951, iOS 13.3)"
2189
+ ],
2190
+ "os": "ios"
2191
+ },
2192
+ {
2193
+ "user_agents": [
2194
+ "^Podimo/.*iOS"
2195
+ ],
2196
+ "app": "Podimo",
2197
+ "device": "phone",
2198
+ "os": "ios",
2199
+ "examples": [
2200
+ "Podimo/1.11.3 build 121/iOS 13.3"
2201
+ ],
2202
+ "info_url": "https://apps.apple.com/dk/app/podimo-a-world-of-podcasts/id1476538730"
2203
+ },
2204
+ {
2205
+ "user_agents": [
2206
+ "^Podimo/.*Android"
2207
+ ],
2208
+ "app": "Podimo",
2209
+ "device": "phone",
2210
+ "os": "android",
2211
+ "examples": [
2212
+ "Podimo/1.11.3 build 91/Android 28"
2213
+ ],
2214
+ "info_url": "https://play.google.com/store/apps/details?id=com.podimo&hl=en_US"
2215
+ },
2216
+ {
2217
+ "user_agents": [
2218
+ "BingPreview/",
2219
+ "adidxbot/",
2220
+ "bingbot/"
2221
+ ],
2222
+ "app": "Microsoft Bing",
2223
+ "bot": true,
2224
+ "info_url": "https://www.bing.com/webmaster/help/which-crawlers-does-bing-use-8c184ec0",
2225
+ "examples": [
2226
+ "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/534 (KHTML, like Gecko) BingPreview/1.0b"
2227
+ ]
2228
+ },
2229
+ {
2230
+ "user_agents": [
2231
+ "^msnbot/"
2232
+ ],
2233
+ "bot": true
2234
+ },
2235
+ {
2236
+ "user_agents": [
2237
+ "^Deezer Podcasters\/1\\.0"
2238
+ ],
2239
+ "bot": true,
2240
+ "app": "Deezer Podcasters"
2241
+ },
2242
+ {
2243
+ "user_agents": [
2244
+ "^got/"
2245
+ ],
2246
+ "bot": true,
2247
+ "info_url": "https://play.google.com/store/apps/details?id=com.podimo&hl=en_US",
2248
+ "developer_notes": "Got is a HTTP library for NodeJs"
2249
+ },
2250
+ {
2251
+ "user_agents": [
2252
+ "INA dlweb"
2253
+ ],
2254
+ "bot": true,
2255
+ "app": "l'Institut national de l'audiovisuel",
2256
+ "info_url": "https://institut.ina.fr/collecte-du-depot-legal-web",
2257
+ "developer_notes": "Institut National de l'Audiovisuel is a repository of all French radio and television audiovisual archives."
2258
+ },
2259
+ {
2260
+ "user_agents": [
2261
+ "^Instagram\/"
2262
+ ],
2263
+ "app": "Instagram",
2264
+ "examples": [
2265
+ "Instagram/252729634 CFNetwork/1126 Darwin/19.5.0"
2266
+ ]
2267
+ },
2268
+ {
2269
+ "user_agents": [
2270
+ "^SoundOn/[\\d\\.]+\\s+\\(Linux;Android",
2271
+ "^SoundOn\/[^12]\\.\\d+\\.\\d+$",
2272
+ "^SoundOn\/1\\.[^1][^0-2]?\\.\\d+$"
2273
+ ],
2274
+ "app": "SoundOn",
2275
+ "device": "phone",
2276
+ "examples": [
2277
+ "SoundOn/1.9.17 (Linux;Android 10) ExoPlayerLib/2.9.4"
2278
+ ],
2279
+ "os": "android"
2280
+ },
2281
+ {
2282
+ "user_agents": [
2283
+ "^SoundOn/1\\.1[0-2]\\.\\d+$",
2284
+ "^SoundOn/2\\.\\d+\\.\\d+$",
2285
+ "^SoundOn/[\\d\\.]+\\s+\\(iOS"
2286
+ ],
2287
+ "app": "SoundOn",
2288
+ "device": "phone",
2289
+ "examples": [
2290
+ "SoundOn/1.10.1",
2291
+ "SoundOn/2.2.0",
2292
+ "SoundOn/2.2.2 (iOS)"
2293
+ ],
2294
+ "os": "ios"
2295
+ },
2296
+ {
2297
+ "user_agents": [
2298
+ "^SoundOn/[\\d\\.]+\\s+\\(bot"
2299
+ ],
2300
+ "bot": true
2301
+ },
2302
+ {
2303
+ "user_agents": [
2304
+ "^Podverse/Android Mobile App/"
2305
+ ],
2306
+ "app": "Podverse Android Mobile App",
2307
+ "device": "phone",
2308
+ "os": "android",
2309
+ "info_url": "https://play.google.com/store/apps/details?id=com.podverse&hl=en_US",
2310
+ "description": "Open source podcast catcher for Android, with clip-sharing, playlists, device syncing and more.",
2311
+ "developer_notes": "The standard device user agent is concatenated to the end of the Podverse/Android Mobile App/ user agent."
2312
+ },
2313
+ {
2314
+ "user_agents": [
2315
+ "^Podverse/iOS Mobile App/"
2316
+ ],
2317
+ "app": "Podverse iOS Mobile App",
2318
+ "device": "phone",
2319
+ "os": "ios",
2320
+ "examples": [
2321
+ "Podverse/iOS Mobile App/Mozilla/5.0 (iPhone; CPU iPhone OS 13_6_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/1234"
2322
+ ],
2323
+ "description": "Open source podcast catcher for iOS, with clip-sharing, playlists, device syncing and more.",
2324
+ "info_url": "https://apps.apple.com/us/app/podverse/id1390888454",
2325
+ "developer_notes": "The standard device user agent is concatenated to the end of the Podverse/iOS Mobile App/ user agent."
2326
+ },
2327
+ {
2328
+ "user_agents": [
2329
+ "^Podverse/Feed Parser"
2330
+ ],
2331
+ "bot": true,
2332
+ "app": "Podverse Server-Side Feed Parser",
2333
+ "info_url": "https://podverse.fm",
2334
+ "description": "The Podverse feed parser.",
2335
+ "developer_notes": "This service parses publicly-accessible RSS feeds on a timer, then stores parsed data in the Podverse database."
2336
+ },
2337
+ {
2338
+ "user_agents": [
2339
+ "^Podcast/1."
2340
+ ],
2341
+ "app": "小宇宙",
2342
+ "info_url": "https://www.coolapk.com/apk/app.podcast.cosmos",
2343
+ "description": "Cosmos, a chinese podcast app"
2344
+ },
2345
+ {
2346
+ "user_agents": [
2347
+ "^Xiaoyuzhou\/.*Android\/"
2348
+ ],
2349
+ "app": "Xiao Yu Zhou",
2350
+ "description": "Xiao Yu Zhou, a podcast app",
2351
+ "os": "android",
2352
+ "examples": [
2353
+ "Xiaoyuzhou/1.9.6 Android/10"
2354
+ ]
2355
+ },
2356
+ {
2357
+ "user_agents": [
2358
+ "^Xiaoyuzhou/(?!.*(Android\/))"
2359
+ ],
2360
+ "app": "Xiao Yu Zhou",
2361
+ "description": "Xiao Yu Zhou, a podcast app",
2362
+ "info_url": "https://apps.apple.com/cn/app/%E5%B0%8F%E5%AE%87%E5%AE%99-%E4%B8%80%E8%B5%B7%E5%90%AC%E6%92%AD%E5%AE%A2/id1488894313",
2363
+ "os": "ios",
2364
+ "examples": [
2365
+ "Xiaoyuzhou/1.9.0",
2366
+ "Xiaoyuzhou/1.5.1"
2367
+ ]
2368
+ },
2369
+ {
2370
+ "user_agents": [
2371
+ "^yacybot"
2372
+ ],
2373
+ "app": "YaCy",
2374
+ "bot": true,
2375
+ "description": "Decentralized Web Search",
2376
+ "info_url": "http://yacy.net/bot.html",
2377
+ "examples": [
2378
+ "yacybot (/global; amd64 Linux 5.9.8-zen1-1-zen; java 1.8.0_265; Europe/de) http://yacy.net/bot.html"
2379
+ ]
2380
+ },
2381
+ {
2382
+ "user_agents": [
2383
+ "^Podcast-CriticalMention/"
2384
+ ],
2385
+ "app": "Critical Mention",
2386
+ "description": "Critical Mention is a business intelligence company, monitoring podcasts on the web for their clients",
2387
+ "bot": true,
2388
+ "examples": [
2389
+ "Podcast-CriticalMention/1.0"
2390
+ ]
2391
+ },
2392
+ {
2393
+ "user_agents": [
2394
+ "^RSSOwl.*Windows"
2395
+ ],
2396
+ "app": "RSSOwl",
2397
+ "description": "A Mac and Windows app, to help organize, search, and read feeds",
2398
+ "device": "pc",
2399
+ "os": "windows",
2400
+ "info_url": "http://www.rssowl.org/",
2401
+ "examples": [
2402
+ "RSSOwl/2.2.1.201312301314 (Windows; U; en)"
2403
+ ]
2404
+ },
2405
+ {
2406
+ "user_agents": [
2407
+ "^ltx71 "
2408
+ ],
2409
+ "app": "LTX71",
2410
+ "info_url": "http://ltx71.com/",
2411
+ "description": "We continuously scan the internet for security research purposes.",
2412
+ "bot": true,
2413
+ "examples": [
2414
+ "ltx71 - (http://ltx71.com/)"
2415
+ ]
1478
2416
  }
1479
2417
  ]