podcast_agent_parser 0.1.6 → 0.1.7

Sign up to get free protection for your applications and to get access to all the features.
Files changed (4) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +1 -1
  3. data/vendor/opawg/user-agents.json +603 -145
  4. metadata +2 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: a8557fa6d96b90032b03b66ef85005998c92481433a4c1f05967effe15af75d8
4
- data.tar.gz: 3cca25ecfa9a63c0062b608db6feddd416fbfada88e378b6b14a958fe8c54391
3
+ metadata.gz: 5cea872ce4cd7567e234e9fca16c2a6222e689357c5f493392c9ba7f9356ffe6
4
+ data.tar.gz: 53ef3ea8a8cf277b3046e8e7480981a4d0171149597d660a4560ad7ea4452363
5
5
  SHA512:
6
- metadata.gz: 31cc2ff22a235e577c4f59c5a919e242380842eec7ae75732481ad167ab17e4e69338602f1faf225bb0d0698c1630902cb5b04ba3a6945ebc15dbe66e53c2beb
7
- data.tar.gz: 8c52efe43aaaef2bc042a03036d9392b33041666390ff8374213294d032508bec40159b4545322017b7d3d2d4167ab0d4db10f48590d284c19f479b142da8e5c
6
+ metadata.gz: a381e3a072e21d0eb43b40a9b1d2eab84c35927d207fc004bc444ddf63295cf5dbb95f900899c650cf31b1e66f17b9d8cd0229b5ca165d7293ce6043bcc0b6ac
7
+ data.tar.gz: 9646030599c8aab63bd7846015b9a4bba19db61cb115154a32301252a5d93a0f10266724a10970d4b3e9fc49c83c42734700f89b9b041e2f80c4c8d842c65518
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.6'
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,38 +60,41 @@
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.",
50
68
  "svg": "amazon.svg",
51
69
  "bot": true
52
70
  },
53
71
  {
54
72
  "user_agents": [
55
- "^AmazonMusic/\\..*iPhone"
73
+ "^AmazonMusic.*iPhone"
56
74
  ],
57
75
  "examples": [
58
- "AmazonMusic/9.15.2 iPhone7,2 CFNetwork/978.0.7 Darwin/18.7.0"
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"
59
79
  ],
60
80
  "app": "Amazon Music Podcasts",
61
81
  "description": "A music and podcasts streaming app",
62
82
  "os": "ios",
63
- "device": "phone",
83
+ "device": "phone",
84
+ "developer_notes": "Examples are from an Amazon contact",
64
85
  "svg": "amazon.svg"
65
86
  },
66
87
  {
67
88
  "user_agents": [
68
- "^AmazonMusic$"
89
+ "^AmazonMusic.*Android"
69
90
  ],
70
91
  "examples": [
71
- "AmazonMusic"
92
+ "AmazonMusic/16.17.0 Dalvik/2.1.0 (Linux; U; Android 6.0.1; vivo 1610 Build/MMB29M)"
72
93
  ],
73
94
  "app": "Amazon Music Podcasts",
74
95
  "description": "A music and podcasts streaming app",
75
96
  "os": "android",
76
- "developer_notes": "This appears to be the Android UA, by testing",
97
+ "developer_notes": "Examples are from an Amazon contact",
77
98
  "svg": "amazon.svg"
78
99
  },
79
100
  {
@@ -82,8 +103,9 @@
82
103
  ],
83
104
  "app": "Amazon Music Podcasts",
84
105
  "description": "A music and podcasts streaming app",
85
- "developer_notes": "Seeing these once per episode, from an Oregon-based IP. Could be a bot or caching service?",
86
- "svg": "amazon.svg"
106
+ "developer_notes": "Backend ingestion service",
107
+ "svg": "amazon.svg",
108
+ "bot": true
87
109
  },
