podcast_agent_parser 0.1.1 → 0.1.6

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: c554518b264fea34da4f2e1dc8d74223ed5f0033d675dcfe0a353a5471e0ba6f
4
- data.tar.gz: 84dd8038b82a9fe23cf39860b71bec6368a8111b604e7709212cebe89f6e41d6
3
+ metadata.gz: a8557fa6d96b90032b03b66ef85005998c92481433a4c1f05967effe15af75d8
4
+ data.tar.gz: 3cca25ecfa9a63c0062b608db6feddd416fbfada88e378b6b14a958fe8c54391
5
5
  SHA512:
6
- metadata.gz: dd5e3623f90ba2b3eb71b6e171a38b4c72197a3fc3fdd65c4d05cfa310239d5917f0a0aef0f909426bb9b8b07e7e163b5b66c40eaaf6fa81a534a57a7f7529a9
7
- data.tar.gz: 0c832eb21c52fd37e3b7a8943debfff1e3395a04d57d18502edabb45fc229779fdd0aa6d719a5a79b9d28b421c757429770452d5a1c5333731f731f4cd578e2e
6
+ metadata.gz: 31cc2ff22a235e577c4f59c5a919e242380842eec7ae75732481ad167ab17e4e69338602f1faf225bb0d0698c1630902cb5b04ba3a6945ebc15dbe66e53c2beb
7
+ data.tar.gz: 8c52efe43aaaef2bc042a03036d9392b33041666390ff8374213294d032508bec40159b4545322017b7d3d2d4167ab0d4db10f48590d284c19f479b142da8e5c
data/LICENSE CHANGED
@@ -1,4 +1,4 @@
1
- Copyright 2019 Dan Benjamin
1
+ Copyright 2020 Dan Benjamin
2
2
 
3
3
  Permission is hereby granted, free of charge, to any person obtaining
