device_detector 1.0.0 → 1.1.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (89) hide show
  1. checksums.yaml +5 -5
  2. data/CHANGELOG.md +58 -4
  3. data/README.md +57 -21
  4. data/lib/device_detector/bot.rb +2 -2
  5. data/lib/device_detector/browser.rb +691 -0
  6. data/lib/device_detector/client.rb +11 -2
  7. data/lib/device_detector/client_hint.rb +249 -0
  8. data/lib/device_detector/device.rb +1954 -23
  9. data/lib/device_detector/memory_cache.rb +26 -19
  10. data/lib/device_detector/metadata_extractor.rb +7 -8
  11. data/lib/device_detector/model_extractor.rb +3 -3
  12. data/lib/device_detector/name_extractor.rb +2 -2
  13. data/lib/device_detector/os.rb +289 -112
  14. data/lib/device_detector/parser.rb +49 -13
  15. data/lib/device_detector/vendor_fragment.rb +25 -0
  16. data/lib/device_detector/version.rb +3 -1
  17. data/lib/device_detector/version_extractor.rb +29 -2
  18. data/lib/device_detector.rb +192 -44
  19. data/regexes/bots.yml +3399 -91
  20. data/regexes/client/browser_engine.yml +28 -4
  21. data/regexes/client/browsers.yml +2697 -408
  22. data/regexes/client/feed_readers.yml +60 -22
  23. data/regexes/client/hints/apps.yml +150 -0
  24. data/regexes/client/hints/browsers.yml +292 -0
  25. data/regexes/client/libraries.yml +598 -4
  26. data/regexes/client/mediaplayers.yml +110 -5
  27. data/regexes/client/mobile_apps.yml +2451 -14
  28. data/regexes/client/pim.yml +128 -3
  29. data/regexes/device/cameras.yml +6 -6
  30. data/regexes/device/car_browsers.yml +39 -3
  31. data/regexes/device/consoles.yml +40 -6
  32. data/regexes/device/mobiles.yml +38844 -2907
  33. data/regexes/device/notebooks.yml +127 -0
  34. data/regexes/device/portable_media_player.yml +75 -12
  35. data/regexes/device/shell_tv.yml +145 -0
  36. data/regexes/device/televisions.yml +981 -40
  37. data/regexes/oss.yml +1560 -311
  38. data/regexes/vendorfragments.yml +6 -2
  39. metadata +31 -105
  40. data/.gitignore +0 -14
  41. data/.travis.yml +0 -18
  42. data/Gemfile +0 -8
  43. data/Rakefile +0 -79
  44. data/device_detector.gemspec +0 -26
  45. data/spec/device_detector/bot_fixtures_spec.rb +0 -30
  46. data/spec/device_detector/client_fixtures_spec.rb +0 -31
  47. data/spec/device_detector/concrete_user_agent_spec.rb +0 -136
  48. data/spec/device_detector/detector_fixtures_spec.rb +0 -60
  49. data/spec/device_detector/device_fixtures_spec.rb +0 -36
  50. data/spec/device_detector/device_spec.rb +0 -151
  51. data/spec/device_detector/memory_cache_spec.rb +0 -116
  52. data/spec/device_detector/model_extractor_spec.rb +0 -63
  53. data/spec/device_detector/os_fixtures_spec.rb +0 -26
  54. data/spec/device_detector/version_extractor_spec.rb +0 -80
  55. data/spec/device_detector_spec.rb +0 -198
  56. data/spec/fixtures/client/browser.yml +0 -1313
  57. data/spec/fixtures/client/feed_reader.yml +0 -187
  58. data/spec/fixtures/client/library.yml +0 -84
  59. data/spec/fixtures/client/mediaplayer.yml +0 -168
  60. data/spec/fixtures/client/mobile_app.yml +0 -30
  61. data/spec/fixtures/client/pim.yml +0 -96
  62. data/spec/fixtures/detector/bots.yml +0 -2418
  63. data/spec/fixtures/detector/camera.yml +0 -115
  64. data/spec/fixtures/detector/car_browser.yml +0 -20
  65. data/spec/fixtures/detector/console.yml +0 -267
  66. data/spec/fixtures/detector/desktop.yml +0 -4828
  67. data/spec/fixtures/detector/feature_phone.yml +0 -782
  68. data/spec/fixtures/detector/feed_reader.yml +0 -486
  69. data/spec/fixtures/detector/mediaplayer.yml +0 -179
  70. data/spec/fixtures/detector/mobile_apps.yml +0 -149
  71. data/spec/fixtures/detector/phablet.yml +0 -2140
  72. data/spec/fixtures/detector/portable_media_player.yml +0 -153
  73. data/spec/fixtures/detector/smart_display.yml +0 -58
  74. data/spec/fixtures/detector/smartphone-1.yml +0 -9469
  75. data/spec/fixtures/detector/smartphone-2.yml +0 -9414
  76. data/spec/fixtures/detector/smartphone-3.yml +0 -9396
  77. data/spec/fixtures/detector/smartphone-4.yml +0 -5742
  78. data/spec/fixtures/detector/smartphone.yml +0 -9411
  79. data/spec/fixtures/detector/tablet-1.yml +0 -9495
  80. data/spec/fixtures/detector/tablet-2.yml +0 -248
  81. data/spec/fixtures/detector/tablet.yml +0 -9484
  82. data/spec/fixtures/detector/tv.yml +0 -2582
  83. data/spec/fixtures/detector/unknown.yml +0 -3196
  84. data/spec/fixtures/device/camera.yml +0 -18
  85. data/spec/fixtures/device/car_browser.yml +0 -6
  86. data/spec/fixtures/device/console.yml +0 -78
  87. data/spec/fixtures/parser/oss.yml +0 -800
  88. data/spec/fixtures/parser/vendorfragments.yml +0 -162
  89. data/spec/spec_helper.rb +0 -9
@@ -1,39 +1,171 @@
1
1
  ###############
2
2
  # Device Detector - The Universal Device Detection library for parsing User Agents
3
3
  #
4
- # @link http://piwik.org
4
+ # @link https://matomo.org
5
5
  # @license http://www.gnu.org/licenses/lgpl.html LGPL v3 or later
6
6
  ###############
7
7
 
8
+ # Report Runner (https://reportrunner.com/)
9
+ - regex: 'Report Runner'
10
+ name: 'Report Runner'
11
+ version: ''
12
+
13
+ # Ameba (https://ameblo.jp/ | https://play.google.com/store/apps/details?id=jp.ameba)
14
+ - regex: 'jpameblo;(\d+\.[\.\d]+)'
15
+ name: 'Ameba'
16
+ version: '$1'
17
+
18
+ # CSDN (https://apps.apple.com/us/app/csdn-%E6%8A%80%E6%9C%AF%E5%BC%80%E5%8F%91%E8%80%85%E7%A4%BE%E5%8C%BA/id1437086352)
19
+ - regex: 'CSDNApp/(\d+\.[\.\d]+)'
20
+ name: 'CSDN'
21
+ version: '$1'
22
+
23
+ # Moya (https://play.google.com/store/apps/details?id=nu.bi.moya | https://apps.apple.com/za/app/moya-app-datafree/id1623208355)
24
+ - regex: 'binu(?:/(\d+[\.\d]+))?'
25
+ name: 'Moya'
26
+ version: ''
27
+
28
+ # KPN Veilig (https://play.google.com/store/apps/details?id=com.fsecure.ms.kpn.veilig | https://apps.apple.com/nl/app/kpn-veilig-browser/id983576415)
29
+ - regex: 'KPN_Veilig[ /](\d+\.[\.\d]+)'
30
+ name: 'KPN Veilig'
31
+ version: '$1'
32
+
33
+ # Naver (https://apps.apple.com/app/id393499958)
34
+ - regex: 'NAVER/(\d+[\.\d]+) CFNetwork'
35
+ name: 'Naver'
36
+ version: '$1'
37
+
38
+ # Naver (https://play.google.com/store/apps/details?id=com.nhn.android.search)
39
+ - regex: 'NAVER\(inapp; search; .+; (\d+[\.\d]+);.+\)'
40
+ name: 'Naver'
41
+ version: '$1'
42
+ - regex: 'NAVER\(inapp; search; .+; (\d+[\.\d]+)\)'
43
+ name: 'Naver'
44
+ version: '$1'
45
+
46
+ # NAVER Dictionary (https://apps.apple.com/us/app/naver-dictionary/id673085116)
47
+ - regex: 'NAVER\(inapp; naverdicapp; .+; (\d+[\.\d]+)\)'
48
+ name: 'NAVER Dictionary'
49
+ version: '$1'
50
+
51
+ # Soldier
52
+ - regex: 'Chrome/Soldier_([\d\.]+)'
53
+ name: 'Soldier'
54
+ version: '$1'
55
+
8
56
  # AndroidDownloadManager
9
57
  - regex: 'AndroidDownloadManager(?:[ /]([\d\.]+))?'
10
58
  name: 'AndroidDownloadManager'
11
59
  version: '$1'
12
60
 
61
+ # Apple News
62
+ - regex: '(?:Apple)?News(?:[ /][\d\.]+)? Version(?:[ /]([\d\.]+))?'
63
+ name: 'Apple News'
64
+ version: '$1'
65
+
66
+ # Apple TV
67
+ - regex: 'appletv\.client'
68
+ name: 'Apple TV'
69
+ version: ''
70
+
71
+ # Facebook Audience Network
72
+ - regex: 'AudienceNetworkForAndroid.+(?:FBAV)(?:[ /]([\d\.]+))?'
73
+ name: 'Facebook Audience Network'
74
+ version: '$1'
75
+
76
+ # Facebook Messenger Lite
77
+ - regex: '(?:mLite|MessengerLite(?:ForiOS)?).*(?:FBAV)(?:[ /]([\d\.]+))?'
78
+ name: 'Facebook Messenger Lite'
79
+ version: '$1'
80
+
81
+ # Facebook Messenger (https://play.google.com/store/apps/details?id=com.facebook.orca)
82
+ - regex: '(?:MessengerForiOS|MESSENGER|FB_IAB/Orca-Android).*(?:FBAV)(?:[ /]([\d\.]+))?'
83
+ name: 'Facebook Messenger'
84
+ version: '$1'
85
+
86
+ # Facebook Groups
87
+ - regex: '(?:GroupsForiOS).*(?:FBAV)(?:[ /]([\d\.]+))?'
88
+ name: 'Facebook Groups'
89
+ version: '$1'
90
+
91
+ # Facebook Lite (https://play.google.com/store/apps/details?id=com.facebook.lite)
92
+ - regex: 'FBAN/EMA.+FBAV(?:[ /]([\d\.]+))?'
93
+ name: 'Facebook Lite'
94
+ version: '$1'
95
+
96
+ # Meta Business Suite (https://apps.apple.com/us/app/facebook-business-suite/id514643583)
97
+ - regex: 'FBAN/FBPageAdmin.+FBAV(?:[ /]([\d\.]+))?'
98
+ name: 'Meta Business Suite'
99
+ version: '$1'
100
+
13
101
  # Facebook
14
- - regex: '(?:FBAV|com.facebook.katana)(?:[ /]([\d\.]+))?'
102
+ - regex: '(?:FBAV|com\.facebook\.katana|facebook-mobile/1\.0|facebook-mobile/|Facebook/)(?:[ /]([\d\.]+))?'
103
+ name: 'Facebook'
104
+ version: '$1'
105
+ - regex: '(?:FBAN|FBSV|FBID|FBBV)/'
15
106
  name: 'Facebook'
107
+ version: ''
108
+
109
+ # Instagram
110
+ - regex: 'Instagram[ /]([\d\.]+)?'
111
+ name: 'Instagram'
112
+ version: '$1'
113
+
114
+ # Threads
115
+ - regex: 'Barcelona[ /]([\d\.]+)?'
116
+ name: 'Threads'
16
117
  version: '$1'
17
118
 
18
119
  # FeedR
19
- - regex: 'FeedR(?:/([\d\.]+))?'
120
+ - regex: 'FeedR(?!eader)(?:/([\d\.]+))?'
20
121
  name: 'FeedR'
21
122
  version: '$1'
22
123
 
124
+ # Google Go
125
+ - regex: 'com\.google\.android\.apps\.searchlite'
126
+ name: 'Google Go'
127
+ version: ''
128
+
129
+ # Google Photos
130
+ - regex: 'com\.google\.android\.apps\.photos'
131
+ name: 'Google Photos'
132
+ version: ''
133
+
23
134
  # Google Play Kiosk
24
- - regex: 'com.google.android.apps.magazines'
135
+ - regex: 'com\.google\.android\.apps\.magazines'
25
136
  name: 'Google Play Newsstand'
26
137
  version: ''
27
138
 
28
139
  # Google Plus
29
- - regex: 'com.google.GooglePlus'
140
+ - regex: 'com\.google\.GooglePlus'
30
141
  name: 'Google Plus'
31
142
  version: ''
32
143
 
144
+ # Google Drive (https://apps.apple.com/us/app/google-drive/id507874739)
145
+ - regex: 'Google\.DriveExtension(?:/([\d\.]+))?'
146
+ name: 'Google Drive'
147
+ version: '$1'
148
+
149
+ # Google Assistant (https://assistant.google.com/)
150
+ - regex: 'OPA/([\d\.]+)'
151
+ name: 'Google Assistant'
152
+ version: '$1'
153
+
33
154
  # WeChat
34
- - regex: 'MicroMessenger/([^ ]+)'
155
+ - regex: 'MicroMessenger/([\d\.]+)'
156
+ name: 'WeChat'
157
+ version: '$1'
158
+ - regex: 'WeChat/([\d\.]+)'
35
159
  name: 'WeChat'
36
160
  version: '$1'
161
+ - regex: 'WeChatShareExtensionNew/([\d\.]+)'
162
+ name: 'WeChat Share Extension'
163
+ version: '$1'
164
+
165
+ # DingTalk
166
+ - regex: 'DingTalk/([0-9\.]+)'
167
+ name: 'DingTalk'
168
+ version: '$1'
37
169
 
38
170
  # Sina Weibo
39
171
  - regex: '.*__weibo__([0-9\.]+)__'
@@ -41,26 +173,2331 @@
41
173
  version: '$1'
42
174
 
43
175
  # Pinterest
44
- - regex: 'Pinterest(?:/([\d\.]+))?'
176
+ - regex: 'Pinterest(?: for (?:Android(?: Tablet)?|iOS))?(?:/([\d\.]+))?'
45
177
  name: 'Pinterest'
46
178
  version: '$1'
47
179
 
180
+ # Podcatcher Deluxe
181
+ - regex: 'Podcatcher Deluxe'
182
+ name: 'Podcatcher Deluxe'
183
+ version: ''
184
+
48
185
  # YouTube
49
- - regex: 'com.google.android.youtube(?:/([\d\.]+))?'
186
+ - regex: 'com\.google\.android\.youtube(?:/([\d\.]+))?'
50
187
  name: 'YouTube'
51
188
  version: '$1'
52
189
 