88
110
  {
89
111
  "user_agents": [
@@ -96,12 +118,19 @@
96
118
  },
97
119
  {
98
120
  "user_agents": [
99
- "Android 5.*ford/"
121
+ "^com.audible.playersdk.player",
122
+ "^Audible,"
100
123
  ],
101
- "app": "Amazon Kindle Fire",
102
- "device": "tablet",
124
+ "app": "Audible",
103
125
  "os": "android"
104
126
  },
127
+ {
128
+ "user_agents": [
129
+ "^Audible.*Darwin"
130
+ ],
131
+ "app": "Audible",
132
+ "os": "ios"
133
+ },
105
134
  {
106
135
  "user_agents": [
107
136
  "^AndroidDownloadManager"
@@ -161,7 +190,7 @@
161
190
  ],
162
191
  "os": "ios",
163
192
  "description": "AppleCoreMedia library",
164
- "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"
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"
165
194
  },
166
195
  {
167
196
  "user_agents": [
@@ -173,7 +202,7 @@
173
202
  ],
174
203
  "os": "ios",
175
204
  "description": "AppleCoreMedia library",
176
- "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"
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"
177
206
  },
178
207
  {
179
208
  "user_agents": [
@@ -183,9 +212,9 @@
183
212
  "examples": [
184
213
  "AppleCoreMedia/1.0.0.16G78 (HomePod; U; CPU OS 12_4 like Mac OS X; en_us)"
185
214
  ],
186
- "os": "homepod_os",
215
+ "os": "homepodos",
187
216
  "description": "AppleCoreMedia library",
188
- "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"
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"
189
218
  },
190
219
  {
191
220
  "user_agents": [
@@ -208,6 +237,30 @@
208
237
  "description": "AppleCoreMedia library",
209
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"
210
239
  },
240
+ {
241
+ "user_agents": [
242
+ "^atc\/.* watchOS\/.* model\/Watch"
243
+ ],
244
+ "app": "Apple Podcasts",
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.",
249
+ "examples": [
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
+ ]
263
+ },
211
264
  {
212
265
  "user_agents": [
213
266
  "^Podcasts/.*\\(.*\\)",
@@ -257,15 +310,15 @@
257
310
  "^البودكاست/.*\\d$",
258
311
  "^पॉडकास्ट/.*\\d$",
259
312
  "^พ็อดคาสท์/.*\\d$",
313
+ "^%E6%92%AD%E5%AE%A2/.*\\d$",
260
314
  "^播客/.*\\d$",
261
315
  "^팟캐스트/.*\\d$"
262
316
  ],
263
317
  "app": "Apple Podcasts",
264
- "os": "ios",
265
- "description": "The Apple Podcasts app on devices other than MacOS Catalina and above",
266
- "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.",
267
320
  "examples": [
268
- "Podcasts/2.6"
321
+ "Podcasts/1440.4 CFNetwork/1128.0.1 Darwin/19.6.0"
269
322
  ]
270
323
  },
271
324
  {
@@ -276,6 +329,14 @@
276
329
  "device": "pc",
277
330
  "info_url": "http://lincgeek.org/bashpodder/"
278
331
  },
332
+ {
333
+ "user_agents": [
334
+ "Barkrowler\/"
335
+ ],
336
+ "app": "Babbar",
337
+ "bot": true,
338
+ "info_url": "https://beta.babbar.tech/crawler"
339
+ },
279
340
  {
280
341
  "user_agents": [
281
342
  "BBC%20Sounds/"
@@ -310,6 +371,17 @@
310
371
  "os": "android"
311
372
  },
312
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
+ {
313
385
  "user_agents": [
314
386
  "^Bose/"
315
387
  ],
@@ -318,10 +390,10 @@
318
390
  },
319
391
  {
320
392
  "user_agents": [
321
- "^Breaker/"
393
+ "^Breaker/iOS"
322
394
  ],
323
395
  "app": "Breaker",
324
- "device": "phone"
396
+ "os": "ios"
325
397
  },
326
398
  {
327
399
  "user_agents": [
@@ -356,13 +428,13 @@
356
428
  },
357
429
  {
358
430
  "user_agents": [
359
- "BroadwayPodcastNetwork/iOS"
431
+ "BroadwayPodcastNetwork/iOS"
360
432
  ],
361
433
  "app": "Broadway Podcast Network",
362
434
  "description": "The Broadway Podcast Network iOS App",
363
435
  "device": "phone",
364
436
  "examples": [
365
- "BroadwayPodcastNetwork/iOS"
437
+ "BroadwayPodcastNetwork/iOS"
366
438
  ],
367
439
  "os": "ios"
368
440
  },
@@ -373,7 +445,9 @@
373
445
  "app": "CastBox",
374
446
  "device": "phone",
375
447
  "examples": [
376
- "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"
377
451
  ],
378
452
  "os": "android"
379
453
  },
@@ -390,7 +464,7 @@
390
464
  },
391
465
  {
392
466
  "user_agents": [
393
- "^Cast(?:b|B)ox"
467
+ "^Cast(?:b|B)ox(?!.*(Android|iOS))"
394
468
  ],
395
469
  "app": "CastBox",
396
470
  "developer_notes": "There are CastBox compatible User Agents that come without Android/iOS platform marker",
@@ -409,6 +483,16 @@
409
483
  "info_url": "https://castget.johndal.com/",
410
484
  "device": "pc"
411
485
  },
486
+ {
487
+ "user_agents": [
488
+ "Castopod/1.0"
489
+ ],
490
+ "app": "Castopod",
491
+ "examples": [
492
+ "Castopod/1.0"
493
+ ],
494
+ "bot": true
495
+ },
412
496
  {
413
497
  "user_agents": [
414
498
  "Castro "
@@ -416,7 +500,8 @@
416
500
  "app": "Castro",
417
501
  "device": "phone",
418
502
  "examples": [
419
- "Castro 2019.13/1167"
503
+ "Castro 2019.13/1167",
504
+ "Castro 2020.14/1287"
420
505
  ],
421
506
  "os": "ios"
422
507
  },
@@ -462,7 +547,6 @@
462
547
  "Deezer/.*Android;"
463
548
  ],
464
549
  "app": "Deezer",
465
- "device": "phone",
466
550
  "os": "android",
467
551
  "examples": [
468
552
  "Deezer/6.2.2.80 (Android; 9; Mobile; fr) samsung SM-G950F",
@@ -483,13 +567,25 @@
483
567
  },
484
568
  {
485
569
  "user_agents": [
486
- "^Deezer"
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"
578
+ },
579
+ {
580
+ "user_agents": [
581
+ "^Deezer.*Electron; osx"
487
582
  ],
488
583
  "app": "Deezer",
489
584
  "examples": [
490
- "Deezer/4.20.0 (Electron; windows/10.0.18362; Desktop; fr)",
491
585
  "Deezer/4.20.0 (Electron; osx/10.14.6; Desktop; fr)"
492
- ]
586
+ ],
587
+ "device": "pc",
588
+ "os": "macos"
493
589
  },
494
590
  {
495
591
  "user_agents": [
@@ -506,6 +602,10 @@
506
602
  "user_agents": [
507
603
  "DotBot/1"
508
604
  ],
605
+ "app": "DotBot",
606
+ "examples": [
607
+ "Mozilla/5.0 (compatible; DotBot/1.1; http://www.opensiteexplorer.org/dotbot, help@moz.com)"
608
+ ],
509
609
  "bot": true
510
610
  },
511
611
  {
@@ -522,7 +622,7 @@
522
622
  },
523
623
  {
524
624
  "user_agents": [
525
- "Downcast/"
625
+ "Downcast/.*iPhone"
526
626
  ],
527
627
  "app": "Downcast",
528
628
  "device": "phone",
@@ -532,6 +632,28 @@
532
632
  "os": "ios"
533
633
  },
534
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
+ {
535
657
  "user_agents": [
536
658
  "Xbox.+Edge/"
537
659
  ],
@@ -568,9 +690,25 @@
568
690
  },
569
691
  {
570
692
  "user_agents": [
571
- "FacebookBot"
693
+ "FacebookBot",
694
+ "facebookexternalhit/"
572
695
  ],
573
- "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"
574
712
  },
575
713
  {
576
714
  "user_agents": [
@@ -626,8 +764,7 @@
626
764
  "user_agents": [
627
765
  "^Lavf/"
628
766
  ],
629
- "app": "ffmpeg",
630
- "developer_notes": "This is a library used within TuneIn, VLC, ffmpeg and other programs. This is the default useragent for the ffmpeg library."
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."
631
768
  },
632
769
  {
633
770
  "user_agents": [
@@ -659,25 +796,37 @@
659
796
  "user_agents": [
660
797
  "^fyyd-poll"
661
798
  ],
799
+ "app": "Fyyd",
662
800
  "bot": true
663
801
  },
664
802
  {
665
803
  "user_agents": [
666
804
  "^Go-http-client"
667
805
  ],
668
- "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
+ ]
669
810
  },
670
811
  {
671
812
  "user_agents": [
672
- "^Googlebot"
813
+ "Googlebot/",
814
+ "Googlebot-Video/"
673
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",
674
822
  "bot": true
675
823
  },
676
824
  {
677
825
  "user_agents": [
678
826
  "Google-Podcast"
679
827
  ],
680
- "bot": true
828
+ "bot": true,
829
+ "app": "Google Podcasts Manager"
681
830
  },
682
831
  {
683
832
  "user_agents": [
@@ -699,17 +848,17 @@
699
848
  },
700
849
  {
701
850
  "user_agents": [
702
- "(?:(?:iPhone|iPad|iPod touch);.+)?GSA/",
851
+ "(iPhone|iPad|iPod touch).*GSA/",
703
852
  "^Podcasts$",
704
853
  "^GooglePodcasts/"
705
854
  ],
706
855
  "app": "Google Podcasts",
707
856
  "description": "Google Podcasts on iOS",
708
857
  "examples": [
709
- "GooglePodcasts/2.0.2%20iPod_touch/13.4.1%20hw/iPod9_1",
710
- "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",
711
- "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"
712
- ],
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"
861
+ ],
713
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'.",
714
863
  "os": "ios"
715
864
  },
@@ -721,8 +870,9 @@
721
870
  "os": "android",
722
871
  "description": "Google Podcasts on Android (the app or player)",
723
872
  "examples": [
724
- "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"
725
- ],
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
+ ],
726
876
  "developer_notes": "*GSA/ is used in the Google app when searching and playing podcasts, and in the Google Podcasts app"
727
877
  },
728
878
  {
@@ -734,10 +884,11 @@
734
884
  },
735
885
  {
736
886
  "user_agents": [
737
- "Android.*Chrome/"
887
+ "Android.*Chrome/(?!.*(Googlebot|CrKey|GSA/))"
738
888
  ],
739
889
  "app": "Google Chrome",
740
- "os": "android"
890
+ "os": "android",
891
+ "developer_notes": "This won't match Googlebot, a Chromecast device, Google speaker or Google app"
741
892
  },
742
893
  {
743
894
  "user_agents": [
@@ -749,26 +900,28 @@
749
900
  },
750
901
  {
751
902
  "user_agents": [
752
- "Linux.*Chrome/"
903
+ "Linux(?!.*(Android)).*Chrome/(?!.*(CrKey|GSA/))"
753
904
  ],
754
905
  "app": "Google Chrome",
755
906
  "device": "pc",
756
- "os": "linux"
907
+ "os": "linux",
908
+ "developer_notes": "This won't match an Android device, Chromecast device, Google speaker or Google app"
757
909
  },
758
910
  {
759
911
  "user_agents": [
760
- "Mac OS X.*Chrome/"
912
+ "Mac OS X.*Chrome/(?!.*(Spreaker\/|OPR\/))"
761
913
  ],
762
914
  "app": "Google Chrome",
763
915
  "device": "pc",
764
916
  "examples": [
765
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"
766
918
  ],
767
- "os": "macos"
919
+ "os": "macos",
920
+ "developer_notes": "This won't match the Spreaker app"
768
921
  },
769
922
  {
770
923
  "user_agents": [
771
- "Windows.*Chrome/"
924
+ "Windows.*Chrome/(?!.*(OPR/))"
772
925
  ],
773
926
  "app": "Google Chrome",
774
927
  "device": "pc",
@@ -795,10 +948,12 @@
795
948
  },
796
949
  {
797
950
  "user_agents": [
798
- "^gPodder/",
951
+ "^gPodder/.*Windows",
799
952
  "^gpodder\\.net"
800
953
  ],
801
954
  "app": "gPodder",
955
+ "os": "windows",
956
+ "device": "pc",
802
957
  "examples": [
803
958
  "gPodder/3.10.8 (+http://gpodder.org/) Windows/10"
804
959
  ]
@@ -809,6 +964,17 @@
809
964
  ],
810
965
  "device": "radio"
811
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
+ },
812
978
  {
813
979
  "user_agents": [
814
980
  "^Guardian-iOSLive/"
@@ -843,9 +1009,16 @@
843
1009
  },
844
1010
  {
845
1011
  "user_agents": [
846
- "^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)"
847
1019
  ],
848
- "app": "Himalaya"
1020
+ "os": "ios",
1021
+ "description": "Himalaya is a podcast app"
849
1022
  },
850
1023
  {
851
1024
  "user_agents": [
@@ -893,6 +1066,13 @@
893
1066
  ],
894
1067
  "os": "windows"
895
1068
  },
1069
+ {
1070
+ "user_agents": [
1071
+ "iVoox"
1072
+ ],
1073
+ "app": "iVoox",
1074
+ "info_url": "https://www.ivoox.com/"
1075
+ },
896
1076
  {
897
1077
  "user_agents": [
898
1078
  "iTMS",
@@ -902,7 +1082,8 @@
902
1082
  },
903
1083
  {
904
1084
  "user_agents": [
905
- "^iTunes/.+Mac OS"
1085
+ "^iTunes/.+Mac OS",
1086
+ "^iTunes/.+OS X"
906
1087
  ],
907
1088
  "examples": [
908
1089
  "iTunes/10.6.3 (Macintosh; Intel Mac OS X 10.5.8) AppleWebKit/534.50.2"
@@ -914,10 +1095,11 @@
914
1095
  },
915
1096
  {
916
1097
  "user_agents": [
917
- "^iTunes/1[12]\\."
1098
+ "^iTunes/.+Windows"
918
1099
  ],
919
1100
  "examples": [
920
- "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"
921
1103
  ],
922
1104
  "app": "iTunes",
923
1105
  "device": "pc",
@@ -978,16 +1160,18 @@
978
1160
  },
979
1161
  {
980
1162
  "user_agents": [
981
- "^com.jio.media.jiobeats.jiosaavn",
982
1163
  "^com.jio.media.jiobeats",
983
1164
  "^com.saavn.android",
984
1165
  "^saavn"
985
1166
  ],
986
1167
  "app": "JioSaavn",
987
- "device": "phone",
1168
+ "os": "android",
988
1169
  "info_url": "https://www.jiosaavn.com/",
989
1170
  "description": "A music streaming and podcast app from India. Earn Your Happy!",
990
- "developer_notes": "The user-agent will start with one of the above strings followed by the app version and player version."
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
+ ]
991
1175
  },
992
1176
  {
993
1177
  "user_agents": [
@@ -1092,7 +1276,11 @@
1092
1276
  },
1093
1277
  {
1094
1278
  "user_agents": [
1095
- "MJ12bot"
1279
+ ".*MJ12bot"
1280
+ ],
1281
+ "app": "MJ12bot",
1282
+ "examples": [
1283
+ "Mozilla/5.0 (compatible; MJ12bot/v1.4.8; http://mj12bot.com/)"
1096
1284
  ],
1097
1285
  "bot": true
1098
1286
  },
@@ -1115,6 +1303,25 @@
1115
1303
  "info_url": "https://getmusicbee.com/",
1116
1304
  "os": "windows"
1117
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
+ },
1118
1325
  {
1119
1326
  "user_agents": [
1120
1327
  "^OkDownload/"
@@ -1153,12 +1360,34 @@
1153
1360
  },
1154
1361
  {
1155
1362
  "user_agents": [
1156
- "Opera/.*\\(Windows"
1363
+ "Opera/.*\\(Windows",
1364
+ "Windows.*OPR/"
1157
1365
  ],
1158
1366
  "app": "Opera",
1159
1367
  "device": "pc",
1160
1368
  "os": "windows"
1161
1369
  },
1370
+ {
1371
+ "user_agents": [
1372
+ "Macintosh.*OPR/"
1373
+ ],
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
+ },
1162
1391
  {
1163
1392
  "user_agents": [
1164
1393
  "Opera[/ ]"
@@ -1167,7 +1396,8 @@
1167
1396
  },
1168
1397
  {
1169
1398
  "user_agents": [
1170
- "^Overcast/"
1399
+ "^Overcast/2",
1400
+ "^Overcast/3"
1171
1401
  ],
1172
1402
  "app": "Overcast",
1173
1403
  "examples": [
@@ -1177,17 +1407,63 @@
1177
1407
  },
1178
1408
  {
1179
1409
  "user_agents": [
1180
- "^PandoraRSSCrawler"
1410
+ "^Overcast.*Apple Watch"
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"
1181
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.",
1182
1428
  "bot": true
1183
1429
  },
1430
+ {
1431
+ "user_agents": [
1432
+ "^PandoraRSSCrawler"
1433
+ ],
1434
+ "bot": true,
1435
+ "app": "Pandora RSS crawler"
1436
+ },
1184
1437
  {
1185
1438
  "user_agents": [
1186
1439
  "^Pandora.+Android"
1187
1440
  ],
1188
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",
1189
1452
  "device": "phone",
1190
- "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
1191
1467
  },
1192
1468
  {
1193
1469
  "user_agents": [
@@ -1207,7 +1483,6 @@
1207
1483
  "^PocketCasts/"
1208
1484
  ],
1209
1485
  "app": "Pocket Casts",
1210
- "device": "phone",
1211
1486
  "examples": [
1212
1487
  "Pocket Casts"
1213
1488
  ],
@@ -1223,7 +1498,8 @@
1223
1498
  "app": "PodcastAddict",
1224
1499
  "device": "phone",
1225
1500
  "examples": [
1226
- "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)"
1227
1503
  ],
1228
1504
  "os": "android"
1229
1505
  },
@@ -1233,13 +1509,22 @@
1233
1509
  "com.evolve.podcast/"
1234
1510
  ],
1235
1511
  "app": "The Podcast App",
1236
- "os": "ios",
1512
+ "os": "ios",
1237
1513
  "examples": [
1238
1514
  "podcast/2358 iOS/Version 13.5.1 (Build 017F80) The Podcast App/3.22.1",
1239
1515
  "com.evolve.podcast/3.22.1 (iPhone; ) (build 2358, iOS 13.5.1)"
1240
1516
  ],
1241
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."
1242
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"
1527
+ },
1243
1528
  {
1244
1529
  "user_agents": [
1245
1530
  "^PodcastRepublic.+Android"
@@ -1288,6 +1573,7 @@
1288
1573
  "os": "android",
1289
1574
  "examples": [
1290
1575
  "Podbean/Android App 7.6.4 (http://podbean.com),1927526fe23b5acf535b3e91b64cee95",
1576
+ "Podbean/Android App 8.1.5 (http://podbean.com),4f6852f59091d32475ef75a53325a4fe",
1291
1577
  "Podbean/Android generic 1.1.2 (http://podbean.com),9376c517335ded9a716022cc1f15c884"
1292
1578
  ],
1293
1579
  "info_url": "https://play.google.com/store/apps/details?id=com.podbean.app.podcast"
@@ -1305,18 +1591,25 @@
1305
1591
  },
1306
1592
  {
1307
1593
  "user_agents": [
1308
- "^Podhero/"
1594
+ "podfollowbot/"
1309
1595
  ],
1310
- "app": "Podhero",
1311
- "bot": true,
1312
- "info_url": "https://podhero.com",
1313
- "description": "Podhero feed crawler. Supports websub."
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
1314
1603
  },
1315
1604
  {
1316
1605
  "user_agents": [
1317
- "^Podhero/"
1606
+ "^Podhero",
1607
+ "^Swoot/"
1318
1608
  ],
1319
1609
  "app": "Podhero",
1610
+ "examples": [
1611
+ "Podhero%20Alpha/4373 CFNetwork/1197 Darwin/20.0.0"
1612
+ ],
1320
1613
  "info_url": "https://podhero.com",
1321
1614
  "description": "Podhero app on iOS and Android."
1322
1615
  },
@@ -1371,6 +1664,24 @@
1371
1664
  "description": "Podnews runs a number of bots to read and test RSS and audio files",
1372
1665
  "info_url": "http://podnews.net"
1373
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
+ },
1374
1685
  {
1375
1686
  "user_agents": [
1376
1687
  "Podyssey App"
@@ -1403,6 +1714,15 @@
1403
1714
  ],
1404
1715
  "bot": true
1405
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
+ },
1406
1726
  {
1407
1727
  "user_agents": [
1408
1728
  "^Radioplayer Android app"
@@ -1471,12 +1791,13 @@
1471
1791
  },
1472
1792
  {
1473
1793
  "user_agents": [
1474
- "^RSSRadio7?/"
1794
+ "^RSSRadio"
1475
1795
  ],
1476
1796
  "app": "RSS Radio",
1477
1797
  "device": "phone",
1478
1798
  "examples": [
1479
- "RSSRadio7/9252 CFNetwork/1107.1 Darwin/19.0.0"
1799
+ "RSSRadio7/9252 CFNetwork/1107.1 Darwin/19.0.0",
1800
+ "RSSRadio/9710"
1480
1801
  ],
1481
1802
  "info_url": "http://rssrad.io",
1482
1803
  "os": "ios"
@@ -1485,14 +1806,29 @@
1485
1806
  "user_agents": [
1486
1807
  "^Ruby"
1487
1808
  ],
1488
- "bot": true
1809
+ "developer_notes": "The generic Ruby user-agent."
1489
1810
  },
1490
1811
  {
1491
1812
  "user_agents": [
1492
- "^SEMrushBot"
1813
+ "SemrushBot\/"
1814
+ ],
1815
+ "app": "SEMrushBot",
1816
+ "examples": [
1817
+ "Mozilla/5.0 (compatible; SemrushBot/6~bl; http://www.semrush.com/bot.html)"
1493
1818
  ],
1494
1819
  "bot": true
1495
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
+ },
1496
1832
  {
1497
1833
  "user_agents": [
1498
1834
  "^Spotify/.+Linux"
@@ -1539,20 +1875,27 @@
1539
1875
  "user_agents": [
1540
1876
  "^Spotify/1.0$"
1541
1877
  ],
1878
+ "app": "Spotify cache service",
1542
1879
  "bot": true,
1880
+ "examples": [
1881
+ "Spotify/1.0"
1882
+ ],
1543
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."
1544
1884
  },
1545
1885
  {
1546
1886
  "user_agents": [
1547
- "Macintosh.*AppleWebKit.*Safari/"
1887
+ "Macintosh.*AppleWebKit(?!.*(Chrome\/)).*Safari/(?!.*(AdsBot/))"
1548
1888
  ],
1549
1889
  "app": "Safari",
1550
1890
  "device": "pc",
1551
- "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
+ ]
1552
1895
  },
1553
1896
  {
1554
1897
  "user_agents": [
1555
- "Windows.*AppleWebKit.*Safari/"
1898
+ "Windows.*AppleWebKit(?!.*(Chrome\/)).*Safari/"
1556
1899
  ],
1557
1900
  "app": "Safari",
1558
1901
  "device": "pc",
@@ -1560,7 +1903,7 @@
1560
1903
  },
1561
1904
  {
1562
1905
  "user_agents": [
1563
- "iPhone.*AppleWebKit.*Safari/"
1906
+ "iPhone.*AppleWebKit(?!.*(AdsBot|CriOS)).*Safari/"
1564
1907
  ],
1565
1908
  "app": "Safari",
1566
1909
  "device": "phone",
@@ -1574,6 +1917,12 @@
1574
1917
  "device": "tablet",
1575
1918
  "os": "ios"
1576
1919
  },
1920
+ {
1921
+ "user_agents": [
1922
+ "^Slack/"
1923
+ ],
1924
+ "app": "Slack"
1925
+ },
1577
1926
  {
1578
1927
  "user_agents": [
1579
1928
  "^Subcast"
@@ -1589,7 +1938,7 @@
1589
1938
  "os": "android",
1590
1939
  "info_url": "https://sonnet.fm",
1591
1940
  "svg": "sonnet.svg"
1592
- },
1941
+ },
1593
1942
  {
1594
1943
  "user_agents": [
1595
1944
  "Sonos"
@@ -1600,7 +1949,14 @@
1600
1949
  },
1601
1950
  {
1602
1951
  "user_agents": [
1603
- "^Spreaker"
1952
+ "^Spreaker for Android"
1953
+ ],
1954
+ "app": "Spreaker",
1955
+ "os": "Android"
1956
+ },
1957
+ {
1958
+ "user_agents": [
1959
+ "Spreaker/"
1604
1960
  ],
1605
1961
  "app": "Spreaker"
1606
1962
  },
@@ -1612,7 +1968,12 @@
1612
1968
  },
1613
1969
  {
1614
1970
  "user_agents": [
1615
- "^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"
1616
1977
  ],
1617
1978
  "app": "Stitcher",
1618
1979
  "os": "android"
@@ -1630,12 +1991,14 @@
1630
1991
  "^Stitcher/iOS"
1631
1992
  ],
1632
1993
  "app": "Stitcher",
1633
- "os": "ios"
1994
+ "os": "ios",
1995
+ "device": "phone"
1634
1996
  },
1635
1997
  {
1636
1998
  "user_agents": [
1637
- "StitcherBot"
1999
+ "^StitcherBot"
1638
2000
  ],
2001
+ "app": "Stitcher",
1639
2002
  "bot": true
1640
2003
  },
1641
2004
  {
@@ -1658,18 +2021,20 @@
1658
2021
  },
1659
2022
  {
1660
2023
  "user_agents": [
1661
- "^Swoot/"
2024
+ "TrendsmapResolver\/"
1662
2025
  ],
1663
- "app": "Swoot",
1664
- "description": "Renamed to Podhero in June 2020"
2026
+ "app": "Trendsmap Resolver",
2027
+ "bot": true
1665
2028
  },
1666
2029
  {
1667
2030
  "user_agents": [
1668
2031
  "^Trackable/"
1669
2032
  ],
2033
+ "app": "Chartable",
2034
+ "info_url": "https://chartable.com/",
1670
2035
  "bot": true
1671
2036
  },
1672
- {
2037
+ {
1673
2038
  "user_agents": [
1674
2039
  "^TuneIn Radio/.*;Android"
1675
2040
  ],
@@ -1718,7 +2083,7 @@
1718
2083
  },
1719
2084
  {
1720
2085
  "user_agents": [
1721
- "^TuneIn"
2086
+ "^TuneIn(?!.*(CFNetwork|Android))"
1722
2087
  ],
1723
2088
  "examples": [
1724
2089
  "TuneIn Radio"
@@ -1762,6 +2127,7 @@
1762
2127
  "user_agents": [
1763
2128
  "Wget"
1764
2129
  ],
2130
+ "app": "Wget",
1765
2131
  "bot": true
1766
2132
  },
1767
2133
  {
@@ -1795,8 +2161,9 @@
1795
2161
  },
1796
2162
  {
1797
2163
  "user_agents": [
1798
- "YandexBot"
2164
+ "YandexBot\/"
1799
2165
  ],
2166
+ "app": "YandexBot",
1800
2167
  "bot": true
1801
2168
  },
1802
2169
  {
@@ -1848,9 +2215,16 @@
1848
2215
  },
1849
2216
  {
1850
2217
  "user_agents": [
1851
- "BingPreview/"
2218
+ "BingPreview/",
2219
+ "adidxbot/",
2220
+ "bingbot/"
1852
2221
  ],
1853
- "bot": true
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
+ ]
1854
2228
  },
1855
2229
  {
1856
2230
  "user_agents": [
@@ -1862,7 +2236,8 @@
1862
2236
  "user_agents": [
1863
2237
  "^Deezer Podcasters\/1\\.0"
1864
2238
  ],
1865
- "bot": true
2239
+ "bot": true,
2240
+ "app": "Deezer Podcasters"
1866
2241
  },
1867
2242
  {
1868
2243
  "user_agents": [
@@ -1873,12 +2248,23 @@
1873
2248
  "developer_notes": "Got is a HTTP library for NodeJs"
1874
2249
  },
1875
2250
  {
1876
- "user_agents": [
2251
+ "user_agents": [
1877
2252
  "INA dlweb"
1878
2253
  ],
1879
2254
  "bot": true,
2255
+ "app": "l'Institut national de l'audiovisuel",
2256
+ "info_url": "https://institut.ina.fr/collecte-du-depot-legal-web",
1880
2257
  "developer_notes": "Institut National de l'Audiovisuel is a repository of all French radio and television audiovisual archives."
1881
2258
  },
2259
+ {
2260
+ "user_agents": [
2261
+ "^Instagram\/"
2262
+ ],
2263
+ "app": "Instagram",
2264
+ "examples": [
2265
+ "Instagram/252729634 CFNetwork/1126 Darwin/19.5.0"
2266
+ ]
2267
+ },
1882
2268
  {
1883
2269
  "user_agents": [
1884
2270
  "^SoundOn/[\\d\\.]+\\s+\\(Linux;Android",
@@ -1914,46 +2300,118 @@
1914
2300
  "bot": true
1915
2301
  },
1916
2302
  {
1917
- "user_agents": [
1918
- "^Podverse/Android Mobile App/"
1919
- ],
1920
- "app": "Podverse Android Mobile App",
1921
- "device": "phone",
1922
- "os": "android",
1923
- "info_url": "https://play.google.com/store/apps/details?id=com.podverse&hl=en_US",
1924
- "description": "Open source podcast catcher for Android, with clip-sharing, playlists, device syncing and more.",
1925
- "developer_notes": "The standard device user agent is concatenated to the end of the Podverse/Android Mobile App/ user agent."
1926
- },
1927
- {
1928
- "user_agents": [
1929
- "^Podverse/iOS Mobile App/"
1930
- ],
1931
- "app": "Podverse iOS Mobile App",
1932
- "device": "phone",
1933
- "os": "ios",
1934
- "examples": [
1935
- "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"
1936
- ],
1937
- "description": "Open source podcast catcher for iOS, with clip-sharing, playlists, device syncing and more.",
1938
- "info_url": "https://apps.apple.com/us/app/podverse/id1390888454",
1939
- "developer_notes": "The standard device user agent is concatenated to the end of the Podverse/iOS Mobile App/ user agent."
1940
- },
1941
- {
1942
- "user_agents": [
1943
- "^Podverse/Feed Parser"
1944
- ],
1945
- "bot": true,
1946
- "app": "Podverse Server-Side Feed Parser",
1947
- "info_url": "https://podverse.fm",
1948
- "description": "The Podverse feed parser.",
1949
- "developer_notes": "This service parses publicly-accessible RSS feeds on a timer, then stores parsed data in the Podverse database."
1950
- },
1951
- {
1952
- "user_agents": [
1953
- "^Podcast/1."
1954
- ],
1955
- "app": "小宇宙",
1956
- "info_url": "https://www.coolapk.com/apk/app.podcast.cosmos",
1957
- "description": "Cosmos, a chinese podcast app"
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
+ ]
1958
2416
  }
1959
2417
  ]