4
4
  a copy of this software and associated documentation files (the
data/README.md CHANGED
@@ -5,7 +5,7 @@ The Podcast Agent Parser is a user agent parser written in Ruby, using [regex pa
5
5
  Installation:
6
6
 
7
7
  ```
8
- gem 'podcast_agent_parser', '~> 0.1.1'
8
+ gem 'podcast_agent_parser', '~> 0.1.6'
9
9
  ```
10
10
 
11
11
  Then, look up your user agents like so:
@@ -50,6 +50,41 @@
50
50
  "svg": "amazon.svg",
51
51
  "bot": true
52
52
  },
53
+ {
54
+ "user_agents": [
55
+ "^AmazonMusic/\\..*iPhone"
56
+ ],
57
+ "examples": [
58
+ "AmazonMusic/9.15.2 iPhone7,2 CFNetwork/978.0.7 Darwin/18.7.0"
59
+ ],
60
+ "app": "Amazon Music Podcasts",
61
+ "description": "A music and podcasts streaming app",
62
+ "os": "ios",
63
+ "device": "phone",
64
+ "svg": "amazon.svg"
65
+ },
66
+ {
67
+ "user_agents": [
68
+ "^AmazonMusic$"
69
+ ],
70
+ "examples": [
71
+ "AmazonMusic"
72
+ ],
73
+ "app": "Amazon Music Podcasts",
74
+ "description": "A music and podcasts streaming app",
75
+ "os": "android",
76
+ "developer_notes": "This appears to be the Android UA, by testing",
77
+ "svg": "amazon.svg"
78
+ },
79
+ {
80
+ "user_agents": [
81
+ "^Amazon Music Podcast"
82
+ ],
83
+ "app": "Amazon Music Podcasts",
84
+ "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"
87
+ },
53
88
  {
54
89
  "user_agents": [
55
90
  "^AlexaMediaPlayer/5\\."
@@ -83,7 +118,8 @@
83
118
  "de.danoeh.antennapod/1.7.3b (Linux;Android 8.0.0) ExoPlayerLib/2.9.3"
84
119
  ],
85
120
  "info_url": "https://github.com/AntennaPod/AntennaPod",
86
- "os": "android"
121
+ "os": "android",
122
+ "developer_notes": "The de.danoeh version was used when streaming only, and will been phased out as of v2"
87
123
  },
88
124
  {
89
125
  "user_agents": [
@@ -95,12 +131,13 @@
95
131
  "user_agents": [
96
132
  "^AppleCoreMedia/1\\..*iPod"
97
133
  ],
98
- "app": "Apple Podcasts",
99
134
  "device": "mp3_player",
100
135
  "examples": [
101
136
  "AppleCoreMedia/1.0.0.16G114 (iPod touch; U; CPU OS 12_4_2 like Mac OS X; en_us)"
102
137
  ],
103
- "os": "ios"
138
+ "os": "ios",
139
+ "description": "AppleCoreMedia library",
140
+ "developer_notes": "This is a library used by a number of apps when progressively downloading podcasts. It is not (just) Apple Podcasts, and should not be treated as an Apple Podcasts useragent"
104
141
  },
105
142
  {
106
143
  "user_agents": [
@@ -109,72 +146,71 @@
109
146
  "examples": [
110
147
  "AppleCoreMedia/1.0.0.19A583 (Macintosh; U; Intel Mac OS X 10_15; en_us)"
111
148
  ],
112
- "app": "Apple Podcasts",
113
149
  "device": "pc",
114
150
  "os": "macos",
115
- "description": "The Apple Podcasts app on MacOS Catalina and above",
116
- "developer_notes": "Used when progressively downloading podcasts"
151
+ "description": "AppleCoreMedia library",
152
+ "developer_notes": "This is a library used by a number of apps when progressively downloading podcasts. It is not (just) Apple Podcasts, and should not be treated as an Apple Podcasts useragent"
117
153
  },
118
154
  {
119
155
  "user_agents": [
120
156
  "^AppleCoreMedia/1\\..*iPhone"
121
157
  ],
122
- "app": "Apple Podcasts",
123
158
  "device": "phone",
124
159
  "examples": [
125
160
  "AppleCoreMedia/1.0.0.15G77 (iPhone; U; CPU OS 11_4_1 like Mac OS X; en_us)"
126
161
  ],
127
- "os": "ios"
162
+ "os": "ios",
163
+ "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"
128
165
  },
129
166
  {
130
167
  "user_agents": [
131
168
  "^AppleCoreMedia/1\\..*iPad"
132
169
  ],
133
- "app": "Apple Podcasts",
134
170
  "device": "tablet",
135
171
  "examples": [
136
172
  "AppleCoreMedia/1.0.0.17A860 (iPad; U; CPU OS 13_1_2 like Mac OS X; en_us)"
137
173
  ],
138
- "os": "ios"
174
+ "os": "ios",
175
+ "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"
139
177
  },
140
178
  {
141
179
  "user_agents": [
142
180
  "^AppleCoreMedia/1\\..*HomePod"
143
181
  ],
144
- "app": "Apple Podcasts",
145
182
  "device": "speaker",
146
183
  "examples": [
147
184
  "AppleCoreMedia/1.0.0.16G78 (HomePod; U; CPU OS 12_4 like Mac OS X; en_us)"
148
185
  ],
149
- "os": "homepod_os"
186
+ "os": "homepod_os",
187
+ "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"
150
189
  },
151
190
  {
152
191
  "user_agents": [
153
192
  "^AppleCoreMedia/1\\..*Apple TV"
154
193
  ],
155
- "app": "Apple Podcasts",
156
194
  "device": "tv",
157
195
  "examples": [
158
196
  "AppleCoreMedia/1.0.0.17J586 (Apple TV; U; CPU OS 13_0 like Mac OS X; en_us)"
159
197
  ],
160
- "os": "tvos"
198
+ "os": "tvos",
199
+ "description": "AppleCoreMedia library",
200
+ "developer_notes": "This is a library used by a number of apps when progressively downloading podcasts. It is not (just) Apple Podcasts, and should not be treated as an Apple Podcasts useragent"
161
201
  },
162
202
  {
163
203
  "user_agents": [
164
- "^AppleCoreMedia/1\\..*Apple Watch",
165
- "watchOS/"
204
+ "^AppleCoreMedia/1\\..*Apple Watch"
166
205
  ],
167
- "app": "Apple Podcasts",
168
206
  "device": "watch",
169
- "examples": [
170
- "atc/1.0 watchOS/6.0.1 model/Watch4,1 hwp/t8006 build/17R605 (6; dt:190)"
171
- ],
172
- "os": "watchos"
207
+ "os": "watchos",
208
+ "description": "AppleCoreMedia library",
209
+ "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"
173
210
  },
174
211
  {
175
212
  "user_agents": [
176
213
  "^Podcasts/.*\\(.*\\)",
177
-
178
214
  "^Balados/.*\\(.*\\)",
179
215
  "^Podcasti/.*\\(.*\\)",
180
216
  "^Podcastit/.*\\(.*\\)",
@@ -183,6 +219,7 @@
183
219
  "^Podcast’ler/.*\\(.*\\)",
184
220
  "^Podkaster/.*\\(.*\\)",
185
221
  "^Podcaster/.*\\(.*\\)",
222
+ "^Podcastok/.*\\(.*\\)",
186
223
  "^Подкасти/.*\\(.*\\)",
187
224
  "^Подкасты/.*\\(.*\\)",
188
225
  "^פודקאסטים/.*\\(.*\\)",
@@ -200,12 +237,11 @@
200
237
  "device": "pc",
201
238
  "os": "macos",
202
239
  "description": "The Apple Podcasts app on MacOS Catalina and above",
203
- "developer_notes": "Used when downloading podcasts (not progressive downloads), with support for the following languages: Arabic, Chinese, Finnish, French, English, Hebrew, Hindi, Korean, Polish, Romanian, Russian, Serbian, Slovenian, Swedish, Thai, Turkish."
240
+ "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."
204
241
  },
205
242
  {
206
243
  "user_agents": [
207
244
  "^Podcasts/.*\\d$",
208
-
209
245
  "^Balados/.*\\d$",
210
246
  "^Podcasti/.*\\d$",
211
247
  "^Podcastit/.*\\d$",
@@ -214,7 +250,7 @@
214
250
  "^Podcast’ler/.*\\d$",
215
251
  "^Podkaster/.*\\d$",
216
252
  "^Podcaster/.*\\d$",
217
- "^Podcast/.*\\d$",
253
+ "^Podcastok/.*\\d$",
218
254
  "^Подкасти/.*\\d$",
219
255
  "^Подкасты/.*\\d$",
220
256
  "^פודקאסטים/.*\\d$",
@@ -227,10 +263,9 @@
227
263
  "app": "Apple Podcasts",
228
264
  "os": "ios",
229
265
  "description": "The Apple Podcasts app on devices other than MacOS Catalina and above",
230
- "developer_notes": "Used when downloading podcasts (not progressive downloads), with support for the following languages: Arabic, Chinese, Finnish, French, English, Hebrew, Hindi, Korean, Polish, Romanian, Russian, Serbian, Slovenian, Swedish, Thai, Turkish",
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",
231
267
  "examples": [
232
- "Podcasts/2.6",
233
- "Podcast/1150.47 CFNetwork/811.5.4 Darwin/16.6.0"
268
+ "Podcasts/2.6"
234
269
  ]
235
270
  },
236
271
  {
@@ -319,6 +354,18 @@
319
354
  "device": "pc",
320
355
  "os": "windows"
321
356
  },
357
+ {
358
+ "user_agents": [
359
+ "BroadwayPodcastNetwork/iOS"
360
+ ],
361
+ "app": "Broadway Podcast Network",
362
+ "description": "The Broadway Podcast Network iOS App",
363
+ "device": "phone",
364
+ "examples": [
365
+ "BroadwayPodcastNetwork/iOS"
366
+ ],
367
+ "os": "ios"
368
+ },
322
369
  {
323
370
  "user_agents": [
324
371
  "^Cast(?:b|B)ox/.+Android"
@@ -416,13 +463,33 @@
416
463
  ],
417
464
  "app": "Deezer",
418
465
  "device": "phone",
419
- "os": "android"
466
+ "os": "android",
467
+ "examples": [
468
+ "Deezer/6.2.2.80 (Android; 9; Mobile; fr) samsung SM-G950F",
469
+ "Deezer/6.2.3.96 (Android; 10; Mobile; fr) samsung SM-A405FN"
470
+ ],
471
+ "info_url": "https://play.google.com/store/apps/details?id=deezer.android.app"
472
+ },
473
+ {
474
+ "user_agents": [
475
+ "^Deezer/.*CFNetwork/"
476
+ ],
477
+ "app": "Deezer",
478
+ "os": "ios",
479
+ "examples": [
480
+ "Deezer/8.13.0.4 CFNetwork/1125.2 Darwin/19.4.0"
481
+ ],
482
+ "info_url": "https://apps.apple.com/us/app/deezer-music-podcast-player/id292738169"
420
483
  },
421
484
  {
422
485
  "user_agents": [
423
486
  "^Deezer"
424
487
  ],
425
- "app": "Deezer"
488
+ "app": "Deezer",
489
+ "examples": [
490
+ "Deezer/4.20.0 (Electron; windows/10.0.18362; Desktop; fr)",
491
+ "Deezer/4.20.0 (Electron; osx/10.14.6; Desktop; fr)"
492
+ ]
426
493
  },
427
494
  {
428
495
  "user_agents": [
@@ -559,7 +626,8 @@
559
626
  "user_agents": [
560
627
  "^Lavf/"
561
628
  ],
562
- "app": "ffmpeg"
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."
563
631
  },
564
632
  {
565
633
  "user_agents": [
@@ -617,6 +685,7 @@
617
685
  ],
618
686
  "app": "Google Home",
619
687
  "device": "speaker",
688
+ "description": "Google Podcasts on smart speakers",
620
689
  "os": "google_assistant"
621
690
  },
622
691
  {
@@ -625,22 +694,23 @@
625
694
  ],
626
695
  "app": "Google Podcasts",
627
696
  "device": "speaker",
697
+ "description": "Google Podcasts on smart speakers",
628
698
  "os": "google_assistant"
629
699
  },
630
700
  {
631
701
  "user_agents": [
632
- "iPhone;.*GSA/"
633
- ],
634
- "app": "Google Podcasts",
635
- "device": "phone",
636
- "os": "ios"
637
- },
638
- {
639
- "user_agents": [
640
- "iPad;.*GSA/"
702
+ "(?:(?:iPhone|iPad|iPod touch);.+)?GSA/",
703
+ "^Podcasts$",
704
+ "^GooglePodcasts/"
641
705
  ],
642
706
  "app": "Google Podcasts",
643
- "device": "tablet",
707
+ "description": "Google Podcasts on iOS",
708
+ "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
+ ],
713
+ "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'.",
644
714
  "os": "ios"
645
715
  },
646
716
  {
@@ -648,7 +718,12 @@
648
718
  "(?:Android;.+)?GSA/"
649
719
  ],
650
720
  "app": "Google Podcasts",
651
- "os": "android"
721
+ "os": "android",
722
+ "description": "Google Podcasts on Android (the app or player)",
723
+ "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
+ ],
726
+ "developer_notes": "*GSA/ is used in the Google app when searching and playing podcasts, and in the Google Podcasts app"
652
727
  },
653
728
  {
654
729
  "user_agents": [
@@ -782,9 +857,30 @@
782
857
  },
783
858
  {
784
859
  "user_agents": [
785
- "^iHeartRadio/"
860
+ "^iHeartRadio/.*Android"
861
+ ],
862
+ "app": "iHeartRadio",
863
+ "os": "android",
864
+ "examples": [
865
+ "iHeartRadio/9.19.0 (Android 10; SM-G960U Build/QP1A.190711.020)",
866
+ "iHeartRadio/9.19.0 (Android 9; SM-G950U Build/PPR1.180610.011)"
867
+ ],
868
+ "info_url": "https://play.google.com/store/apps/details?id=com.clearchannel.iheartradio.controller"
869
+ },
870
+ {
871
+ "user_agents": [
872
+ "^iHeartRadio/.* CFNetwork/",
873
+ "^iHeartRadio/.* iOS"
786
874
  ],
787
- "app": "iHeartRadio"
875
+ "app": "iHeartRadio",
876
+ "os": "ios",
877
+ "examples": [
878
+ "iHeartRadio/2020052002 CFNetwork/1125.2 Darwin/19.4.0",
879
+ "iHeartRadio/9.20.0 (iPhone; iOS 13.4.1; iPhone11,8)",
880
+ "iHeartRadio/9.20.0 (iPad; iOS 13.4.1; iPad6,12)",
881
+ "iHeartRadio/9.7.0 (iPod touch; iOS 12.4.5; iPod7,1)"
882
+ ],
883
+ "info_url": "https://apps.apple.com/us/app/iheart-radio-music-podcasts/id290638154"
788
884
  },
789
885
  {
790
886
  "user_agents": [
@@ -845,6 +941,33 @@
845
941
  "info_url": "https://www.jriver.com/",
846
942
  "os": "windows"
847
943
  },
944
+ {
945
+ "user_agents": [
946
+ ".*KAIOS/"
947
+ ],
948
+ "app": "KAIOS podcast app",
949
+ "device": "phone",
950
+ "os": "kaios",
951
+ "info_url": "https://kaiostech.com",
952
+ "examples": [
953
+ "Mozilla/5.0 (Mobile; LYF/F271i/LYF_F271i-000-01-20-101019; Android; rv:48.0) Gecko/48.0 Firefox/48.0 KAIOS/2.5"
954
+ ],
955
+ "developer_notes": "This is a standard useragent for KaiOS, the cut-down operating system for mobile phones in developing countries. Watch out - it may also contain Android."
956
+ },
957
+ {
958
+ "user_agents": [
959
+ ".*PodLP/"
960
+ ],
961
+ "app": "PodLP podcast app for KaiOS",
962
+ "device": "phone",
963
+ "os": "kaios",
964
+ "info_url": "https://podlp.com",
965
+ "examples": [
966
+ "Mozilla/5.0 (Mobile; LYF/F271i/LYF_F271i-000-01-20-101019; Android; rv:48.0) Gecko/48.0 Firefox/48.0 KAIOS/2.5 PodLP/1.3.2.0"
967
+ ],
968
+ "description": "PodLP is the first podcast app available for KaiOS smart feature phones on the KaiStore.",
969
+ "developer_notes": "Introduced in version v1.2.0.0 for limited content (downloads); available for all content after v1.3.0.0"
970
+ },
848
971
  {
849
972
  "user_agents": [
850
973
  "^Laughable.+iOS"
@@ -853,6 +976,45 @@
853
976
  "device": "phone",
854
977
  "os": "ios"
855
978
  },
979
+ {
980
+ "user_agents": [
981
+ "^com.jio.media.jiobeats.jiosaavn",
982
+ "^com.jio.media.jiobeats",
983
+ "^com.saavn.android",
984
+ "^saavn"
985
+ ],
986
+ "app": "JioSaavn",
987
+ "device": "phone",
988
+ "info_url": "https://www.jiosaavn.com/",
989
+ "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."
991
+ },
992
+ {
993
+ "user_agents": [
994
+ "^lamarr-iOS",
995
+ "^TheEconomist-Lamarr-ios"
996
+ ],
997
+ "app": "The Economist",
998
+ "device": "phone",
999
+ "os": "ios",
1000
+ "examples": [
1001
+ "lamarr-iOS-2.20.3-116",
1002
+ "TheEconomist-Lamarr-ios-2.22.2-12002"
1003
+ ]
1004
+ },
1005
+ {
1006
+ "user_agents": [
1007
+ "^lamarr-android",
1008
+ "^TheEconomist-Lamarr-android"
1009
+ ],
1010
+ "app": "The Economist",
1011
+ "device": "phone",
1012
+ "os": "android",
1013
+ "examples": [
1014
+ "lamarr-android-2.18.1-21810",
1015
+ "TheEconomist-Lamarr-android-2.22.2-12002"
1016
+ ]
1017
+ },
856
1018
  {
857
1019
  "user_agents": [
858
1020
  "LG Player"
@@ -1067,10 +1229,16 @@
1067
1229
  },
1068
1230
  {
1069
1231
  "user_agents": [
1070
- "iOS.*The Podcast App/"
1232
+ "iOS.*The Podcast App/",
1233
+ "com.evolve.podcast/"
1071
1234
  ],
1072
1235
  "app": "The Podcast App",
1073
- "os": "ios"
1236
+ "os": "ios",
1237
+ "examples": [
1238
+ "podcast/2358 iOS/Version 13.5.1 (Build 017F80) The Podcast App/3.22.1",
1239
+ "com.evolve.podcast/3.22.1 (iPhone; ) (build 2358, iOS 13.5.1)"
1240
+ ],
1241
+ "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."
1074
1242
  },
1075
1243
  {
1076
1244
  "user_agents": [
@@ -1101,15 +1269,56 @@
1101
1269
  },
1102
1270
  {
1103
1271
  "user_agents": [
1104
- "^PodCruncher/"
1272
+ "^PodCruncher/.* CFNetwork/"
1273
+ ],
1274
+ "app": "PodCruncher",
1275
+ "os": "ios",
1276
+ "examples": [
1277
+ "PodCruncher/3.7.1 CFNetwork/1125.2 Darwin/19.4.0",
1278
+ "PodCruncher/3.7.1 CFNetwork/978.0.7 Darwin/18.7.0"
1279
+ ],
1280
+ "info_url": "https://apps.apple.com/us/app/podcruncher-podcast-player/id421894356"
1281
+ },
1282
+ {
1283
+ "user_agents": [
1284
+ "^Podbean/Android App",
1285
+ "^Podbean/Android generic"
1286
+ ],
1287
+ "app": "Podbean",
1288
+ "os": "android",
1289
+ "examples": [
1290
+ "Podbean/Android App 7.6.4 (http://podbean.com),1927526fe23b5acf535b3e91b64cee95",
1291
+ "Podbean/Android generic 1.1.2 (http://podbean.com),9376c517335ded9a716022cc1f15c884"
1292
+ ],
1293
+ "info_url": "https://play.google.com/store/apps/details?id=com.podbean.app.podcast"
1294
+ },
1295
+ {
1296
+ "user_agents": [
1297
+ "^Podbean/iOS"
1105
1298
  ],
1106
- "app": "PodCruncher"
1299
+ "app": "Podbean",
1300
+ "os": "ios",
1301
+ "examples": [
1302
+ "Podbean/iOS (http://podbean.com) 5.2.0 - 19c4ff292bd09cd2ccbad22cc6755a45"
1303
+ ],
1304
+ "info_url": "https://apps.apple.com/us/app/podbean-podcast-app-player/id973361050"
1305
+ },
1306
+ {
1307
+ "user_agents": [
1308
+ "^Podhero/"
1309
+ ],
1310
+ "app": "Podhero",
1311
+ "bot": true,
1312
+ "info_url": "https://podhero.com",
1313
+ "description": "Podhero feed crawler. Supports websub."
1107
1314
  },
1108
1315
  {
1109
1316
  "user_agents": [
1110
- "^Podbean/"
1317
+ "^Podhero/"
1111
1318
  ],
1112
- "app": "Podbean"
1319
+ "app": "Podhero",
1320
+ "info_url": "https://podhero.com",
1321
+ "description": "Podhero app on iOS and Android."
1113
1322
  },
1114
1323
  {
1115
1324
  "user_agents": [
@@ -1118,6 +1327,41 @@
1118
1327
  "app": "Podkicker Pro",
1119
1328
  "os": "android"
1120
1329
  },
1330
+ {
1331
+ "user_agents": [
1332
+ "PodLink"
1333
+ ],
1334
+ "app": "PodLink",
1335
+ "info_url": "https://pod.link/faq/crawler"
1336
+ },
1337
+ {
1338
+ "user_agents": [
1339
+ "^PodMN/Android"
1340
+ ],
1341
+ "description": "Minnesota Podcasts Live Here",
1342
+ "examples": [
1343
+ "PodMN/Android 1.2.6 (Android 7.1.1; SM-J510FN Build/NMF26X)"
1344
+ ],
1345
+ "info_url": "https://play.google.com/store/apps/details?id=com.podmn.app",
1346
+ "app": "PodMN",
1347
+ "device": "phone",
1348
+ "os": "android",
1349
+ "svg": "podmn.svg"
1350
+ },
1351
+ {
1352
+ "user_agents": [
1353
+ "^PodMN/iOS"
1354
+ ],
1355
+ "description": "Minnesota Podcasts Live Here",
1356
+ "examples": [
1357
+ "PodMN/iOS 1.2.6 (iPhone XR/13.6.1)"
1358
+ ],
1359
+ "info_url": "https://apps.apple.com/us/app/podmn/id1464935818",
1360
+ "app": "PodMN",
1361
+ "device": "phone",
1362
+ "os": "ios",
1363
+ "svg": "podmn.svg"
1364
+ },
1121
1365
  {
1122
1366
  "user_agents": [
1123
1367
  "PodnewsBot"
@@ -1127,6 +1371,32 @@
1127
1371
  "description": "Podnews runs a number of bots to read and test RSS and audio files",
1128
1372
  "info_url": "http://podnews.net"
1129
1373
  },
1374
+ {
1375
+ "user_agents": [
1376
+ "Podyssey App"
1377
+ ],
1378
+ "app": "Podyssey",
1379
+ "description": "Podyssey is a community for people that love podcasts. It's like Goodreads, but for podcasts.",
1380
+ "info_url": "https://podyssey.fm"
1381
+ },
1382
+ {
1383
+ "user_agents": [
1384
+ "com.toysinboxes.Echo"
1385
+ ],
1386
+ "app": "Podyssey",
1387
+ "description": "Podyssey is a community for people that love podcasts. It's like Goodreads, but for podcasts.",
1388
+ "info_url": "https://podyssey.fm",
1389
+ "os": "ios"
1390
+ },
1391
+ {
1392
+ "user_agents": [
1393
+ "fm.podyssey.podcasts"
1394
+ ],
1395
+ "app": "Podyssey",
1396
+ "description": "Podyssey is a community for people that love podcasts. It's like Goodreads, but for podcasts.",
1397
+ "info_url": "https://podyssey.fm",
1398
+ "os": "android"
1399
+ },
1130
1400
  {
1131
1401
  "user_agents": [
1132
1402
  "python-requests"
@@ -1168,10 +1438,14 @@
1168
1438
  {
1169
1439
  "user_agents": [
1170
1440
  "RadioPublic iOS",
1171
- "RadioPublic.+CFNetwork"
1441
+ "RadioPublic.+CFNetwork",
1442
+ "^RadioPublic/iOS"
1172
1443
  ],
1173
1444
  "app": "RadioPublic",
1174
1445
  "description": "RadioPublic’s free, easy to use podcast player makes listening to podcasts simple, enjoyable, and fun.",
1446
+ "examples": [
1447
+ "RadioPublic/iOS-2.0"
1448
+ ],
1175
1449
  "info_url": "https://radiopublic.com/",
1176
1450
  "svg": "radiopublic.svg",
1177
1451
  "os": "ios"
@@ -1263,9 +1537,10 @@
1263
1537
  },
1264
1538
  {
1265
1539
  "user_agents": [
1266
- "^Spotify/\\d+"
1540
+ "^Spotify/1.0$"
1267
1541
  ],
1268
- "bot": true
1542
+ "bot": true,
1543
+ "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."
1269
1544
  },
1270
1545
  {
1271
1546
  "user_agents": [
@@ -1305,6 +1580,16 @@
1305
1580
  ],
1306
1581
  "app": "Subcast"
1307
1582
  },
1583
+ {
1584
+ "user_agents": [
1585
+ "Sonnet"
1586
+ ],
1587
+ "app": "Sonnet",
1588
+ "description": "Sonnet is a simple, easy to use podcast app aimed at new listeners",
1589
+ "os": "android",
1590
+ "info_url": "https://sonnet.fm",
1591
+ "svg": "sonnet.svg"
1592
+ },
1308
1593
  {
1309
1594
  "user_agents": [
1310
1595
  "Sonos"
@@ -1375,7 +1660,8 @@
1375
1660
  "user_agents": [
1376
1661
  "^Swoot/"
1377
1662
  ],
1378
- "app": "Swoot"
1663
+ "app": "Swoot",
1664
+ "description": "Renamed to Podhero in June 2020"
1379
1665
  },
1380
1666
  {
1381
1667
  "user_agents": [
@@ -1383,11 +1669,63 @@
1383
1669
  ],
1384
1670
  "bot": true
1385
1671
  },
1672
+ {
1673
+ "user_agents": [
1674
+ "^TuneIn Radio/.*;Android"
1675
+ ],
1676
+ "examples": [
1677
+ "TuneIn Radio/24.2 (Linux;Android 10) ExoPlayerLib/2.11.4"
1678
+ ],
1679
+ "app": "TuneIn Radio",
1680
+ "os": "android",
1681
+ "info_url": "https://play.google.com/store/apps/details?id=tunein.player"
1682
+ },
1683
+ {
1684
+ "user_agents": [
1685
+ "^TuneIn Radio Pro/.*;Android"
1686
+ ],
1687
+ "examples": [
1688
+ "TuneIn Radio Pro/23.3.2 (Linux;Android 5.1.1) ExoPlayerLib/2.10.7"
1689
+ ],
1690
+ "app": "TuneIn Pro",
1691
+ "os": "android",
1692
+ "info_url": "https://play.google.com/store/apps/details?id=radiotime.player"
1693
+ },
1694
+ {
1695
+ "user_agents": [
1696
+ "^TuneIn(%20| )Radio/.*(CFNetwork/|iPhone)"
1697
+ ],
1698
+ "examples": [
1699
+ "TuneIn Radio/1366 CFNetwork/1121.2.2 Darwin/19.3.0",
1700
+ "TuneIn Radio/18.1; iPhone12,8; iOS/13.4.1",
1701
+ "TuneIn%20Radio/1383 CFNetwork/1125.2 Darwin/19.4.0"
1702
+ ],
1703
+ "app": "TuneIn Radio",
1704
+ "os": "ios",
1705
+ "info_url": "https://apps.apple.com/us/app/tunein-radio-live-news-music/id418987775"
1706
+ },
1707
+ {
1708
+ "user_agents": [
1709
+ "^TuneIn(%20| )Radio(%20| )Pro/.*CFNetwork/"
1710
+ ],
1711
+ "examples": [
1712
+ "TuneIn Radio Pro/1361 CFNetwork/1121.2.2 Darwin/19.3.0",
1713
+ "TuneIn%20Radio%20Pro/1383 CFNetwork/1125.2 Darwin/19.4.0"
1714
+ ],
1715
+ "app": "TuneIn Pro",
1716
+ "os": "ios",
1717
+ "info_url": "https://apps.apple.com/us/app/tunein-pro-radio-sports/id319295332"
1718
+ },
1386
1719
  {
1387
1720
  "user_agents": [
1388
1721
  "^TuneIn"
1389
1722
  ],
1390
- "app": "TuneIn"
1723
+ "examples": [
1724
+ "TuneIn Radio"
1725
+ ],
1726
+ "app": "TuneIn Radio",
1727
+ "info_url": "https://tunein.com/",
1728
+ "developer_notes": "Other versions of this app use many other user agents."
1391
1729
  },
1392
1730
  {
1393
1731
  "user_agents": [
@@ -1472,5 +1810,150 @@
1472
1810
  "stagefright/"
1473
1811
  ],
1474
1812
  "os": "android"
1813
+ },
1814
+ {
1815
+ "user_agents": [
1816
+ "^^com\\.evolve\\.podcast/"
1817
+ ],
1818
+ "app": "The Podcast App",
1819
+ "device": "phone",
1820
+ "examples": [
1821
+ "com.evolve.podcast/3.10.1 (iPhone; ) (build 951, iOS 13.3)"
1822
+ ],
1823
+ "os": "ios"
1824
+ },
1825
+ {
1826
+ "user_agents": [
1827
+ "^Podimo/.*iOS"
1828
+ ],
1829
+ "app": "Podimo",
1830
+ "device": "phone",
1831
+ "os": "ios",
1832
+ "examples": [
1833
+ "Podimo/1.11.3 build 121/iOS 13.3"
1834
+ ],
1835
+ "info_url": "https://apps.apple.com/dk/app/podimo-a-world-of-podcasts/id1476538730"
1836
+ },
1837
+ {
1838
+ "user_agents": [
1839
+ "^Podimo/.*Android"
1840
+ ],
1841
+ "app": "Podimo",
1842
+ "device": "phone",
1843
+ "os": "android",
1844
+ "examples": [
1845
+ "Podimo/1.11.3 build 91/Android 28"
1846
+ ],
1847
+ "info_url": "https://play.google.com/store/apps/details?id=com.podimo&hl=en_US"
1848
+ },
1849
+ {
1850
+ "user_agents": [
1851
+ "BingPreview/"
1852
+ ],
1853
+ "bot": true
1854
+ },
1855
+ {
1856
+ "user_agents": [
1857
+ "^msnbot/"
1858
+ ],
1859
+ "bot": true
1860
+ },
1861
+ {
1862
+ "user_agents": [
1863
+ "^Deezer Podcasters\/1\\.0"
1864
+ ],
1865
+ "bot": true
1866
+ },
1867
+ {
1868
+ "user_agents": [
1869
+ "^got/"
1870
+ ],
1871
+ "bot": true,
1872
+ "info_url": "https://play.google.com/store/apps/details?id=com.podimo&hl=en_US",
1873
+ "developer_notes": "Got is a HTTP library for NodeJs"
1874
+ },
1875
+ {
1876
+ "user_agents": [
1877
+ "INA dlweb"
1878
+ ],
1879
+ "bot": true,
1880
+ "developer_notes": "Institut National de l'Audiovisuel is a repository of all French radio and television audiovisual archives."
1881
+ },
1882
+ {
1883
+ "user_agents": [
1884
+ "^SoundOn/[\\d\\.]+\\s+\\(Linux;Android",
1885
+ "^SoundOn\/[^12]\\.\\d+\\.\\d+$",
1886
+ "^SoundOn\/1\\.[^1][^0-2]?\\.\\d+$"
1887
+ ],
1888
+ "app": "SoundOn",
1889
+ "device": "phone",
1890
+ "examples": [
1891
+ "SoundOn/1.9.17 (Linux;Android 10) ExoPlayerLib/2.9.4"
1892
+ ],
1893
+ "os": "android"
1894
+ },
1895
+ {
1896
+ "user_agents": [
1897
+ "^SoundOn/1\\.1[0-2]\\.\\d+$",
1898
+ "^SoundOn/2\\.\\d+\\.\\d+$",
1899
+ "^SoundOn/[\\d\\.]+\\s+\\(iOS"
1900
+ ],
1901
+ "app": "SoundOn",
1902
+ "device": "phone",
1903
+ "examples": [
1904
+ "SoundOn/1.10.1",
1905
+ "SoundOn/2.2.0",
1906
+ "SoundOn/2.2.2 (iOS)"
1907
+ ],
1908
+ "os": "ios"
1909
+ },
1910
+ {
1911
+ "user_agents": [
1912
+ "^SoundOn/[\\d\\.]+\\s+\\(bot"
1913
+ ],
1914
+ "bot": true
1915
+ },
1916
+ {
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"
1475
1958
  }
1476
1959
  ]
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: podcast_agent_parser
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.1.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dan Benjamin
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-11-08 00:00:00.000000000 Z
11
+ date: 2020-09-28 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: User agent parser written in Ruby using regex patterns from the Open
14
14
  Podcast Analytics Working Group.