53
- # AFNetworking generic
54
- - regex: '([^/]+)/(\d+(?:\.\d+)+) \((?:iPhone|iPad); iOS [0-9\.]+; Scale/[0-9\.]+\)'
55
- name: '$1'
56
- version: '$2'
190
+ # Rutube
191
+ - regex: 'Rutube(?:TV)?BlackAndroid'
192
+ name: 'Rutube'
193
+ version: '$1'
194
+
195
+ # Netflix (https://play.google.com/store/apps/details?id=com.netflix.mediaclient)
196
+ - regex: 'com\.netflix\.mediaclient(?:/(\d+\.[\d\.]+))?'
197
+ name: 'Netflix'
198
+ version: '$1'
199
+
200
+ # Downcast (www.downcastapp.com | https://apps.apple.com/us/app/downcast/id393858566)
201
+ - regex: 'Downcast/(\d+\.[\d\.]+)?(?:.+(?:!Mac)|$)'
202
+ name: 'Downcast'
203
+ version: '$1'
204
+
205
+ # Flipp (https://apps.apple.com/us/app/flipp-weekly-shopping/id725097967)
206
+ - regex: 'Flipp-iOS/.+CFNetwork'
207
+ name: 'Flipp'
208
+ version: ''
209
+ - regex: 'Flipp-iOS/(\d+[\.\d]+)'
210
+ name: 'Flipp'
211
+ version: '$1'
212
+
213
+ # Signal uses WhatsApp user agent
214
+ - regex: 'WhatsApp(?:/2)?$'
215
+ name: 'Signal'
216
+ version: ''
217
+
218
+ # WhatsApp Business
219
+ - regex: 'WhatsApp/([\d\.]+).+CloudAPI'
220
+ name: 'WhatsApp Business'
221
+ version: '$1'
57
222
 
58
223
  # WhatsApp
59
- - regex: 'WhatsApp(?:[ /]([\d\.]+))?'
224
+ - regex: 'WhatsApp(?:Electron|\-app|\-linux-app)?(?:[ /]([\d\.]+))?'
60
225
  name: 'WhatsApp'
61
226
  version: '$1'
62
227
 
228
+ # WhatsApp+2
229
+ - regex: 'YoWhatsApp2Plus(?:/(\d+[\.\d]+))?'
230
+ name: 'WhatsApp+2'
231
+ version: '$1'
232
+
233
+ # FM WhatsApp
234
+ - regex: 'YoFMWhatsApp(?:/(\d+[\.\d]+))?'
235
+ name: 'FM WhatsApp'
236
+ version: '$1'
237
+
238
+ # GBWhatsApp
239
+ - regex: '(?:Yo)?GBWhatsApp(?:/(\d+[\.\d]+))?'
240
+ name: 'GBWhatsApp'
241
+ version: '$1'
242
+
243
+ # Yo WhatsApp
244
+ - regex: 'YoYoWhatsApp(?:/(\d+[\.\d]+))?'
245
+ name: 'Yo WhatsApp'
246
+ version: '$1'
247
+
248
+ # AN WhatsApp (https://anwhats.com/)
249
+ - regex: 'ANWhatsApp(?:/(\d+[\.\d]+))?'
250
+ name: 'AN WhatsApp'
251
+ version: '$1'
252
+
253
+ # https://music.youtube.com
254
+ - regex: '(?:^com\.google\.android\.apps\.youtube\.music/|^YouTubeMusic(?:Dev)?/)([\d\.]+)?'
255
+ name: 'Youtube Music'
256
+ version: '$1'
257
+
63
258
  # Line
64
259
  - regex: 'Line(?:[ /]([\d\.]+))'
65
260
  name: 'Line'
66
- version: '$1'
261
+ version: '$1'
262
+
263
+ # Instacast
264
+ - regex: 'Instacast(?:HD)?/([\d\.abc]+) CFNetwork/([\d\.]+) Darwin/([\d\.]+)'
265
+ name: 'Instacast'
266
+ version: '$1'
267
+ - regex: 'Pocket Casts(?:, (?:Android|iOS) v([\d\.]+))?'
268
+ name: 'Pocket Casts'
269
+ version: '$1'
270
+ - regex: 'Podcat/([\d\.]+)'
271
+ name: 'Podcat'
272
+ version: '$1'
273
+ - regex: 'BeyondPod'
274
+ name: 'BeyondPod'
275
+ version:
276
+
277
+ - regex: '(?:^Overcast/([\d\.]+)|^Overcast.*Apple Watch)'
278
+ name: 'Overcast'
279
+ version: '$1'
280
+ - regex: '(?:CastBox|fm\.castbox\.audiobook\.radio\.podcast)/?([\d\.]+)?'
281
+ name: 'CastBox'
282
+ version: '$1'
283
+ - regex: 'Podkicker( (?:Pro|Classic))?/([\d\.]+)'
284
+ name: 'Podkicker$1'
285
+ version: '$2'
286
+ - regex: 'PodcastRepublic/([\d\.]+)'
287
+ name: 'Podcast Republic'
288
+ version: '$1'
289
+ - regex: 'Castro/(\d+)'
290
+ name: 'Castro'
291
+ version: '$1'
292
+ - regex: 'Castro 2 ([\d\.]+)/[\d]+ Like iTunes'
293
+ name: 'Castro 2'
294
+ version: '$1'
295
+ - regex: 'Castro 2'
296
+ name: 'Castro 2'
297
+ version: ''
298
+ - regex: 'DoggCatcher'
299
+ name: 'DoggCatcher'
300
+ version:
301
+ - regex: '(?:PodcastAddict/v([\d]+)|^Podcast Addict)'
302
+ name: 'Podcast & Radio Addict'
303
+ version: '$1'
304
+
305
+ - regex: 'Podcat(?:%202)?/([\d]+) CFNetwork'
306
+ name: 'Podcat'
307
+ version: '$1'
308
+ - regex: 'iCatcher[^\d]+([\d\.]+)'
309
+ name: 'iCatcher'
310
+ version: '$1'
311
+ - regex: 'YelpApp/([\d\.]+)'
312
+ name: 'Yelp Mobile'
313
+ version: '$1'
314
+
315
+ # Yahoo! Japan (https://play.google.com/store/apps/details?id=jp.co.yahoo.android.yjtop | https://apps.apple.com/jp/app/yahoo-japan/id299147843)
316
+ - regex: 'jp\.co\.yahoo\.(?:android\.yjtop|ipn\.appli)/([\d\.]+)'
317
+ name: 'Yahoo! Japan'
318
+ version: '$1'
319
+
320
+ - regex: 'RSSRadio/([\d]+)?'
321
+ name: 'RSSRadio'
322
+ version: '$1'
323
+ - regex: 'SogouSearch Android[\d\.]+ version([\d\.]+)?'
324
+ name: 'SogouSearch App'
325
+ version: '$1'
326
+ - regex: 'NewsArticle/([\d\.]+)?'
327
+ name: 'NewsArticle App'
328
+ version: '$1'
329
+ - regex: 'tieba/([\d\.]+)?'
330
+ name: 'tieba'
331
+ version: '$1'
332
+ - regex: 'com\.douban\.group/([\d\.]+)?'
333
+ name: 'douban App'
334
+ version: '$1'
335
+ - regex: '(?:com\.google\.GoogleMobile|GSA|GoogleApp)/([\d.]+)?'
336
+ name: 'Google Search App'
337
+ version: '$1'
338
+ - regex: 'Google/(\d+[\.\d]+)? CFNetwork'
339
+ name: 'Google Search App'
340
+ version: '$1'
341
+
342
+ # Google Lens (https://play.google.com/store/apps/details?id=com.google.ar.lens | https://apps.apple.com/us/app/google/id284815942)
343
+ - regex: '(?:Google|SearchWith)Lens/(\d+[\.\d]+)?'
344
+ name: 'Google Lens'
345
+ version: '$1'
346
+
347
+ - regex: 'Flipboard/([\d\.]+)?'
348
+ name: 'Flipboard App'
349
+ version: '$1'
350
+ - regex: 'baiduboxapp/([\d\.]+)?'
351
+ name: 'Baidu Box App'
352
+ version: '$1'
353
+ - regex: 'baiduinput/([\d.]+)?'
354
+ name: 'Baidu Input'
355
+ version: '$1'
356
+ - regex: 'PetalSearch/([\d\.]+)?'
357
+ name: 'Petal Search'
358
+ version: '$1'
359
+ - regex: 'Crosswalk(?!.*(?:Streamy|QwantMobile))/([\d\.]+)?'
360
+ name: 'CrosswalkApp'
361
+ version: '$1'
362
+ - regex: 'Twitter for iPhone[/]?([\d\.]+)?'
363
+ name: 'Twitter'
364
+ version: '$1'
365
+ - regex: 'Twitter/([\d\.]+)'
366
+ name: 'Twitter'
367
+ version: '$1'
368
+ - regex: 'TwitterAndroid[/]?([\d\.]+)?'
369
+ name: 'Twitter'
370
+ version: '$1'
371
+
372
+ # Pocket Casts (https://pocketcasts.com)
373
+ - regex: '^Pocket Casts'
374
+ name: 'Pocket Casts'
375
+ version: ''
376
+
377
+ # Podcast app from India (https://gaana.com)
378
+ - regex: '(?:^GaanaAndroid-|^Gaana-iOS|^Gaana/)([\d\.]+)?'
379
+ name: 'Gaana'
380
+ version: '$1'
381
+
382
+ - regex: 'TopBuzz/([\d\.]+)'
383
+ name: 'TopBuzz'
384
+ version: '$1'
385
+
386
+ # Snapchat
387
+ - regex: '(?:Safari/[\d\.]+)?Snapchat/?([\d\.]+)'
388
+ name: 'Snapchat'
389
+ version: '$1'
390
+ - regex: 'CronetSnapDevSheldon'
391
+ name: 'Snapchat'
392
+ version: ''
393
+
394
+ - regex: 'AhaRadio2/([\d\.]+)'
395
+ name: 'Aha Radio 2'
396
+ version: '$1'
397
+
398
+ # Unibox (https://apps.apple.com/app/id933879046)
399
+ - regex: 'Unibox/([\d\.]+)'
400
+ name: 'Unibox'
401
+ version: ''
402
+
403
+ # Strimio (https://www.strimio.com/)
404
+ - regex: 'strimio(?:-desktop)/(\d+\.(?:[\.\d]+))?'
405
+ name: 'Strimio'
406
+ version: '$1'
407
+
408
+ # UnityPlayer
409
+ - regex: 'UnityPlayer/([\d\.]+)'
410
+ name: 'UnityPlayer'
411
+ version: '$1'
412
+
413
+ # (https://play.google.com/store/apps/details?id=cl.uchile.ing.adi.ucursos)
414
+ - regex: 'UCURSOS/v([\d\.]+)'
415
+ name: 'U-Cursos'
416
+ version: '$1'
417
+
418
+ # HeyTabBrowser or HeyTabAccount
419
+ - regex: 'HeyTapBrowser/([\d\.]+)'
420
+ name: 'HeyTapBrowser'
421
+ version: '$1'
422
+
423
+ # Roblox App
424
+ - regex: 'RobloxApp/([\d\.]+)'
425
+ name: 'Roblox'
426
+ version: '$1'
427
+
428
+ - regex: 'Viber(?:/(\d+[\.\d]+))?'
429
+ name: 'Viber'
430
+ version: '$1'
431
+
432
+ - regex: 'Siri/1'
433
+ name: 'Siri'
434
+ version: '1.0'
435
+
436
+ - regex: 'LinkedIn(?:App)?(?:\]?/([\d\.]+))?'
437
+ name: 'LinkedIn'
438
+ version: '$1'
439
+
440
+ # https://apps.apple.com/ru/app/instapaper/id288545208
441
+ - regex: 'Instapaper/([\d\.]+)'
442
+ name: 'Instapaper'
443
+ version: '$1'
444
+
445
+ # https://apps.apple.com/us/app/keeper-password-manager/id287170072
446
+ - regex: 'Keeper/([\d\.]+)'
447
+ name: 'Keeper Password Manager'
448
+ version: '$1'
449
+
450
+ # https://apps.apple.com/us/app/skyeng-teachers/id1483049537
451
+ - regex: 'Skyeng Teachers/([\d\.]+)'
452
+ name: 'Skyeng Teachers'
453
+ version: '$1'
454
+
455
+ - regex: 'Kik/([\d\.]+) \(Android'
456
+ name: 'Kik'
457
+ version: '$1'
458
+
459
+ - regex: 'Procast/?([\d\.]+)?'
460
+ name: 'Procast'
461
+ version: '$1'
462
+
463
+ # DeviantArt (https://apps.apple.com/us/app/deviantart/id925219396)
464
+ - regex: 'DeviantArt/([\d\.]+)'
465
+ name: 'DeviantArt'
466
+ version: ''
467
+
468
+ # Discord (https://apps.apple.com/us/app/discord-talk-chat-hang-out/id985746746)
469
+ - regex: 'discord/([\d\.]+).+Electron'
470
+ name: 'Discord'
471
+ version: '$1'
472
+
473
+ - regex: 'discord(?:-Updater)?/([\d\.]+)'
474
+ name: 'Discord'
475
+ version: ''
476
+
477
+ # Covenant Eyes (https://apps.apple.com/us/app/covenant-eyes/id335318146)
478
+ - regex: 'Covenant%20Eyes/([\d\.]+)'
479
+ name: 'Covenant Eyes'
480
+ version: '$1'
481
+
482
+ # HP Smart (https://apps.apple.com/us/app/hp-smart/id469284907)
483
+ - regex: 'HP%20Smart/([\d\.]+)'
484
+ name: 'HP Smart'
485
+ version: ''
486
+
487
+ # Bitsboard (https://apps.apple.com/us/app/bitsboard-flashcards-games/id516842210)
488
+ - regex: 'Bitsboard/([\d\.]+)'
489
+ name: 'Bitsboard'
490
+ version: '$1'
491
+
492
+ # BetBull (https://apps.apple.com/us/app/betbull-sport-tips-casino/id1032680895)
493
+ - regex: 'Betbull/([\d\.]+)'
494
+ name: 'BetBull'
495
+ version: ''
496
+
497
+ # U-Cursos (https://apps.apple.com/us/app/u-cursos/id834515435)
498
+ - regex: 'U-Cursos/([\d\.]+)'
499
+ name: 'U-Cursos'
500
+ version: ''
501
+
502
+ # https://apps.apple.com/mt/app/1password-password-manager/id568903335
503
+ - regex: '1PasswordThumbs/([\d\.]+)'
504
+ name: '1Password'
505
+ version: '$1'
506
+
507
+ - regex: '(?:Microsoft Office )?(Access|Excel|OneDrive for Business|OneNote|PowerPoint|Project|Publisher|Visio|Word)(?: 20\d{2})?[ /]\(?(\d+\.[\d.]*)'
508
+ name: 'Microsoft Office $1'
509
+ version: '$2'
510
+ - regex: '^Mozilla/4\.0 \(compatible; ms-office; MSOffice[ /]([\d\.]+)'
511
+ name: 'Microsoft Office'
512
+ version: '$1'
513
+ - regex: 'Microsoft Office SyncProc ([\d\.]+)'
514
+ name: 'Microsoft Office'
515
+ version: '$1'
516
+ - regex: 'Microsoft Lync ([\d\.]+)'
517
+ name: 'Microsoft Lync'
518
+ version: '$1'
519
+ - regex: 'Microsoft\.Data\.Mashup'
520
+ name: 'Microsoft Power Query' # It can be Excel or Power BI
521
+ version: ''
522
+
523
+ # https://play.google.com/store/apps/details?id=cn.wps.moffice_eng
524
+ - regex: 'WpsM?office/([\d\.]+)'
525
+ name: 'WPS Office'
526
+ version: '$1'
527
+
528
+ # https://apps.apple.com/us/app/microsoft-onedrive/id477537958
529
+ - regex: 'OneDriveiOSApp/([\d\.]+)'
530
+ name: 'Microsoft OneDrive'
531
+ version: '$1'
532
+
533
+ - regex: 'Microsoft Office Existence Discovery'
534
+ name: 'Microsoft Office'
535
+ version: ''
536
+
537
+ - regex: '(?:Microsoft Office Mobile|officemobile)[ /]([\d\.]+)'
538
+ name: 'Microsoft Office Mobile'
539
+ version: '$1'
540
+
541
+ # Skype
542
+ - regex: 'Skype/([\d\.]+)'
543
+ name: 'Skype'
544
+ version: '$1'
545
+
546
+ - regex: 'OC/([\d\.]+) \(Skype for Business\)'
547
+ name: 'Skype for Business'
548
+ version: '$1'
549
+
550
+ # https://apps.apple.com/us/app/skype-for-business/id605841731
551
+ - regex: 'iPhoneLync/([\d\.]+)'
552
+ name: 'Skype for Business'
553
+ version: '$1'
554
+
555
+ # GroupMe (https://apps.apple.com/us/app/groupme/id392796698)
556
+ - regex: 'GroupMe/([\d\.]+)'
557
+ name: 'GroupMe'
558
+ version: '$1'
559
+
560
+ # TikTok (https://apps.apple.com/app/id835599320 | https://play.google.com/store/apps/details?id=com.zhiliaoapp.musically)
561
+ - regex: '(?:TikTok[/ ]|com\.zhiliaoapp\.musically|musical_ly_|AppName/musical_ly app_version/)(\d+\.(?:[\.\d]+))?'
562
+ name: 'TikTok'
563
+ version: '$1'
564
+
565
+ # https://apps.apple.com/app/id1026349850
566
+ - regex: 'Copied/(\d+[\.\d]+) CFNetwork'
567
+ name: 'Copied'
568
+ version: ''
569
+
570
+ # https://apps.apple.com/app/id448639966
571
+ - regex: 'Pic%20Collage/(\d+[\.\d]+) CFNetwork'
572
+ name: 'Pic Collage'
573
+ version: '$1'
574
+
575
+ # https://apps.apple.com/app/id506003812
576
+ - regex: 'Papers/(\d+[\.\d]+) CFNetwork'
577
+ name: 'Papers'
578
+ version: '$1'
579
+
580
+ # https://apps.apple.com/app/id331787573
581
+ - regex: 'RoboForm/(\d+[\.\d]+) CFNetwork'
582
+ name: 'RoboForm'
583
+ version: ''
584
+
585
+ # https://apps.apple.com/app/id618783545
586
+ - regex: 'Slack/(\d+[\.\d]+) CFNetwork'
587
+ name: 'Slack'
588
+ version: ''
589
+ - regex: 'com\.tinyspeck\.chatlyio/(\d+[\.\d]+)'
590
+ name: 'Slack'
591
+ version: '$1'
592
+
593
+ # https://apps.apple.com/us/app/id362057947
594
+ - regex: 'KAKAOTALK (\d+\.(?:[\.\d]+))?'
595
+ name: 'KakaoTalk'
596
+ version: '$1'
597
+
598
+ # https://apps.apple.com/us/app/shopee-t%E1%BA%BFt-sale-27-01/id959841449
599
+ - regex: 'ShopeeVN/([\d\.]+)'
600
+ name: 'Shopee'
601
+ version: '$1'
602
+
603
+ # https://apps.apple.com/us/app/sport1/id1185932089
604
+ - regex: 'SPORT1/([\d\.]+)'
605
+ name: 'SPORT1'
606
+ version: ''
607
+
608
+ # https://apps.apple.com/us/app/clovia-lingerie-shopping-app/id1243996857
609
+ - regex: 'Clovia/([\d\.]+)'
610
+ name: 'Clovia'
611
+ version: '$1'
612
+
613
+ # https://apps.apple.com/us/app/showme-interactive-whiteboard/id445066279
614
+ - regex: 'ShowMe/([\d\.]+)'
615
+ name: 'ShowMe'
616
+ version: '$1'
617
+
618
+ # https://apps.apple.com/us/app/wattpad-read-write-stories/id306310789
619
+ - regex: 'Wattpad/([\d\.]+)'
620
+ name: 'Wattpad'
621
+ version: '$1'
622
+
623
+ # https://apps.apple.com/us/app/the-wall-street-journal/id364387007
624
+ - regex: 'WSJ/([\d\.]+)'
625
+ name: 'The Wall Street Journal'
626
+ version: ''
627
+
628
+ # https://apps.apple.com/us/app/wh-question-cards-pro-who-what-when-where-why/id544870563
629
+ - regex: 'WH%20Questions/([\d\.]+)'
630
+ name: 'WH Questions'
631
+ version: '$1'
632
+
633
+ # https://apps.apple.com/us/app/whisper-share-express-meet/id506141837
634
+ - regex: 'whisper/([\d\.]+)'
635
+ name: 'Whisper'
636
+ version: ''
637
+
638
+ # https://apps.apple.com/us/app/opal-travel/id941006607
639
+ - regex: 'Opal/([\d\.]+)'
640
+ name: 'Opal Travel'
641
+ version: '$1'
642
+
643
+ # https://apps.apple.com/us/app/zalo/id579523206
644
+ - regex: 'Zalo/([\d\.]+)|Zalo (?:android|iOS)'
645
+ name: 'Zalo'
646
+ version: '$1'
647
+
648
+ # https://apps.apple.com/us/app/%D1%8F%D0%BD%D0%B4%D0%B5%D0%BA%D1%81/id1050704155
649
+ - regex: 'Yandex/([\d\.]+)'
650
+ name: 'Yandex'
651
+ version: ''
652
+
653
+ # Zen (Дзен) (https://play.google.com/store/apps/details?id=ru.zen.android)
654
+ - regex: 'ZenKit/([\d\.]+)'
655
+ name: 'Zen'
656
+ version: '$1'
657
+
658
+ - regex: 'Zoho%20Chat/([\d\.]+)'
659
+ name: 'Zoho Chat'
660
+ version: '$1'
661
+
662
+ # Thunder (https://xl11.xunlei.com/)
663
+ - regex: 'Thunder/(\d+[\.\d]+)'
664
+ name: 'Thunder'
665
+ version: '$1'
666
+
667
+ # CGN (https://www.cgn.it/)
668
+ - regex: 'CGNBrowser/(\d+[\.\d]+)'
669
+ name: 'CGN'
670
+ version: '$1'
671
+
672
+ # Podbean (http://podbean.com | https://play.google.com/store/apps/details?id=com.podbean.app.podcast)
673
+ - regex: '(?:Podbean/.+App |Podbean/Android generic |Podbean/iOS \([^)]+\) )(\d+[\.\d]+)'
674
+ name: 'Podbean'
675
+ version: '$1'
676
+
677
+ - regex: 'TuneIn Radio Pro(?:[^/]*)/(\d+[\.\d]+)'
678
+ name: 'TuneIn Radio Pro'
679
+ version: '$1'
680
+ - regex: 'TuneIn(?:(?: |%20)Radio(?:[^/]*))?/?(\d+[\.\d]+)?'
681
+ name: 'TuneIn Radio'
682
+ version: '$1'
683
+
684
+ # DevCasts (https://apps.apple.com/app/id1481596184)
685
+ - regex: 'devcasts/(\d+[\.\d]+)'
686
+ name: 'DevCasts'
687
+ version: '$1'
688
+
689
+ # Swoot
690
+ - regex: 'Swoot/(\d+[\.\d]+)'
691
+ name: 'Swoot'
692
+ version: '$1'
693
+
694
+ # RadioPublic (https://play.google.com/store/apps/details?id=com.radiopublic.android)
695
+ - regex: '(?:^RadioPublic[/ ](?:Android|iOS)[- ])(\d+\.[.\d]+)'
696
+ name: 'RadioPublic'
697
+ version: '$1'
698
+
699
+ # Podimo (https://play.google.com/store/apps/details?id=com.podimo)
700
+ - regex: 'Podimo/(\d+[\.\d]+)'
701
+ name: 'Podimo'
702
+ version: '$1'
703
+
704
+ # Evolve Podcast (https://apps.apple.com/us/app/id1199070742)
705
+ - regex: 'com\.evolve\.podcast/(\d+[\.\d]+)'
706
+ name: 'Evolve Podcast'
707
+ version: '$1'
708
+
709
+ - regex: ' Rocket\.Chat\+?/(\d+[\.\d]+)'
710
+ name: 'Rocket Chat'
711
+ version: '$1'
712
+
713
+ # Pandora
714
+ - regex: '^Pandora Audio.+Android'
715
+ name: 'Pandora'
716
+ version: ''
717
+
718
+ # Wirtschafts Woche Nachrichte https://apps.apple.com/de/app/wirtschaftswoche-nachrichten/id1339187646
719
+ - regex: '^WirtschaftsWoche-iOS-(\d+[\.\d]+)'
720
+ name: 'Wirtschafts Woche'
721
+ version: '$1'
722
+
723
+ - regex: '^TVirl/(\d+[\.\d]+)'
724
+ name: 'TVirl'
725
+ version: '$1'
726
+
727
+ # ChMate https://play.google.com/store/apps/details?id=jp.co.airfront.android.a2chMate
728
+ - regex: '2?chMate/(\d+[\.\d]+)'
729
+ name: 'ChMate'
730
+ version: '$1'
731
+
732
+ # 2tch https://apps.apple.com/jp/app/2tch/id305982914
733
+ - regex: '2tch/(\d+[\.\d]+)'
734
+ name: '2tch'
735
+ version: '$1'
736
+
737
+ # Ciisaa https://play.google.com/store/apps/details?id=com.gmail.aosoan.ciisaa
738
+ - regex: 'Ciisaa/(\d+[\.\d]+)'
739
+ name: 'Ciisaa'
740
+ version: '$1'
741
+
742
+ # BB2C https://itunes.apple.com/us/app/bb2c/id298820042?mt=8
743
+ - regex: 'BB2C (\d+[\.\d]+)'
744
+ name: 'BB2C'
745
+ version: '$1'
746
+
747
+ # twinkle https://itunes.apple.com/app/twinkle/id463142843
748
+ - regex: 'twinkle/(\d+[\.\d]+)'
749
+ name: 'twinkle'
750
+ version: '$1'
751
+
752
+ # JaneStyle https://apps.apple.com/app/id1157926535
753
+ - regex: 'JaneStyle_iOS/(\d+[\.\d]+)'
754
+ name: 'JaneStyle'
755
+ version: '$1'
756
+
757
+ # Binance https://play.google.com/store/apps/details?id=com.binance.dev
758
+ - regex: 'BNC/.+\(Android (\d+[\.\d]+)\)'
759
+ name: 'Binance'
760
+ version: '$1'
761
+
762
+ # Binance (https://www.binance.com/en/desktop-download)
763
+ - regex: 'Binance/(\d+[\.\d]+)'
764
+ name: 'Binance'
765
+ version: '$1'
766
+
767
+ # My World https://apps.apple.com/app/id598556821
768
+ - regex: 'ru\.mail\.my/(\d+[\.\d]+)'
769
+ name: 'My World'
770
+ version: '$1'
771
+
772
+ # Odnoklassniki https://play.google.com/store/apps/details?id=ru.ok.android https://apps.apple.com/app/id398465290
773
+ - regex: 'OK(?:Android|iOS)/([\d\.]+)'
774
+ name: 'Odnoklassniki'
775
+ version: '$1'
776
+
777
+ # YakYak https://github.com/yakyak/yakyak
778
+ - regex: 'yakyak/(\d+[\.\d]+)'
779
+ name: 'YakYak'
780
+ version: '$1'
781
+
782
+ # Microsoft Teams (https://www.microsoft.com/en/microsoft-teams/group-chat-software)
783
+ - regex: '(?:maglev|Teams)/(\d+[\.\d]+)'
784
+ name: 'Teams'
785
+ version: '$1'
786
+
787
+ - regex: 'TeamsMobile-(?:Android|iOS)'
788
+ name: 'Teams'
789
+ version: ''
790
+
791
+ - regex: 'SohuNews/(\d+\.[.\d]+)'
792
+ name: 'SohuNews'
793
+ version: '$1'
794
+
795
+ # Streamlabs OBS (https://streamlabs.com/)
796
+ - regex: 'StreamlabsOBS/(\d+[\.\d]+)'
797
+ name: 'Streamlabs OBS'
798
+ version: '$1'
799
+
800
+ # Blitz (https://blitz.gg/)
801
+ - regex: 'Blitz/([\d\.]+)'
802
+ name: 'Blitz'
803
+ version: '$1'
804
+
805
+ # OfferUp (https://play.google.com/store/apps/details?id=com.offerup)
806
+ - regex: 'OfferUp/([\d\.]+)'
807
+ name: 'OfferUp'
808
+ version: '$1'
809
+
810
+ # Vuhuv (https://play.google.com/store/apps/details?id=com.vuhuv)
811
+ - regex: 'Vuhuv/([\d\.]+)'
812
+ name: 'Vuhuv'
813
+ version: '$1'
814
+
815
+ - regex: '.+/(?:gfibertv|gftv200)-([\d]+)-'
816
+ name: 'Google Fiber TV'
817
+ version: '$1'
818
+
819
+ # QuickCast (https://play.google.com/store/apps/details?id=com.wukongtv.wkcast.intl)
820
+ - regex: 'QuickCast$'
821
+ name: 'QuickCast'
822
+ version: ''
823
+
824
+ # AliExpress (https://play.google.com/store/apps/details?id=com.alibaba.aliexpresshd)
825
+ - regex: 'Aliexpress(?:Android)?/([\d\.]+)'
826
+ name: 'AliExpress'
827
+ version: '$1'
828
+
829
+ # Lazada
830
+ - regex: '(?:lazada_android|AliApp\(LA)[/ _](\d+\.[\d.]+)'
831
+ name: 'Lazada'
832
+ version: '$1'
833
+
834
+ # Taobao
835
+ - regex: '(?:taobao_android|AliApp\(TB)[/ _](\d+\.[\d.]+)'
836
+ name: 'Taobao'
837
+ version: '$1'
838
+
839
+ # Alipay
840
+ - regex: '(?:AlipayClient|AliApp\(AP)[/ _](\d+\.[\d.]+)'
841
+ name: 'Alipay'
842
+ version: '$1'
843
+
844
+ # Blue Proxy (https://play.google.com/store/apps/details?id=com.udicorn.proxy)
845
+ - regex: 'Blue Proxy/([\d\.]+)'
846
+ name: 'Blue Proxy'
847
+ version: '$1'
848
+
849
+ # https://www.n-tv.de/
850
+ - regex: 'ntvmobil/'
851
+ name: 'NTV Mobil'
852
+ version: ''
853
+
854
+ # COAF SMART Citizen (https://apps.apple.com/app/id1478339047)
855
+ - regex: 'COAF%20SMART%20Citizen/'
856
+ name: 'COAF SMART Citizen'
857
+ version: ''
858
+
859
+ # GitHub Desktop (https://desktop.github.com/)
860
+ - regex: 'GitHubDesktop/([\d\.]+)'
861
+ name: 'GitHub Desktop'
862
+ version: '$1'
863
+
864
+ # Logi Options+ (https://www.logitech.com/en-us/software/logi-options-plus.html)
865
+ - regex: 'logioptionsplus/([\d\.]+)'
866
+ name: 'Logi Options+'
867
+ version: '$1'
868
+
869
+ # Emby Theater (https://emby.media/emby-theater.html)
870
+ - regex: 'EmbyTheater/([\d\.]+)'
871
+ name: 'Emby Theater'
872
+ version: '$1'
873
+
874
+ # Y8 Browser (https://www.y8.com/)
875
+ - regex: 'y8-browser/([\d\.]+)'
876
+ name: 'Y8 Browser'
877
+ version: '$1'
878
+
879
+ # NuMuKi Browser (https://www.numuki.com/app-download/)
880
+ - regex: 'NuMuKiBrowser/([\d\.]+)'
881
+ name: 'NuMuKi Browser'
882
+ version: '$1'
883
+
884
+ # Landis+Gyr AIM Browser (https://www.landisgyr.eu/product/gridstream-aim/)
885
+ - regex: 'LandisGyrAIMbrowser/(\d+[\.\d]+)'
886
+ name: 'Landis+Gyr AIM Browser'
887
+ version: '$1'
888
+
889
+ # Visual Studio Code (https://code.visualstudio.com/)
890
+ - regex: 'Code/(\d+[\.\d]+)'
891
+ name: 'Visual Studio Code'
892
+ version: '$1'
893
+
894
+ # Wireshark (https://www.wireshark.org)
895
+ - regex: 'Wireshark/(\d+[\.\d]+)'
896
+ name: 'Wireshark'
897
+ version: '$1'
898
+
899
+ # Samsung Magician (https://www.samsung.com/semiconductor/minisite/ssd/product/consumer/magician/)
900
+ - regex: 'Magician'
901
+ name: 'Samsung Magician'
902
+ version: ''
903
+
904
+ # Razer Synapse (https://www.razer.com/synapse-3)
905
+ - regex: 'Razer Central PC'
906
+ name: 'Razer Synapse'
907
+ version: ''
908
+
909
+ # Git (https://git-scm.com/download/win)
910
+ - regex: 'git/(\d+[\.\d]+)'
911
+ name: 'Git'
912
+ version: '$1'
913
+
914
+ # Google Podcasts (https://apps.apple.com/us/app/google-podcasts/id1398000105)
915
+ - regex: '^GooglePodcasts/(\d+\.[.\d]+)'
916
+ name: 'Google Podcasts'
917
+ version: '$1'
918
+
919
+ # Windows CryptoAPI (https://www.microsoft.com/en-us/)
920
+ - regex: 'Microsoft-CryptoAPI/(\d+[\.\d]+)'
921
+ name: 'Windows CryptoAPI'
922
+ version: ''
923
+
924
+ # Windows Delivery Optimization (https://www.microsoft.com/en-us/)
925
+ - regex: 'Microsoft-Delivery-Optimization'
926
+ name: 'Windows Delivery Optimization'
927
+ version: ''
928
+
929
+ # Windows Update Agent (https://www.microsoft.com/en-us/)
930
+ - regex: 'Windows-Update-Agent'
931
+ name: 'Windows Update Agent'
932
+ version: ''
933
+
934
+ # Dr. Watson (https://www.microsoft.com/en-us/)
935
+ - regex: '^MSDW'
936
+ name: 'Dr. Watson'
937
+ version: ''
938
+
939
+ # qBittorrent (https://www.qbittorrent.org/)
940
+ - regex: 'qBittorrent/(\d+[\.\d]+)'
941
+ name: 'qBittorrent'
942
+ version: '$1'
943
+
944
+ # CPU-Z (https://www.cpuid.com/)
945
+ - regex: '^CPUID'
946
+ name: 'CPU-Z'
947
+ version: ''
948
+
949
+ # AIDA64 (https://www.aida64.com/)
950
+ - regex: 'AIDA64'
951
+ name: 'AIDA64'
952
+ version: ''
953
+
954
+ # HandBrake (https://handbrake.fr/)
955
+ - regex: 'HandBrake Win Upd (\d+[\.\d]+)'
956
+ name: 'HandBrake'
957
+ version: '$1'
958
+
959
+ # CCleaner (https://www.ccleaner.com/)
960
+ - regex: 'CCleaner, (\d+[\.\d]+)'
961
+ name: 'CCleaner'
962
+ version: '$1'
963
+
964
+ # Edge Update (https://www.microsoft.com/en-us/)
965
+ - regex: 'Microsoft Edge Update/(\d+[\.\d]+)'
966
+ name: 'Edge Update'
967
+ version: '$1'
968
+
969
+ # Chrome Update (https://www.google.com/chrome/)
970
+ - regex: 'Google(?:Software| )Update/(\d+[\.\d]+)'
971
+ name: 'Chrome Update'
972
+ version: '$1'
973
+
974
+ # Bose Music (https://apps.apple.com/us/app/bose-music/id1364986984)
975
+ - regex: 'Bose Music'
976
+ name: 'Bose Music'
977
+ version: ''
978
+
979
+ # HikConnect (https://apps.apple.com/us/app/hik-connect-for-end-user/id1087803190)
980
+ - regex: 'HikConnect'
981
+ name: 'Hik-Connect'
982
+ version: ''
983
+
984
+ # Cortana (https://www.microsoft.com/en-us/)
985
+ - regex: 'Cortana (\d+[\.\d]+)'
986
+ name: 'Cortana'
987
+ version: '$1'
988
+
989
+ # Opera News (https://play.google.com/store/apps/details?id=com.opera.app.news)
990
+ - regex: 'Opera News/(\d+[\.\d]+)'
991
+ name: 'Opera News'
992
+ version: '$1'
993
+
994
+ # Adobe Creative Cloud (https://apps.apple.com/us/app/adobe-creative-cloud/id852473028)
995
+ - regex: 'CreativeCloud/(\d+[\.\d]+)'
996
+ name: 'Adobe Creative Cloud'
997
+ version: '$1'
998
+
999
+ # rekordbox (https://rekordbox.com/en/)
1000
+ - regex: 'rekordbox/(\d+[\.\d]+)'
1001
+ name: 'rekordbox'
1002
+ version: '$1'
1003
+
1004
+ # Windows Push Notification Services (https://www.microsoft.com/en-us/)
1005
+ - regex: 'Microsoft-WNS/(\d+[\.\d]+)'
1006
+ name: 'Windows Push Notification Services'
1007
+ version: '$1'
1008
+
1009
+ # Background Intelligent Transfer Service (https://www.microsoft.com/en-us/)
1010
+ - regex: 'Microsoft BITS/(\d+[\.\d]+)'
1011
+ name: 'Background Intelligent Transfer Service'
1012
+ version: '$1'
1013
+
1014
+ # ESET Remote Administrator (https://www.eset.com/me/business/remote-management/remote-administrator/)
1015
+ - regex: 'ERA Agent Update'
1016
+ name: 'ESET Remote Administrator'
1017
+ version: ''
1018
+
1019
+ # Epic Games Launcher (https://www.epicgames.com/store/en-US/download)
1020
+ - regex: 'EpicGamesLauncher/(\d+[\.\d]+)'
1021
+ name: 'Epic Games Launcher'
1022
+ version: '$1'
1023
+
1024
+ # WebDAV (https://www.microsoft.com/en-us/)
1025
+ - regex: 'Microsoft-WebDAV-MiniRedir'
1026
+ name: 'WebDAV'
1027
+ version: ''
1028
+
1029
+ # Battle.net (https://eu.shop.battle.net/en-us)
1030
+ - regex: 'Battle\.net/(\d+[\.\d]+)'
1031
+ name: 'Battle.net'
1032
+ version: '$1'
1033
+
1034
+ # Bookshelf (https://play.google.com/store/apps/details?id=com.vitalsource.bookshelf)
1035
+ - regex: 'Bookshelf-Android/(\d+[\.\d]+)'
1036
+ name: 'Bookshelf'
1037
+ version: '$1'
1038
+
1039
+ # Rave Social (https://www.ravesocial.com/)
1040
+ - regex: 'RaveSocial/(\d+[\.\d]+)'
1041
+ name: 'Rave Social'
1042
+ version: '$1'
1043
+
1044
+ # Word Cookies! (https://apps.apple.com/us/app/word-cookies/id1153883316)
1045
+ - regex: 'wordcookies/(\d+[\.\d]+)'
1046
+ name: 'Word Cookies!'
1047
+ version: '$1'
1048
+
1049
+ # Bible KJV (https://apps.apple.com/us/app/bible-kjv/id544098932)
1050
+ - regex: 'com\.meevii\.bibleKJV/(\d+[\.\d]+)'
1051
+ name: 'Bible KJV'
1052
+ version: '$1'
1053
+
1054
+ # MetaTrader (https://www.metatrader5.com/)
1055
+ - regex: 'MetaTrader 5 Terminal/(\d+[\.\d]+)'
1056
+ name: 'MetaTrader'
1057
+ version: '$1'
1058
+
1059
+ # Paint by Number (https://apps.apple.com/us/app/paint-by-number-coloring-games/id1420058690)
1060
+ - regex: 'com\.paint\.bynumber/(\d+[\.\d]+)'
1061
+ name: 'Paint by Number'
1062
+ version: '$1'
1063
+
1064
+ # ZEPETO (https://apps.apple.com/app/id1350301428)
1065
+ - regex: 'zepeto_global/(\d+[\.\d]+)'
1066
+ name: 'ZEPETO'
1067
+ version: '$1'
1068
+
1069
+ # Jungle Disk (https://www.jungledisk.com/)
1070
+ - regex: 'Jungle Disk Workgroup HTTP'
1071
+ name: 'Jungle Disk'
1072
+ version: ''
1073
+
1074
+ # Nextcloud (https://play.google.com/store/apps/details?id=com.nextcloud.client)
1075
+ - regex: '(?:mirall|Nextcloud-android)/(\d+[\.\d]+)'
1076
+ name: 'Nextcloud'
1077
+ version: '$1'
1078
+
1079
+ # GoNative (https://gonative.io/)
1080
+ - regex: 'GoNativeIOS/(\d+[\.\d]+)'
1081
+ name: 'GoNative'
1082
+ version: '$1'
1083
+
1084
+ # Pandora (https://apps.apple.com/us/app/pandora-music-podcasts/id284035177)
1085
+ - regex: 'Pandora/(\d+[\.\d]+)'
1086
+ name: 'Pandora'
1087
+ version: '$1'
1088
+
1089
+ # Blackboard (https://apps.apple.com/us/app/blackboard/id950424861)
1090
+ - regex: 'Blackboard/(\d+[\.\d]+)?'
1091
+ name: 'Blackboard'
1092
+ version: '$1'
1093
+
1094
+ # QQMusic (https://apps.apple.com/cn/app/qq%E9%9F%B3%E4%B9%90-%E5%90%AC%E6%88%91%E6%83%B3%E5%90%AC/id414603431)
1095
+ - regex: 'QQMusic/(\d+[\.\d]+)'
1096
+ name: 'QQMusic'
1097
+ version: '$1'
1098
+
1099
+ # eToro (https://www.etoro.com/)
1100
+ - regex: 'etoro-cordova-app'
1101
+ name: 'eToro'
1102
+ version: ''
1103
+
1104
+ # Avid Link (https://www.avid.com/products/avid-link)
1105
+ - regex: 'Avid Link Desktop App/(\d+[\.\d]+)'
1106
+ name: 'Avid Link'
1107
+ version: '$1'
1108
+
1109
+ # Netflix (https://www.netflix.com/)
1110
+ - regex: 'Netflix/(\d+[\.\d]+)'
1111
+ name: 'Netflix'
1112
+ version: '$1'
1113
+
1114
+ # Google Tag Manager (https://www.google.com/)
1115
+ - regex: 'GoogleTagManager/(\d+[\.\d]+)'
1116
+ name: 'Google Tag Manager'
1117
+ version: '$1'
1118
+
1119
+ # Adobe Synchronizer (https://www.adobe.com/)
1120
+ - regex: 'Adobe Synchronizer (\d+[\.\d]+)'
1121
+ name: 'Adobe Synchronizer'
1122
+ version: '$1'
1123
+
1124
+ # BlueStacks (https://www.bluestacks.com/)
1125
+ - regex: 'BlueStacks(?: 5)?/(\d+[\.\d]+)'
1126
+ name: 'BlueStacks'
1127
+ version: '$1'
1128
+
1129
+ # PowerShell (https://www.microsoft.com/en-us/)
1130
+ - regex: 'WindowsPowerShell/(\d+[\.\d]+)'
1131
+ name: 'PowerShell'
1132
+ version: '$1'
1133
+
1134
+ # GlobalProtect (https://www.paloaltonetworks.com/products/globalprotect)
1135
+ - regex: 'PAN GlobalProtect/(\d+[\.\d]+)'
1136
+ name: 'GlobalProtect'
1137
+ version: '$1'
1138
+
1139
+ # Theyub
1140
+ - regex: 'Theyub v(\d+[\.\d]+)'
1141
+ name: 'Theyub'
1142
+ version: '$1'
1143
+
1144
+ # BBC News
1145
+ - regex: 'BBCNewsUKWatchApp/(\d+[\.\d]+)'
1146
+ name: 'BBC News'
1147
+ version: '$1'
1148
+
1149
+ # TradingView (https://www.tradingview.com/)
1150
+ - regex: 'TradingView/(\d+[\.\d]+)'
1151
+ name: 'TradingView'
1152
+ version: '$1'
1153
+
1154
+ # Instabridge (https://instabridge.com/en/)
1155
+ - regex: 'Instabridge(?:/([\d\.]+))?'
1156
+ name: 'Instabridge'
1157
+ version: '$1'
1158
+
1159
+ # Be Focused (https://apps.apple.com/app/id973130201)
1160
+ - regex: 'Be Focused/(\d+\.[\.\d]+)?'
1161
+ name: 'Be Focused'
1162
+ version: '$1'
1163
+
1164
+ # Focus Matrix (https://apps.apple.com/app/id1087284172)
1165
+ - regex: 'Focus Matrix/(\d+\.[\.\d]+)?'
1166
+ name: 'Focus Matrix'
1167
+ version: '$1'
1168
+
1169
+ # Focus Keeper (https://apps.apple.com/app/id867374917)
1170
+ - regex: 'Focuskeeper/(\d+\.[\.\d]+)?'
1171
+ name: 'Focus Keeper'
1172
+ version: '$1'
1173
+
1174
+ # Microsoft Store (https://www.microsoft.com/en-us/store/apps/windows)
1175
+ - regex: 'WindowsStoreSDK'
1176
+ name: 'Microsoft Store'
1177
+ version: ''
1178
+
1179
+ # ASUS Updater (https://www.asus.com/)
1180
+ - regex: 'Asus Update/(\d+\.[\.\d]+)'
1181
+ name: 'ASUS Updater'
1182
+ version: '$1'
1183
+
1184
+ # IMO.IM HD Version https://play.google.com/store/apps/details?id=com.imo.android.imoimhd
1185
+ - regex: 'imoAndroid/(20\d{2}\.[\.\d]+)'
1186
+ name: 'IMO HD Video Calls & Chat'
1187
+ version: '$1'
1188
+
1189
+ # IMO.IM https://play.google.com/store/apps/details?id=com.imo.android.imoim
1190
+ - regex: 'imoAndroid/(\d+\.[\.\d]+)'
1191
+ name: 'IMO International Calls & Chat'
1192
+ version: '$1'
1193
+
1194
+ # Microsoft Bing (https://play.google.com/store/apps/details?id=com.microsoft.bing | https://apps.apple.com/us/app/bing-chat-with-ai-gpt-4/id345323231)
1195
+ - regex: '(?:Bing)?Sapphire/(\d+\.[\.\d]+)'
1196
+ name: 'Microsoft Bing'
1197
+ version: '$1'
1198
+ - regex: 'BingWeb(?:/([\d\.]+))?|bingipadclient'
1199
+ name: 'Microsoft Bing'
1200
+ version: '$1'
1201
+
1202
+ # Microsoft Start (https://play.google.com/store/apps/details?id=com.microsoft.amp.apps.bingnews | https://apps.apple.com/us/app/microsoft-start/id945416273)
1203
+ - regex: 'NewsSapphire/(\d+\.[\.\d]+)'
1204
+ name: 'Microsoft Start'
1205
+ version: '$1'
1206
+
1207
+ # Microsoft Copilot (https://play.google.com/store/apps/details?id=com.microsoft.copilot | https://apps.apple.com/us/app/microsoft-copilot/id6472538445)
1208
+ - regex: 'CopilotSapphire/(\d+\.[\.\d]+)'
1209
+ name: 'Microsoft Copilot'
1210
+ version: '$1'
1211
+
1212
+ # HiSearch
1213
+ - regex: '.+HiSearch/(\d+\.[\.\d]+)'
1214
+ name: 'HiSearch'
1215
+ version: '$1'
1216
+
1217
+ # RDDocuments (https://apps.apple.com/app/id364901807)
1218
+ - regex: 'RDDocuments/(\d+\.[\.\d]+)'
1219
+ name: 'RDDocuments'
1220
+ version: '$1'
1221
+
1222
+ # F-Secure SAFE (https://apps.apple.com/app/f-secure-safe/id572847748)
1223
+ - regex: 'FSCDCSafe[ /](\d+\.[\.\d]+)'
1224
+ name: 'F-Secure SAFE'
1225
+ version: '$1'
1226
+
1227
+ # Twitterrific (https://apps.apple.com/us/app/twitterrific-tweet-your-way/id580311103)
1228
+ - regex: 'Twitterrific'
1229
+ name: 'Twitterrific'
1230
+ version: ''
1231
+
1232
+ # Uconnect LIVE (https://apps.apple.com/it/app/uconnect-live/id881830261?l=en)
1233
+ - regex: 'UconnectLive'
1234
+ name: 'Uconnect LIVE'
1235
+ version: ''
1236
+
1237
+ # Wayback Machine (https://apps.apple.com/us/app/wayback-machine/id1472432422)
1238
+ - regex: 'Wayback%20Machine%20Extension'
1239
+ name: 'Wayback Machine'
1240
+ version: ''
1241
+
1242
+ # Q-municate (https://www.qmunicateh10.com | https://apps.apple.com/gb/app/q-municate/id909698517)
1243
+ - regex: 'com\.Nanoteq\.QmunicateH10p.+/(\d+\.[\.\d]+) \('
1244
+ name: 'Q-municate'
1245
+ version: '$1'
1246
+
1247
+ # NET.mede (https://apps.apple.com/us/app/net-mede/id597007101)
1248
+ - regex: 'NET\.mede'
1249
+ name: 'NET.mede'
1250
+ version: ''
1251
+
1252
+ # My Bentley (https://apps.apple.com/us/app/my-bentley/id1008052243)
1253
+ - regex: 'My%20Bentley'
1254
+ name: 'My Bentley'
1255
+ version: ''
1256
+
1257
+ # Skyeng (https://apps.apple.com/us/app/skyeng-english-online/id1065290732)
1258
+ - regex: 'Skyeng%20App'
1259
+ name: 'Skyeng'
1260
+ version: ''
1261
+
1262
+ # Skyeng Teachers (https://apps.apple.com/us/app/skyeng-teachers/id1483049537)
1263
+ - regex: 'Skyeng%20Teachers'
1264
+ name: 'Skyeng Teachers'
1265
+ version: ''
1266
+
1267
+ # Bank Millenium (https://apps.apple.com/us/app/bank-millennium/id412646128)
1268
+ - regex: '(Millennium/|Millennium%20Corp)'
1269
+ name: 'Bank Millenium'
1270
+ version: ''
1271
+
1272
+ # MBolsa (https://apps.apple.com/us/app/mbolsa/id1533621499)
1273
+ - regex: 'MBolsa'
1274
+ name: 'MBolsa'
1275
+ version: ''
1276
+
1277
+ # MEmpresas (https://apps.apple.com/us/app/mempresas/id669516182)
1278
+ - regex: '(MEmpresas|Millennium%20Empresas)'
1279
+ name: 'MEmpresas'
1280
+ version: ''
1281
+
1282
+ # Orange Radio (https://apps.apple.com/fr/app/orange-radio/id1201284975?l=en)
1283
+ - regex: 'OrangeRadio/(\d+\.[\.\d]+)'
1284
+ name: 'Orange Radio'
1285
+ version: '$1'
1286
+
1287
+ # Radio Italiane https://apps.apple.com/us/app/radio-italiane-radio-it/id1390350146)
1288
+ - regex: 'Radio%20Italiane/(\d+\.[\.\d]+)'
1289
+ name: 'Radio Italiane'
1290
+ version: '$1'
1291
+
1292
+ # Safari Search Helper
1293
+ - regex: 'com\.apple\.Safari\.SearchHelper/(\d+\.[\.\d]+)'
1294
+ name: 'Safari Search Helper'
1295
+ version: '$1'
1296
+
1297
+ # Citrix Workspace (https://apps.apple.com/us/app/citrix-workspace/id363501921)
1298
+ - regex: 'Citrix%20Viewer'
1299
+ name: 'Citrix Workspace'
1300
+ version: ''
1301
+
1302
+ # Mercantile Bank of Michigan (https://apps.apple.com/us/app/mercantile-bank-of-michigan/id428982831)
1303
+ - regex: 'com\.mercbank\.s1mobileipad'
1304
+ name: 'Mercantile Bank of Michigan'
1305
+ version: ''
1306
+
1307
+ # DStream Air (https://apps.apple.com/us/app/dstream-air/id1214400521)
1308
+ - regex: 'D-Stream%20Air'
1309
+ name: 'DStream Air'
1310
+ version: ''
1311
+
1312
+ # Expedia (https://apps.apple.com/us/app/expedia-hotels-flights-car/id427916203)
1313
+ - regex: 'ExpediaBookings'
1314
+ name: 'Expedia'
1315
+ version: ''
1316
+
1317
+ # Windows Antivirus
1318
+ - regex: 'Windows Antivirus (\d+\.[\.\d]+)'
1319
+ name: 'Windows Antivirus'
1320
+ version: '$1'
1321
+
1322
+ # Macrium Reflect (https://www.macrium.com/reflectfree)
1323
+ - regex: '^Reflect'
1324
+ name: 'Macrium Reflect'
1325
+ version: ''
1326
+
1327
+ - regex: 'Opera autoupdate agent'
1328
+ name: 'Opera Updater'
1329
+ version: ''
1330
+
1331
+ # Ballz (https://apps.apple.com/us/app/ballz/id1139609950)
1332
+ - regex: 'Ballz/(\d+\.[\.\d]+)'
1333
+ name: 'Ballz'
1334
+ version: '$1'
1335
+
1336
+ # RNPS Action Cards
1337
+ - regex: 'rnps-action-cards/(\d+\.[\.\d]+)'
1338
+ name: 'RNPS Action Cards'
1339
+ version: '$1'
1340
+
1341
+ # Plex Media Server (https://www.plex.tv/sv/media-server-downloads/)
1342
+ - regex: 'PlexMediaServer/(\d+\.[\.\d]+)'
1343
+ name: 'Plex Media Server'
1344
+ version: '$1'
1345
+
1346
+ # SafeIP (https://www.freesafeip.com/)
1347
+ - regex: 'FreeSafeIP'
1348
+ name: 'SafeIP'
1349
+ version: ''
1350
+
1351
+ # Surfshark (https://play.google.com/store/apps/details?id=com.surfshark.vpnclient.android | https://apps.apple.com/app/apple-store/id1391782046)
1352
+ - regex: 'Surfshark(?:Android)?/([\d\.]+)'
1353
+ name: 'Surfshark'
1354
+ version: '$1'
1355
+
1356
+ # Hago (https://play.google.com/store/apps/details?id=com.yy.hiyo)
1357
+ - regex: 'APP/yym-hago-and(\d+\.[\.\d]+)'
1358
+ name: 'Hago'
1359
+ version: '$1'
1360
+
1361
+ # Vuze Bittorent Client
1362
+ - regex: 'Azureus (\d+\.[\.\d]+)'
1363
+ name: 'Vuze'
1364
+ version: '$1'
1365
+
1366
+ # Adobe IPM
1367
+ - regex: 'IPM'
1368
+ name: 'Adobe IPM'
1369
+ version: ''
1370
+
1371
+ # Adobe NGL
1372
+ - regex: 'NGL Client/(\d+\.[\.\d]+)'
1373
+ name: 'Adobe NGL'
1374
+ version: '$1'
1375
+
1376
+ # Bitcoin Core (https://bitcoin.org/en/bitcoin-core/)
1377
+ - regex: '/Satoshi:(\d+\.[\.\d]+)/'
1378
+ name: 'Bitcoin Core'
1379
+ version: '$1'
1380
+
1381
+ # Dogecoin Core (https://github.com/dogecoin/dogecoin)
1382
+ - regex: '/Shibetoshi:(\d+\.[\.\d]+)/'
1383
+ name: 'Dogecoin Core'
1384
+ version: '$1'
1385
+
1386
+ # Amazon Shopping (https://play.google.com/store/apps/details?id=com.amazon.mShop.android.shopping)
1387
+ - regex: 'Amazon\.com/(\d+\.[\.\d]+)'
1388
+ name: 'Amazon Shopping'
1389
+ version: '$1'
1390
+
1391
+ # mobile.de (https://play.google.com/store/apps/details?id=de.mobile.android.app)
1392
+ - regex: 'de\.mobile\.android\.app/(\d+\.[\.\d]+)'
1393
+ name: 'mobile.de'
1394
+ version: '$1'
1395
+ - regex: 'de\.mobile\.android\.app/(.*) \((\d+\.[\.\d]+)\)'
1396
+ name: 'mobile.de'
1397
+ version: '$2'
1398
+
1399
+ # Jitsi Meet (https://meet.jit.si/)
1400
+ - regex: 'jitsi-meet/'
1401
+ name: 'Jitsi Meet'
1402
+ version: ''
1403
+
1404
+ # Don't Waste My Time! (https://apps.apple.com/us/app/dont-waste-my-time/id1503883738)
1405
+ - regex: 'Waste My Time! Extension/(\d+\.[\.\d]+)'
1406
+ name: "Don't Waste My Time!"
1407
+ version: '$1'
1408
+
1409
+ # 1Password (https://apps.apple.com/us/app/1password-password-manager/id568903335)
1410
+ - regex: '1Password/(\d+\.[\.\d]+)'
1411
+ name: '1Password'
1412
+ version: '$1'
1413
+
1414
+ # Startsiden (https://apps.apple.com/us/app/startsiden/id435032741)
1415
+ - regex: 'iOSStartsidenApp'
1416
+ name: 'Startsiden'
1417
+ version: ''
1418
+
1419
+ # HisThumbnail
1420
+ - regex: 'HisThumbnail'
1421
+ name: 'HisThumbnail'
1422
+ version: ''
1423
+
1424
+ # Yahoo OneSearch (https://apps.apple.com/us/app/yahoo-onesearch/id1494021151)
1425
+ - regex: 'OneSearch/(\d+\.[\.\d]+)'
1426
+ name: 'Yahoo OneSearch'
1427
+ version: '$1'
1428
+
1429
+ # AntiBrowserSpy (https://www.abelssoft.de/en/windows/security-privacy/antibrowserspy)
1430
+ - regex: 'anonymized by Abelssoft'
1431
+ name: 'AntiBrowserSpy'
1432
+ version: ''
1433
+
1434
+ # Browser-Anonymizer (https://www.almisoft.de/)
1435
+ - regex: 'Anonymisiert durch AlMiSoft(?! Browser-Maulkorb)'
1436
+ name: 'Browser-Anonymizer'
1437
+ version: ''
1438
+
1439
+ # 다음 or Daum
1440
+ - regex: 'DaumApps/(\d+\.[.\d]+)?'
1441
+ name: 'Daum'
1442
+ version: '$1'
1443
+
1444
+ # DIRECTV (https://play.google.com/store/apps/details?id=com.att.tv)
1445
+ - regex: 'AT&T TV'
1446
+ name: 'DIRECTV'
1447
+ version: ''
1448
+
1449
+ # Reddit (https://play.google.com/store/apps/details?id=com.reddit.frontpage)
1450
+ - regex: 'Reddit/Version (\d+\.[.\d]+)/'
1451
+ name: 'Reddit'
1452
+ version: '$1'
1453
+
1454
+ # Tuya Smart Life (https://play.google.com/store/apps/details?id=com.tuya.smartlife)
1455
+ - regex: 'TuyaSmart/(\d+\.[.\d]+)'
1456
+ name: 'Tuya Smart Life'
1457
+ version: '$1'
1458
+
1459
+ # Spotify (https://apps.apple.com/us/app/spotify-music-and-podcasts/id324684580)
1460
+ - regex: '(?:Spotify(?:-Lite)?/(\d+\.[.\d]+|12\d+)|^spotify_)'
1461
+ name: 'Spotify'
1462
+ version: '$1'
1463
+
1464
+ # A music and podcasts streaming app
1465
+ - regex: '(?:AmazonMusic|^Harley)(?:(?:%2F|/)(\d+\.[.\d]+))?'
1466
+ name: 'Amazon Music'
1467
+ version: '$1'
1468
+
1469
+ # Klarna (https://apps.apple.com/us/app/klarna-shop-now-pay-later/id1115120118)
1470
+ - regex: 'Klarna/(\d+\.[.\d]+)?'
1471
+ name: 'Klarna'
1472
+ version: '$1'
1473
+
1474
+ # R (https://www.r-project.org/)
1475
+ - regex: '^R/(\d+[\.\d]+)'
1476
+ name: 'R'
1477
+ version: '$1'
1478
+
1479
+ # RadioApp (https://apps.apple.com/us/app/radioapp-a-simple-radio/id720291153)
1480
+ - regex: 'RadioAppFree/'
1481
+ name: 'RadioApp'
1482
+ version: ''
1483
+
1484
+ # Audible
1485
+ - regex: '^(?:Audible, Android, |com\.audible\.playersdk\.player/|Audible/)(\d+\.[.\d]+)?'
1486
+ name: 'Audible'
1487
+ version: '$1'
1488
+
1489
+ # Overcast (http://overcast.fm/)
1490
+ - regex: 'Overcast/?(\d+\.[.\d]+)? \(\+http://overcast\.fm/; (?:Apple Watch|iOS) podcast'
1491
+ name: 'Overcast'
1492
+ version: '$1'
1493
+
1494
+ # HTTP request maker (https://play.google.com/store/apps/details?id=com.proj.httprequestmaker)
1495
+ - regex: '^HTTPrequestmaker'
1496
+ name: 'HTTP request maker'
1497
+ version: ''
1498
+
1499
+ # bonprix (https://play.google.com/store/apps/details?id=com.proj.httprequestmaker)
1500
+ - regex: '^bonprix mobile App (\d+\.[.\d]+)'
1501
+ name: 'BonPrix'
1502
+ version: '$1'
1503
+
1504
+ # Quora https://apps.apple.com/us/app/quora/id456034437
1505
+ - regex: 'Safari Quora (\d+\.[.\d]+)'
1506
+ name: 'Quora'
1507
+ version: '$1'
1508
+
1509
+ # jj2go https://apps.apple.com/us/app/jj2go/id1438749275
1510
+ - regex: 'RelesysApp/(\d+\.[.\d]+) \(\d{1,2}\) net\.relesysapp\.jj2go'
1511
+ name: 'JJ2GO'
1512
+ version: '$1'
1513
+
1514
+ # My Watch Party
1515
+ - regex: 'MyWatchParty/(\d+\.[.\d]+)'
1516
+ name: 'My Watch Party'
1517
+ version: '$1'
1518
+
1519
+ - regex: 'LoseIt!/(\d+\.[.\d]+)'
1520
+ name: 'LoseIt!'
1521
+ version: '$1'
1522
+
1523
+ - regex: 'ActionExtension/([\d\.]+)'
1524
+ name: 'ActionExtension'
1525
+ version: '$1'
1526
+
1527
+ - regex: '^Adori(?:-Dev|-Listen)?/([\d\.]+)'
1528
+ name: 'Adori'
1529
+ version: '$1'
1530
+
1531
+ - regex: '^Agora/([\d\.]+)'
1532
+ name: 'Agora'
1533
+ version: '$1'
1534
+
1535
+ - regex: '^Airr(?:%20Beta)?/([\d\.]+)|^Airr \('
1536
+ name: 'Airr'
1537
+ version: '$1'
1538
+
1539
+ - regex: '^Airsonic/(\d+\.[.\d]+)'
1540
+ name: 'Airsonic'
1541
+ version: '$1'
1542
+
1543
+ - regex: '(?:AllYouCanBooksApp|^AllYouCanBooks/([\d\.]+))'
1544
+ name: 'All You Can Books'
1545
+ version: '$1'
1546
+
1547
+ - regex: '^AllHitMusicRadio/([\d\.]+)'
1548
+ name: 'AllHitMusicRadio'
1549
+ version: '$1'
1550
+
1551
+ - regex: '^Amazon;AF'
1552
+ name: 'Amazon Fire'
1553
+ version: ''
1554
+
1555
+ - regex: '^Anchor/([\d\.]+)'
1556
+ name: 'Anchor'
1557
+ version: '$1'
1558
+
1559
+ - regex: '^AnchorFM/(\d+\.[.\d]+)'
1560
+ name: 'AnchorFM'
1561
+ version: '$1'
1562
+
1563
+ - regex: '(?:^Anghami Android |^Anghami/|^أنغامي/)([\d\.]+)'
1564
+ name: 'Anghami'
1565
+ version: '$1'
1566
+
1567
+ - regex: '(?:^AntennaPod/|^de\.danoeh\.antennapod/|antenna/)([\d\.]+)?'
1568
+ name: 'AntennaPod'
1569
+ version: '$1'
1570
+
1571
+ - regex: '^Anybox/([\d\.]+)'
1572
+ name: 'Anybox'
1573
+ version: '$1'
1574
+
1575
+ - regex: '^Anytime/(\d+\.[.\d]+).*amugofjava'
1576
+ name: 'Anytime Podcast Player'
1577
+ version: '$1'
1578
+
1579
+ - regex: '^APKXDL'
1580
+ name: 'APK Downloader'
1581
+ version: ''
1582
+
1583
+ - regex: '^Apollo/([\d\.]+)'
1584
+ name: 'Apollo'
1585
+ version: '$1'
1586
+
1587
+ - regex: '(?:^MessagesViewService/|^Messages/|^Messages Share Extension/|^MessagesNotificationExtension/)([\d\.]+)'
1588
+ name: 'Apple iMessage'
1589
+ version: '$1'
1590
+
1591
+ # The Apple Podcasts app. What were they thinking?
1592
+ - regex: '(?:^Podcasts/|^Balados/|^Podcasti/|^Podcastit/|^Podcasturi/|^Podcasty/|^Podcast’ler/|^Podkaster/|^Podcaster/|^Podcastok/|^Подкасти/|^Подкасты/|^פודקאסטים/|^البودكاست/|^पॉडकास्ट/|^พ็อดคาสท์/|^播客/|^팟캐스트/|^ポッドキャスト/|^إسمعلي/|^Подкасттар/|^Podcast/|AirPodcasts/)([\d\.]+)?'
1593
+ name: 'Apple Podcasts'
1594
+ version: '$1'
1595
+
1596
+ - regex: '^Recordatorios/([\d\.]+)'
1597
+ name: 'Apple Reminders'
1598
+ version: '$1'
1599
+
1600
+ - regex: '^Arvocast/([\d\.]+)'
1601
+ name: 'Arvocast'
1602
+ version: '$1'
1603
+
1604
+ - regex: '^Radio\.com/(\d+\.[.\d]+)'
1605
+ name: 'Audacy'
1606
+ version: '$1'
1607
+
1608
+ - regex: '^Audio/([\d\.]+)'
1609
+ name: 'Audio'
1610
+ version: '$1'
1611
+
1612
+ - regex: '^Android_AudioNow'
1613
+ name: 'Audio Now'
1614
+ version: ''
1615
+
1616
+ - regex: '^Awasu/(\d+\.[.\d]+)'
1617
+ name: 'Awasu'
1618
+ version: '$1'
1619
+
1620
+ - regex: '^Bear/([\d\.]+)'
1621
+ name: 'Bear'
1622
+ version: '$1'
1623
+
1624
+ - regex: '^Bible/([\d\.]+)'
1625
+ name: 'Bible'
1626
+ version: '$1'
1627
+
1628
+ - regex: '^Bolt/([\d\.]+)'
1629
+ name: 'Bolt'
1630
+ version: '$1'
1631
+
1632
+ - regex: '^Bookmobile/([\d\.]+)'
1633
+ name: 'Bookmobile'
1634
+ version: '$1'
1635
+
1636
+ - regex: '^Boom/([\d\.]+)'
1637
+ name: 'Boom'
1638
+ version: '$1'
1639
+
1640
+ - regex: '^Boomplay/(\d+\.[.\d]+)'
1641
+ name: 'Boomplay'
1642
+ version: '$1'
1643
+
1644
+ - regex: '^Bose/(\d+\.[.\d]+)'
1645
+ name: 'Bose SoundTouch'
1646
+ version: '$1'
1647
+
1648
+ - regex: '^bPod$'
1649
+ name: 'bPod'
1650
+ version: ''
1651
+
1652
+ - regex: '^breez/(\d+\.[.\d]+)'
1653
+ name: 'Breez'
1654
+ version: '$1'
1655
+
1656
+ - regex: '^Broadcast/(\d+\.[.\d]+)'
1657
+ name: 'Broadcast'
1658
+ version: '$1'
1659
+
1660
+ - regex: 'BroadwayPodcastNetwork/iOS'
1661
+ name: 'Broadway Podcast Network'
1662
+ version: ''
1663
+
1664
+ - regex: '^(?:Browser|browser_iso)/([\d\.]+)'
1665
+ name: 'Browser app'
1666
+ version: '$1'
1667
+
1668
+ - regex: '^BrowserPlus/([\d\.]+)'
1669
+ name: 'BrowserPlus'
1670
+ version: '$1'
1671
+
1672
+ - regex: '^Bullhorn(?:/([\d\.]+))?'
1673
+ name: 'Bullhorn'
1674
+ version: '$1'
1675
+
1676
+ - regex: '^Capital/([\d\.]+)'
1677
+ name: 'Capital'
1678
+ version: '$1'
1679
+
1680
+ - regex: '^capsule\.fm/([\d\.]+)|^capsule-android'
1681
+ name: 'capsule.fm'
1682
+ version: '$1'
1683
+
1684
+ - regex: '^Castamatic/([\d\.]+)'
1685
+ name: 'Castamatic'
1686
+ version: '$1'
1687
+
1688
+ - regex: '^Castaway/([\d\.]+)'
1689
+ name: 'Castaway'
1690
+ version: '$1'
1691
+
1692
+ - regex: '^CastBox/(\d+\.[.\d]+)'
1693
+ name: 'CastBox'
1694
+ version: '$1'
1695
+
1696
+ - regex: '^Classic FM/([\d\.]+)'
1697
+ name: 'Classic FM'
1698
+ version: '$1'
1699
+
1700
+ - regex: '^Client/([\d\.]+)'
1701
+ name: 'Client'
1702
+ version: '$1'
1703
+
1704
+ - regex: '^Cosmicast/([\d\.]+)'
1705
+ name: 'Cosmicast'
1706
+ version: '$1'
1707
+
1708
+ # A simple, beautiful podcast app, for Windows, MacOS and Linux
1709
+ - regex: 'CPod/(\d+\.[.\d]+)'
1710
+ name: 'CPod'
1711
+ version: '$1'
1712
+
1713
+ - regex: '^damus/([\d\.]+)'
1714
+ name: 'Damus'
1715
+ version: '$1'
1716
+
1717
+ - regex: '(?:be\.standaard\.audio|^DS podcast/|DS%20Podcast/)([\d\.]+)?'
1718
+ name: 'De Standaard'
1719
+ version: '$1'
1720
+
1721
+ - regex: '^DManager/([\d\.]+)'
1722
+ name: 'DManager'
1723
+ version: '$1'
1724
+
1725
+ - regex: '^doubleTwist CloudPlayer'
1726
+ name: 'DoubleTwist CloudPlayer'
1727
+ version: ''
1728
+
1729
+ - regex: '^Doughnut/([\d\.]+)'
1730
+ name: 'Doughnut'
1731
+ version: '$1'
1732
+
1733
+ - regex: '^Downie/([\d\.]+)'
1734
+ name: 'Downie'
1735
+ version: '$1'
1736
+
1737
+ - regex: '^Downloader/([\d\.]+)'
1738
+ name: 'Downloader'
1739
+ version: '$1'
1740
+
1741
+ - regex: '^EMAudioPlayer (\d+\.[.\d]+)'
1742
+ name: 'EMAudioPlayer'
1743
+ version: '$1'
1744
+
1745
+ - regex: '^Expo/(\d+\.[.\d]+)'
1746
+ name: 'Expo'
1747
+ version: '$1'
1748
+
1749
+ - regex: '^CFR%20Plus/([\d\.]+)'
1750
+ name: 'faidr'
1751
+ version: '$1'
1752
+
1753
+ - regex: '^Fathom/([\d\.]+)'
1754
+ name: 'Fathom'
1755
+ version: '$1'
1756
+
1757
+ - regex: '^FeedStation/(\d+\.[.\d]+)'
1758
+ name: 'FeedStation'
1759
+ version: '$1'
1760
+
1761
+ - regex: '^Files/([\d\.]+)'
1762
+ name: 'Files'
1763
+ version: '$1'
1764
+
1765
+ - regex: '^Fountain(?:app)?/([\d\.]+)'
1766
+ name: 'Fountain'
1767
+ version: '$1'
1768
+
1769
+ - regex: '^Garmin fenix 5X Plus/(\d+\.[.\d]+)'
1770
+ name: 'Garmin fenix 5X'
1771
+ version: '$1'
1772
+
1773
+ - regex: '^Garmin Forerunner (?:\d+)(?: Music| Solar)?/(\d+\.[.\d]+)'
1774
+ name: 'Garmin Forerunner'
1775
+ version: '$1'
1776
+
1777
+ - regex: '^Gold/([\d\.]+)'
1778
+ name: 'Gold'
1779
+ version: '$1'
1780
+
1781
+ - regex: '^GoldenPod/(\d+\.[.\d]+)'
1782
+ name: 'GoldenPod'
1783
+ version: '$1'
1784
+
1785
+ - regex: '^GoLoud/([\d\.]+)'
1786
+ name: 'GoLoud'
1787
+ version: '$1'
1788
+
1789
+ - regex: 'Goodpods(?:\.Android|\.iOS)? ?/ ?([\d\.]+)'
1790
+ name: 'Goodpods'
1791
+ version: '$1'
1792
+
1793
+ - regex: '^GoodReader(?:4|IPad)?/([\d\.]+)'
1794
+ name: 'GoodReader'
1795
+ version: '$1'
1796
+
1797
+ - regex: '\(Fuchsia\).* CrKey/(:?\d+\.[.\d]+)'
1798
+ name: 'Google Nest Hub'
1799
+ version: ''
1800
+
1801
+ - regex: '^Guacamole/([\d\.]+)'
1802
+ name: 'Guacamole'
1803
+ version: '$1'
1804
+
1805
+ - regex: '^Hammel/([\d\.]+)'
1806
+ name: 'Hammel'
1807
+ version: '$1'
1808
+
1809
+ - regex: '^HardCast/([\d\.]+)'
1810
+ name: 'HardCast'
1811
+ version: '$1'
1812
+
1813
+ - regex: '^Hark/([\d\.]+)'
1814
+ name: 'Hark Audio'
1815
+ version: '$1'
1816
+
1817
+ - regex: '^Heart/([\d\.]+)'
1818
+ name: 'Heart'
1819
+ version: '$1'
1820
+
1821
+ - regex: 'hermespod\.com/v?([\d\.]+)'
1822
+ name: 'HermesPod'
1823
+ version: '$1'
1824
+
1825
+ - regex: '^HiCast/([\d\.]+)'
1826
+ name: 'HiCast'
1827
+ version: '$1'
1828
+
1829
+ # Himalaya is a podcast app
1830
+ - regex: '^Himalaya(?:_test)?/([\d\.]+)'
1831
+ name: 'Himalaya'
1832
+ version: '$1'
1833
+
1834
+ # Newsletters and podcasts together!
1835
+ - regex: '^HyperCatcher/([\d\.]+)'
1836
+ name: 'HyperCatcher'
1837
+ version: '$1'
1838
+
1839
+ - regex: '^(?:iHeartRadio|iHeartPodcasts)/([\d\.]+)'
1840
+ name: 'iHeartRadio'
1841
+ version: '$1'
1842
+
1843
+ - regex: '^IOSAudiobooks/([\d\.]+)'
1844
+ name: 'Audiobooks'
1845
+ version: '$1'
1846
+
1847
+ - regex: '^iVoox(?:App|New)?[ /]?([\d\.]+)?'
1848
+ name: 'iVoox'
1849
+ version: '$1'
1850
+
1851
+ - regex: '^Jam/(\d+\.[.\d]+)'
1852
+ name: 'Jam'
1853
+ version: '$1'
1854
+
1855
+ # A music streaming and podcast app from India. Earn Your Happy!
1856
+ - regex: '^(?:com\.jio\.media\.jiobeats/(\d+\.[.\d]+)|com\.saavn\.android|^[sS]aavn)'
1857
+ name: 'JioSaavn'
1858
+ version: '$1'
1859
+
1860
+ # Kajabi (https://kajabi.com/)
1861
+ - regex: 'KajabiMobileApp|KajabiPodcast'
1862
+ name: 'Kajabi'
1863
+ version: ''
1864
+
1865
+ - regex: '^KakaoTalk/(\d+\.[.\d]+)'
1866
+ name: 'KakaoTalk'
1867
+ version: '$1'
1868
+
1869
+ - regex: '^Kids(?:%20| )Listen/([\d\.]+)'
1870
+ name: 'Kids Listen'
1871
+ version: '$1'
1872
+
1873
+ - regex: '^KidspodMobileClient/([\d\.]+)'
1874
+ name: 'KidsPod'
1875
+ version: '$1'
1876
+
1877
+ - regex: '^KKBOX/(\d+\.[.\d]+)'
1878
+ name: 'KKBOX'
1879
+ version: '$1'
1880
+
1881
+ - regex: '^(?:Laughable.+iOS|Laughable)/(\d+\.[.\d]+)'
1882
+ name: 'Laughable'
1883
+ version: '$1'
1884
+
1885
+ # British podcast app
1886
+ - regex: '^LBC/([\d\.]+)'
1887
+ name: 'LBC'
1888
+ version: '$1'
1889
+
1890
+ - regex: 'LG Player (\d+\.[.\d]+)'
1891
+ name: 'LG Player'
1892
+ version: '$1'
1893
+
1894
+ - regex: '^Listen(?:(?: |%20)App)?/([\d\.]+)'
1895
+ name: 'Listen'
1896
+ version: '$1'
1897
+
1898
+ - regex: '^Liulo/([\d\.]+)'
1899
+ name: 'Liulo'
1900
+ version: '$1'
1901
+
1902
+ - regex: 'Listen5[ /]([\d\.]+)'
1903
+ name: 'Just Listen'
1904
+ version: '$1'
1905
+
1906
+ - regex: '^(?:Luminary(?:Preprod)?|luminary\.next)/([\d\.]+)'
1907
+ name: 'Luminary'
1908
+ version: '$1'
1909
+
1910
+ - regex: '^Megaphone\.fm'
1911
+ name: 'Megaphone'
1912
+ version: ''
1913
+
1914
+ - regex: '^Menucast/(\d+\.[.\d]+)'
1915
+ name: 'Menucast'
1916
+ version: '$1'
1917
+
1918
+ - regex: '^Messenger/([\d\.]+)'
1919
+ name: 'MessengerX'
1920
+ version: '$1'
1921
+
1922
+ - regex: '^Mimir(?:-macOS)?/([\d\.]+)'
1923
+ name: 'Mimir'
1924
+ version: '$1'
1925
+
1926
+ - regex: '^MobileSMS/([\d\.]+)'
1927
+ name: 'MobileSMS'
1928
+ version: '$1'
1929
+
1930
+ - regex: '^Moon ?FM/([\d\.]+)'
1931
+ name: 'MoonFM'
1932
+ version: '$1'
1933
+
1934
+ - regex: '^myTuner(?:(?:%20Radio%20app|iOS%20Free|_podcasts_androidplayer)/ ?([\d\.]+)?)?'
1935
+ name: 'MyTuner'
1936
+ version: '$1'
1937
+
1938
+ - regex: '^Newsly$'
1939
+ name: 'Newsly'
1940
+ version: ''
1941
+
1942
+ # NRC Audio
1943
+ - regex: '^NRC(?: |%20)Audio/([\d\.]+)'
1944
+ name: 'NRC Audio'
1945
+ version: '$1'
1946
+
1947
+ # The free NRC app offers you the latest news and the digital version of the paper newspaper.
1948
+ - regex: '(?:NRC-Nieuws/|nl\.nrc\.nrcapp |com\.twipemobile\.nrc )([\d\.]+)'
1949
+ name: 'NRC'
1950
+ version: '$1'
1951
+
1952
+ - regex: '^Outcast[/ ]?([\d\.]+)?'
1953
+ name: 'Outcast'
1954
+ version: '$1'
1955
+
1956
+ - regex: '^Podcast Overhaul/(\d+\.[.\d]+)'
1957
+ name: 'Overhaul FM'
1958
+ version: '$1'
1959
+
1960
+ - regex: '^Palco MP3/(\d+\.[.\d]+)'
1961
+ name: 'Palco MP3'
1962
+ version: '$1'
1963
+
1964
+ - regex: '^PeaCast/(\d+\.[.\d]+)'
1965
+ name: 'PeaCast'
1966
+ version: '$1'
1967
+
1968
+ - regex: '^Player FM|^Player%20FM|^Alpha%20PlayerFM/'
1969
+ name: 'Player FM'
1970
+ version: ''
1971
+
1972
+ - regex: '^Podbay/([\d\.]+)'
1973
+ name: 'Podbay'
1974
+ version: '$1'
1975
+
1976
+
1977
+ - regex: '^PodcastGuru[ /]([\d\.]+)'
1978
+ name: 'Podcast Guru'
1979
+ version: '$1'
1980
+
1981
+ - regex: '^Podcast Player/(\d+\.[.\d]+)'
1982
+ name: 'Podcast Player'
1983
+ version: '$1'
1984
+
1985
+ - regex: '^PodcastRepublic/(\d+\.[.\d]+)'
1986
+ name: 'Podcast Republic'
1987
+ version: '$1'
1988
+
1989
+ - regex: '^Podcastly[/ ]?(\d+\.[.\d]+)?'
1990
+ name: 'Podcastly'
1991
+ version: '$1'
1992
+
1993
+ - regex: '^Podchaser |^Podchaser-Parser'
1994
+ name: 'Podchaser'
1995
+ version: ''
1996
+
1997
+ - regex: '^Podclipper/([\d\.]+)'
1998
+ name: 'Podclipper'
1999
+ version: '$1'
2000
+
2001
+ - regex: '^PodCruncher/(\d+\.[.\d]+)'
2002
+ name: 'PodCruncher'
2003
+ version: '$1'
2004
+
2005
+ - regex: '^Podeo/([\d\.]+)'
2006
+ name: 'Podeo'
2007
+ version: '$1'
2008
+
2009
+ # Podfriend Electron app
2010
+ - regex: '^Podfriend[ /](\d+\.[.\d]+)'
2011
+ name: 'Podfriend'
2012
+ version: '$1'
2013
+
2014
+ # Podhero app on iOS and Android.
2015
+ - regex: '(?:^Podhero(?:%20Alpha)?/|^Swoot[/ ](?:Agent[/ ])?)([\d\.]+)'
2016
+ name: 'Podhero'
2017
+ version: '$1'
2018
+
2019
+ - regex: '^Podimo/(\d+\.[.\d]+)'
2020
+ name: 'Podimo'
2021
+ version: '$1'
2022
+
2023
+ # PodKast is a podcast app available for KaiOS smartphones
2024
+ - regex: 'PodKast$'
2025
+ name: 'PodKast'
2026
+ version: ''
2027
+
2028
+ - regex: '^Podkicker(?: Pro)/(\d+\.[.\d]+)'
2029
+ name: 'Podkicker Pro'
2030
+ version: '$1'
2031
+
2032
+ # PodLP is the first podcast app available for KaiOS smart feature phones on the KaiStore.
2033
+ - regex: 'PodLP/(\d+\.[.\d]+)'
2034
+ name: 'PodLP'
2035
+ version: '$1'
2036
+
2037
+ - regex: '^(?:Podme android app|PodMe)/(\d+\.[.\d]+)?'
2038
+ name: 'PodMe'
2039
+ version: '$1'
2040
+
2041
+ - regex: '^PodMN/(?:iOS|Android) (\d+\.[.\d]+)'
2042
+ name: 'PodMN'
2043
+ version: '$1'
2044
+
2045
+ - regex: '^PodNL/([\d\.]+)'
2046
+ name: 'PodNL'
2047
+ version: '$1'
2048
+
2049
+ - regex: '^(?:Podopolo|podopolo)/?([\d\.]+)'
2050
+ name: 'Podopolo'
2051
+ version: '$1'
2052
+
2053
+ - regex: '^Podplay/(\d+\.[.\d]+)'
2054
+ name: 'Podplay'
2055
+ version: '$1'
2056
+
2057
+ - regex: '^Pods/'
2058
+ name: 'Pods'
2059
+ version: '$1'
2060
+
2061
+ - regex: '^Podurama/(\d+\.[.\d]+)'
2062
+ name: 'Podurama'
2063
+ version: '$1'
2064
+
2065
+ - regex: '^PodTrapper$'
2066
+ name: 'PodTrapper'
2067
+ version: ''
2068
+
2069
+ - regex: '^Podvine/(\d+\.[.\d]+)'
2070
+ name: 'Podvine'
2071
+ version: '$1'
2072
+
2073
+ # Open source podcast catcher for Android, with clip-sharing, playlists, device syncing and more.
2074
+ - regex: '^Podverse/'
2075
+ name: 'Podverse'
2076
+ version: ''
2077
+
2078
+ # Podyssey is a community for people that love podcasts. It's like Goodreads, but for podcasts.
2079
+ - regex: '(?:Podyssey App|com\.toysinboxes\.Echo|fm\.podyssey\.podcasts|^Podyssey)/?([\d\.]+)?'
2080
+ name: 'Podyssey'
2081
+ version: '$1'
2082
+
2083
+ - regex: '^PugpigBolt (\d+\.[.\d]+)'
2084
+ name: 'PugPig Bolt'
2085
+ version: '$1'
2086
+
2087
+ # Radio.de is a radio and podcast app in Germany, but they
2088
+ # have web sites and apps with various domain names
2089
+ # (at, de, dk, es, fr, it, pl, pt, se, net)
2090
+ - regex: '^radio\.([a-z]{2}|net)[ /]([\d\.]+)'
2091
+ name: 'radio.$1'
2092
+ version: '$2'
2093
+
2094
+
2095
+ # same developer as radio.de, different app
2096
+ - regex: '^GetPodcast[ /]([\d\.]+)'
2097
+ name: 'GetPodcast'
2098
+ version: '$1'
2099
+
2100
+ # https://radio-next.tv/
2101
+ - regex: '^radio\.next[ /]([\d\.]+)'
2102
+ name: 'Radio Next'
2103
+ version: '$1'
2104
+
2105
+ - regex: '(?:^Radioline%202/(\d+\.[.\d]+)|^Radioline$)'
2106
+ name: 'Radioline'
2107
+ version: '$1'
2108
+
2109
+
2110
+ # Repod is a social podcast app that helps creators engage, montetization, and grow their community.
2111
+ - regex: '^Repod/(\d+\.[.\d]+)'
2112
+ name: 'Repod'
2113
+ version: '$1'
2114
+
2115
+ # Rhythmbox is your one-stop multimedia application, supporting a music library, multiple playlists, internet radio, and more.
2116
+ - regex: '^rhythmbox/(\d+\.[.\d]+)'
2117
+ name: 'Rhythmbox'
2118
+ version: '$1'
2119
+
2120
+ - regex: '^SachNoi\.?app/([\d\.]+)'
2121
+ name: 'SachNoi'
2122
+ version: '$1'
2123
+
2124
+ - regex: '^sp-agent'
2125
+ name: 'Samsung Podcasts'
2126
+ version: ''
2127
+
2128
+ - regex: '^(?:ServeStream(?: Dynamo)?/?(\d+\.[.\d]+)?)'
2129
+ name: 'ServeStream'
2130
+ version: '$1'
2131
+
2132
+ - regex: '^Shadow/([\d\.]+)'
2133
+ name: 'Shadow'
2134
+ version: '$1'
2135
+
2136
+ - regex: '^Shadowrocket/([\d\.]+)'
2137
+ name: 'Shadowrocket'
2138
+ version: '$1'
2139
+
2140
+ - regex: '^(?:SiriusXM|sxm-android|sxm-apple)/([\d\.]+)'
2141
+ name: 'SiriusXM'
2142
+ version: '$1'
2143
+
2144
+ - regex: '^Snipd/([\d\.]+)'
2145
+ name: 'Snipd'
2146
+ version: '$1'
2147
+
2148
+ - regex: '^Sodes/([\d\.]+)'
2149
+ name: "'sodes"
2150
+ version: '$1'
2151
+
2152
+ # Sonnet is a simple, easy to use podcast app aimed at new listeners
2153
+ - regex: '(?:Sonnet/(?:Android|iOS)|^Simple Podcast Player/(\d+\.[.\d]+))'
2154
+ name: 'Sonnet'
2155
+ version: '$1'
2156
+
2157
+ - regex: '^sony_tv;ps5;'
2158
+ name: 'Sony PlayStation 5'
2159
+ version: ''
2160
+
2161
+ # TikTok's music creator platform
2162
+ - regex: '^SoundOn/([\d\.]+)'
2163
+ name: 'SoundOn'
2164
+ version: '$1'
2165
+
2166
+ - regex: '^SoundWaves-(\d+\.[.\d]+)'
2167
+ name: 'SoundWaves'
2168
+ version: '$1'
2169
+
2170
+ - regex: 'Spreaker/([\d\.]+)'
2171
+ name: 'Spreaker'
2172
+ version: '$1'
2173
+
2174
+ - regex: '^Stitcher/|^Stitcher Demo/|^AlexaMediaPlayer/Stitcher'
2175
+ name: 'Stitcher'
2176
+ version: ''
2177
+
2178
+ - regex: '^StoryShots/(\d+\.[.\d]+)'
2179
+ name: 'StoryShots'
2180
+ version: '$1'
2181
+
2182
+ - regex: '^Swinsian/([\d\.]+)'
2183
+ name: 'Swinsian'
2184
+ version: '$1'
2185
+
2186
+ - regex: '^ThePodcastApp/(\d+\.[.\d]+)'
2187
+ name: 'Podcast App'
2188
+ version: '$1'
2189
+
2190
+ - regex: '^TREBLE/([\d\.]+)'
2191
+ name: 'Treble.fm'
2192
+ version: '$1'
2193
+
2194
+ - regex: '^Turtlecast/(\d+\.[.\d]+)'
2195
+ name: 'Turtlecast'
2196
+ version: '$1'
2197
+
2198
+ # an audiobook reader
2199
+ - regex: '^Ubook Player$'
2200
+ name: 'Ubook Player'
2201
+ version: ''
2202
+
2203
+
2204
+ # the second evolution of victor reader software
2205
+ - regex: '^VictorReader Stream Trek'
2206
+ name: 'Victor Reader Stream Trek'
2207
+ version: ''
2208
+
2209
+ # third evolution
2210
+ - regex: '^VictorReader Stream V3'
2211
+ name: 'Victor Reader Stream 3'
2212
+ version: ''
2213
+
2214
+ # fourth evolution
2215
+ - regex: '^(?:VictorReader Stream 503|VictorReader_)'
2216
+ name: 'Victor Reader Stream New Generation'
2217
+ version: ''
2218
+
2219
+ # Podcasts with deeper digital stories
2220
+ - regex: '^Vodacast/([\d\.]+)'
2221
+ name: 'Vodacast'
2222
+ version: '$1'
2223
+
2224
+ - regex: '^WynkMusic/(\d+\.[.\d]+)'
2225
+ name: 'Wynk Music'
2226
+ version: '$1'
2227
+
2228
+ # Xiao Yu Zhou, a podcast app
2229
+ - regex: '^Xiaoyuzhou/(\d+\.[.\d]+)'
2230
+ name: 'Xiao Yu Zhou'
2231
+ version: '$1'
2232
+
2233
+ - regex: '^Ya(ndex)?\.Music/'
2234
+ name: 'Yandex Music'
2235
+ version: ''
2236
+
2237
+ - regex: '^yapa/([\d\.]+)'
2238
+ name: 'Yapa'
2239
+ version: '$1'
2240
+
2241
+ - regex: 'Zune/(\d+\.[.\d]+)'
2242
+ name: 'Zune'
2243
+ version: ''
2244
+
2245
+ - regex: 'UCast/([\d\.]+)'
2246
+ name: 'UCast'
2247
+ version: '$1'
2248
+
2249
+ - regex: '(?:^NPROneAndroid$|(?:^NPR%20One|nprone_android)/([\d\.]+))'
2250
+ name: 'NPR'
2251
+ version: '$1'
2252
+
2253
+ - regex: 'Uforia/([\d\.]+)'
2254
+ name: 'Uforia'
2255
+ version: '$1'
2256
+
2257
+ - regex: '^LAT-Native-App'
2258
+ name: 'L.A. Times'
2259
+ version: ''
2260
+
2261
+ - regex: '(?:^NYT(?: |%20)?Audio(?:-iOS)?|nytios)/([\d.]+)'
2262
+ name: 'The New York Times'
2263
+ version: '$1'
2264
+
2265
+ - regex: '^LiSTNR[.\w]*/([\d.]+)'
2266
+ name: 'LiSTNR'
2267
+ version: '$1'
2268
+
2269
+ - regex: '^Podu_player$'
2270
+ name: 'podU'
2271
+ version: '$1'
2272
+
2273
+ - regex: '^TiviMate/([\d\.]+)'
2274
+ name: 'TiviMate'
2275
+ version: '$1'
2276
+
2277
+ - regex: 'IPTV/([\d\.]+)'
2278
+ name: 'IPTV'
2279
+ version: '$1'
2280
+
2281
+ # IPTV Pro (https://play.google.com/store/apps/details?id=ru.iptvremote.android.iptv.pro)
2282
+ - regex: 'IPTV Pro/([\d\.]+)'
2283
+ name: 'IPTV Pro'
2284
+ version: '$1'
2285
+
2286
+ - regex: '^com\.audials(?:\.paid)?/([\d\.]+)'
2287
+ name: 'Audials'
2288
+ version: '$1'
2289
+
2290
+ - regex: '^CoolerFM/([\d\.]+)'
2291
+ name: 'Cooler'
2292
+ version: '$1'
2293
+
2294
+ - regex: '^Metacast/([\d\.]+)'
2295
+ name: 'Metacast'
2296
+ version: '$1'
2297
+
2298
+ - regex: '^mowPod/([\d\.]+)'
2299
+ name: 'mowPod'
2300
+ version: '$1'
2301
+
2302
+ - regex: 'com\.meecel\.feedreader\.RssDemonAd'
2303
+ name: 'RSSDemon'
2304
+ version: ''
2305
+
2306
+ - regex: '^Virgin(?:%20|\s)Radio/([\d\.]+)'
2307
+ name: 'Virgin Radio'
2308
+ version: '$1'
2309
+
2310
+ # MetaMask (https://apps.apple.com/us/app/metamask-blockchain-wallet/id1438144202)
2311
+ - regex: 'MetaMask(?:Mobile)?'
2312
+ name: 'MetaMask'
2313
+ version: ''
2314
+
2315
+ # +Simple (https://play.google.com/store/apps/details?id=com.massimple.nacion.gcba.es)
2316
+ - regex: '\+Simple Browser'
2317
+ name: '+Simple'
2318
+ version: ''
2319
+
2320
+ # Bitwarden (https://bitwarden.com/)
2321
+ - regex: 'Bitwarden_Mobile/([\d\.]+)'
2322
+ name: 'Bitwarden'
2323
+ version: '$1'
2324
+
2325
+ # MX Player (https://play.google.com/store/apps/details?id=com.mxtech.videoplayer.ad)
2326
+ - regex: 'MXPlayer/([\d\.]+)'
2327
+ name: 'MX Player'
2328
+ version: '$1'
2329
+
2330
+ # HistoryHound
2331
+ - regex: 'HistoryHound/([\d\.]+)'
2332
+ name: 'HistoryHound'
2333
+ version: '$1'
2334
+
2335
+ # Quicksilver (https://qsapp.com/)
2336
+ - regex: 'Quicksilver'
2337
+ name: 'Quicksilver'
2338
+ version: ''
2339
+
2340
+ # CamScanner (https://play.google.com/store/apps/details?id=com.intsig.camscanner)
2341
+ - regex: 'CamScanner/([\d\.]+)'
2342
+ name: 'CamScanner'
2343
+ version: '$1'
2344
+
2345
+ # OBS Studio (https://obsproject.com/)
2346
+ - regex: 'OBS/(\d+[\.\d]+)'
2347
+ name: 'OBS Studio'
2348
+ version: '$1'
2349
+
2350
+ # XSplit Broadcaster (https://www.xsplit.com/broadcaster)
2351
+ - regex: 'XSplitBroadcaster/(\d+[\.\d]+)'
2352
+ name: 'XSplit Broadcaster'
2353
+ version: '$1'
2354
+
2355
+ # Twitch Studio (https://www.twitch.tv/broadcast/studio)
2356
+ - regex: 'twitch-desktop-electron-platform.*spotlight/(\d+[\.\d]+)'
2357
+ name: 'Twitch Studio'
2358
+ version: '$1'
2359
+
2360
+ # Stream Master (https://www.lovense.com/stream-master)
2361
+ - regex: 'Stream Master$'
2362
+ name: 'Stream Master'
2363
+ version: ''
2364
+
2365
+ # Freespoke (https://freespoke.com/)
2366
+ - regex: 'Freespoke/(\d+\.[\.\d]+)'
2367
+ name: 'Freespoke'
2368
+ version: '$1'
2369
+
2370
+ # Whatplay (https://play.google.com/store/apps/details?id=com.repotools.whatplay)
2371
+ - regex: 'Whatplay'
2372
+ name: 'Whatplay'
2373
+ version: ''
2374
+
2375
+ # Lark (https://www.larksuite.com/)
2376
+ - regex: 'Lark/(\d+[\.\d]+)'
2377
+ name: 'Lark'
2378
+ version: '$1'
2379
+
2380
+ # SearchCraft (https://secr.baidu.com/)
2381
+ - regex: 'SearchCraft/(\d+[\.\d]+)'
2382
+ name: 'SearchCraft'
2383
+ version: '$1'
2384
+
2385
+ # Crypto.com DeFi Wallet (https://apps.apple.com/us/app/crypto-com-l-defi-wallet/id1512048310)
2386
+ - regex: 'DeFiWallet/(\d+[\.\d]+)'
2387
+ name: 'Crypto.com DeFi Wallet'
2388
+ version: '$1'
2389
+
2390
+ # Clipbox+ (https://clipbox-official.com/)
2391
+ - regex: 'Clipbox\+/(\d+[\.\d]+)'
2392
+ name: 'Clipbox+'
2393
+ version: '$1'
2394
+
2395
+ # HideX (com.flatfish.cal.privacy)
2396
+ - regex: 'appname/HideX'
2397
+ name: 'HideX'
2398
+ version: ''
2399
+
2400
+ # Huawei Mobile Services
2401
+ - regex: 'HMSCore(?:[ /]([\d\.]+))?(?!.*HuaweiBrowser)'
2402
+ name: 'Huawei Mobile Services'
2403
+ version: '$1'
2404
+
2405
+ # PLAYit (https://play.google.com/store/apps/details?id=com.playit.videoplayer)
2406
+ - regex: 'appname/PLAYit'
2407
+ name: 'PLAYit'
2408
+ version: ''
2409
+
2410
+ # Autoplius.lt
2411
+ - regex: 'Autopliuslt(?:/([\d\.]+))?'
2412
+ name: 'Autoplius.lt'
2413
+ version: '$1'
2414
+
2415
+ # Hotels.com (https://play.google.com/store/apps/details?id=com.hcom.android)
2416
+ - regex: 'HCom(?:/([\d\.]+))?'
2417
+ name: 'Hotels.com'
2418
+ version: '$1'
2419
+
2420
+ # Coinbase (https://apps.apple.com/us/app/coinbase-buy-bitcoin-ether/id886427730)
2421
+ - regex: 'CoinbaseRetail(?:/([\d\.]+))?'
2422
+ name: 'Coinbase'
2423
+ version: '$1'
2424
+
2425
+ # De Telegraaf (https://play.google.com/store/apps/details?id=nl.telegraaf)
2426
+ - regex: 'De Telegraaf(?:/([\d\.]+))?'
2427
+ name: 'De Telegraaf'
2428
+ version: '$1'
2429
+
2430
+ # waipu.tv (https://www.waipu.tv/)
2431
+ - regex: 'waipu/([\d\.]+)'
2432
+ name: 'waipu.tv'
2433
+ version: '$1'
2434
+
2435
+ # Redditor (https://apps.apple.com/us/app/redditor-the-perfect-client/id596236434)
2436
+ - regex: 'Redditor'
2437
+ name: 'Redditor'
2438
+ version: ''
2439
+
2440
+ # BuzzVideo
2441
+ - regex: 'com\.topbuzz\.videoen/([\d\.]+)'
2442
+ name: 'BuzzVideo'
2443
+ version: '$1'
2444
+
2445
+ # GlobalProtect (https://www.paloaltonetworks.com/sase/globalprotect)
2446
+ - regex: 'GlobalProtect'
2447
+ name: 'GlobalProtect'
2448
+ version: ''
2449
+
2450
+ # Trade Me (https://play.google.com/store/apps/details?id=nz.co.trademe.trademe)
2451
+ - regex: 'Trade Me(?:/([\d\.]+))?'
2452
+ name: 'Trade Me'
2453
+ version: '$1'
2454
+
2455
+ # XING (https://www.xing.com/)
2456
+ - regex: 'XING(?:-iPhone)?/([\d\.]+)'
2457
+ name: 'XING'
2458
+ version: '$1'
2459
+
2460
+ # Bridge (https://quixel.com/bridge)
2461
+ - regex: 'Bridge/([\d\.]+)'
2462
+ name: 'Bridge'
2463
+ version: '$1'
2464
+
2465
+ # iPlayTV (https://apps.apple.com/us/app/iplaytv-iptv-m3u-player/id1072226801)
2466
+ - regex: 'iPlayTV/([\d\.]+)'
2467
+ name: 'iPlayTV'
2468
+ version: '$1'
2469
+
2470
+ # MOMO (https://www.immomo.com/)
2471
+ - regex: 'momoWebView/([\d\.]+)'
2472
+ name: 'MOMO'
2473
+ version: '$1'
2474
+
2475
+ # nate (https://play.google.com/store/apps/details?id=com.nate.android.portalmini)
2476
+ - regex: 'nate_app;appver:([\d\.]+)'
2477
+ name: 'nate'
2478
+ version: '$1'
2479
+
2480
+ # SoFi (https://play.google.com/store/apps/details?id=com.sofi.mobile)
2481
+ - regex: 'SOFI_APP_VERSION=([\d\.]+)'
2482
+ name: 'SoFi'
2483
+ version: '$1'
2484
+
2485
+ # WNYC (https://play.google.com/store/apps/details?id=org.wnyc.android)
2486
+ - regex: 'WNYC(?: App)?[/ ]?([\d\.]+)?'
2487
+ name: 'WNYC'
2488
+ version: '$1'
2489
+
2490
+ # Electron generic apps
2491
+ - regex: ' (?!(?:AppleWebKit|brave|Franz|Mailspring|Notion|Basecamp|Evernote|catalyst|ramboxpro|BlueMail|BeakerBrowser|TweakStyle|Colibri|Polypane|VibeMate|(?:d|LT|Glass|Sushi|Flash|OhHai)Browser|Sizzy))([a-z0-9]*)(?:-desktop|-electron-app)?/(\d+\.[\d.]+).*Electron/'
2492
+ name: '$1'
2493
+ version: '$2'
2494
+
2495
+ # Generic app
2496
+ - regex: 'appname/([^/; ]*)'
2497
+ name: '$1'
2498
+ version: ''
2499
+
2500
+ # AFNetworking generic
2501
+ - regex: '(?!AlohaBrowser)([^/;]*)/(\d+\.[\d.]+) \((?:iPhone|iPad); (?:iOS|iPadOS) [0-9\.]+; Scale/[0-9\.]+\)'
2502
+ name: '$1'
2503
+ version: '$2'