musora-content-services 1.2.5 → 1.3.2

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 (40) hide show
  1. package/.prettierignore +5 -0
  2. package/.prettierrc +8 -0
  3. package/.yarnrc.yml +1 -0
  4. package/CHANGELOG.md +11 -0
  5. package/README.md +0 -0
  6. package/babel.config.cjs +1 -1
  7. package/docs/config.js.html +0 -0
  8. package/docs/index.html +0 -0
  9. package/docs/module-Config.html +0 -0
  10. package/docs/module-Railcontent-Services.html +0 -0
  11. package/docs/module-Sanity-Services.html +0 -0
  12. package/docs/railcontent.js.html +0 -0
  13. package/docs/sanity.js.html +0 -0
  14. package/jest.config.js +9 -10
  15. package/jsdoc.json +17 -12
  16. package/package.json +2 -1
  17. package/src/contentMetaData.js +1190 -1131
  18. package/src/contentTypeConfig.js +492 -387
  19. package/src/filterBuilder.js +163 -145
  20. package/src/index.d.ts +227 -237
  21. package/src/index.js +226 -236
  22. package/src/services/config.js +12 -12
  23. package/src/services/contentLikes.js +33 -32
  24. package/src/services/contentProgress.js +233 -200
  25. package/src/services/dataContext.js +99 -93
  26. package/src/services/lastUpdated.js +7 -7
  27. package/src/services/railcontent.js +368 -364
  28. package/src/services/sanity.js +983 -955
  29. package/src/services/userPermissions.js +12 -14
  30. package/test/contentLikes.test.js +89 -86
  31. package/test/contentProgress.test.js +229 -236
  32. package/test/initializeTests.js +54 -51
  33. package/test/lastUpdated.test.js +20 -18
  34. package/test/live/contentProgressLive.test.js +135 -137
  35. package/test/live/railcontentLive.test.js +12 -14
  36. package/test/localStorageMock.js +16 -16
  37. package/test/log.js +5 -5
  38. package/test/sanityQueryService.test.js +857 -821
  39. package/test/userPermissions.test.js +15 -15
  40. package/tools/generate-index.cjs +108 -111
@@ -1,1202 +1,1261 @@
1
-
2
-
3
1
  // Metadata is taken from the 'common' element and then merged with the <brand> metadata.
4
2
  // Brand values are prioritized and will override the same property in the 'common' element.
5
3
  const commonMetadata = {
6
- 'instructor': {
7
- name: 'Coaches',
8
- icon: 'icon-coach',
9
- allowableFilters: ['genre', 'focus'],
10
- sortBy: '-published_on',
11
- },
12
- 'challenge': {
13
- name: 'Challenges',
14
- icon: 'icon-courses',
15
- description: "... ",
16
- allowableFilters: ['difficulty', 'topic', 'genre'],
17
- sortBy: '-published_on',
18
- modalText: 'Challenges are a series of guided lessons designed to build your skills day-by-day.',
19
- tabs: [
20
- {
21
- name: 'All',
22
- short_name: 'All',
23
- value: '',
24
- },
25
- {
26
- name: 'Skill Level',
27
- short_name: 'SKILL LEVEL',
28
- is_group_by: true,
29
- value: 'difficulty_string',
30
- },
31
- {
32
- name: 'Genres',
33
- short_name: 'Genres',
34
- is_group_by: true,
35
- value: 'genre',
36
- },
37
- {
38
- name: 'Completed',
39
- short_name: 'COMPLETED',
40
- value: 'completed'
41
- },
42
- {
43
- name: 'Owned Challenges',
44
- short_name: 'OWNED CHALLENGES',
45
- value: 'owned',
46
- },
47
- ],
48
- },
49
- 'challenge-part': {
50
- name: 'Challenge Part',
51
- icon: 'icon-courses',
52
- description: "... ",
53
- allowableFilters: ['difficulty', 'genre', 'topic'],
54
- sortBy: '-published_on',
55
- },
56
- 'course': {
57
- name: "Courses",
58
- allowableFilters: ['difficulty', 'genre', 'essential', 'theory', 'creativity', 'lifestyle'],
59
- icon: "icon-courses",
60
- tabs: [
61
- {
62
- name: 'Courses',
63
- short_name: 'COURSES',
64
- value: '',
65
- },
66
- {
67
- name: 'Instructors',
68
- short_name: 'INSTRUCTORS',
69
- is_group_by: true,
70
- value: 'instructor',
71
- },
72
- {
73
- name: 'Genres',
74
- short_name: 'Genres',
75
- is_group_by: true,
76
- value: 'genre',
77
- },
78
- ],
79
- },
80
- 'pack': {
81
- allowableFilters: [],
82
- },
83
- 'student-review': {
84
- name: "Student Reviews",
85
- icon: "icon-student-focus",
86
- allowableFilters: ['difficulty', 'genre', 'essential', 'theory', 'creativity', 'lifestyle'],
87
- sortBy: '-published_on',
88
- tabs: [
89
- {
90
- name: 'Lessons',
91
- short_name: 'LESSONS',
92
- value: '',
93
- },
94
- {
95
- name: 'Instructors',
96
- short_name: 'INSTRUCTORS',
97
- is_group_by: true,
98
- value: 'instructor',
99
- },
100
- {
101
- name: 'Genres',
102
- short_name: 'Genres',
103
- is_group_by: true,
104
- value: 'genre',
105
- },
106
- ],
107
- },
108
- 'song': {
109
- name: "Songs",
110
- icon: "icon-songs",
111
- description: "Play the songs you love with note-for-note transcriptions and handy practice tools.",
112
- allowableFilters: ['difficulty', 'genre', 'lifestyle', 'instrumentless'],
113
- tabs: [
114
- {
115
- name: 'Songs',
116
- short_name: 'Songs',
117
- value: '',
118
- },
119
- {
120
- name: 'Artists',
121
- short_name: 'ARTISTS',
122
- is_group_by: true,
123
- value: 'artist',
124
- },
125
- {
126
- name: 'Genres',
127
- short_name: 'Genres',
128
- is_group_by: true,
129
- value: 'genre',
130
- },
131
- ],
132
- },
133
- 'quick-tips': {
134
- name: 'Quick Tips',
135
- icon: 'icon-shows',
136
- description: "Only have 10 minutes? These short lessons are designed to inspire you with quick tips and exercises, even if you don’t have lots of time to practice.",
137
- allowableFilters: ['difficulty', 'genre', 'essential', 'theory', 'lifestyle', 'creativity'],
138
- sortBy: '-published_on',
139
- tabs: [
140
- {
141
- name: 'Lessons',
142
- short_name: 'LESSONS',
143
- value: '',
144
- },
145
- {
146
- name: 'Instructors',
147
- short_name: 'INSTRUCTORS',
148
- is_group_by: true,
149
- value: 'instructor',
150
- },
151
- {
152
- name: 'Genres',
153
- short_name: 'Genres',
154
- is_group_by: true,
155
- value: 'genre',
156
- },
157
- ],
158
- },
159
- 'question-and-answer': {
160
- name: 'Q&A',
161
- description: "Each week we go live to answer your questions. Submit your questions in advance using the button below, in the Q&A thread in the forums, or live in the community chat.",
162
- allowableFilters: ['difficulty', 'genre', 'essential', 'theory'],
163
- sortBy: '-published_on',
164
- },
165
- 'recommendation': {
166
- tabs: [
167
- { name: 'All', is_group_by: true, value: ['group_by,Recommended'] },
168
- { name: 'Songs', value: ['filter,song'] },
169
- { name: 'Lessons', value: ['filter,lesson'] },
170
- { name: 'Workouts', value: ['filter,workout'] },
171
- ],
172
- },
173
- 'workout': {
174
- name: "Workouts",
175
- shortname: 'Workouts',
176
- allowableFilters: ['difficulty', 'genre', 'topic'],
177
- tabs: [
178
- {
179
- name: 'All',
180
- short_name: 'ALL',
181
- value: '',
182
- },
183
- {
184
- name: '5 Minutes',
185
- short_name: '5 MINS',
186
- is_required_field: true,
187
- value: 'length_in_seconds,-450',
188
- value_web: ["length_in_seconds < 450"]
189
- },
190
- {
191
- name: '10 Minutes',
192
- short_name: '10 MINS',
193
- is_required_field: true,
194
- value: 'length_in_seconds,450-750',
195
- value_web: [
196
- "length_in_seconds > 451",
197
- "length_in_seconds < 751"
198
- ]
199
- },
200
- {
201
- name: '15+ Minutes',
202
- short_name: '15+ MINS',
203
- is_required_field: true,
204
- value: 'length_in_seconds,750+',
205
- value_web: ["length_in_seconds > 750"]
206
- },
207
- {
208
- name: 'Instructors',
209
- short_name: 'INSTRUCTORS',
210
- is_group_by: true,
211
- value: 'instructor',
212
- },
213
- ],
214
- modalText: 'Workouts are fun play-along lessons that help hone your musical skills. They cover various topics, and have multiple difficulty and duration options — so there’s always a perfect Workout for you. Just pick one, press start, and play along!',
4
+ instructor: {
5
+ name: 'Coaches',
6
+ icon: 'icon-coach',
7
+ allowableFilters: ['genre', 'focus'],
8
+ sortBy: '-published_on',
9
+ },
10
+ challenge: {
11
+ name: 'Challenges',
12
+ icon: 'icon-courses',
13
+ description: '... ',
14
+ allowableFilters: ['difficulty', 'topic', 'genre'],
15
+ sortBy: '-published_on',
16
+ modalText:
17
+ 'Challenges are a series of guided lessons designed to build your skills day-by-day.',
18
+ tabs: [
19
+ {
20
+ name: 'All',
21
+ short_name: 'All',
22
+ value: '',
23
+ },
24
+ {
25
+ name: 'Skill Level',
26
+ short_name: 'SKILL LEVEL',
27
+ is_group_by: true,
28
+ value: 'difficulty_string',
29
+ },
30
+ {
31
+ name: 'Genres',
32
+ short_name: 'Genres',
33
+ is_group_by: true,
34
+ value: 'genre',
35
+ },
36
+ {
37
+ name: 'Completed',
38
+ short_name: 'COMPLETED',
39
+ value: 'completed',
40
+ },
41
+ {
42
+ name: 'Owned Challenges',
43
+ short_name: 'OWNED CHALLENGES',
44
+ value: 'owned',
45
+ },
46
+ ],
47
+ },
48
+ 'challenge-part': {
49
+ name: 'Challenge Part',
50
+ icon: 'icon-courses',
51
+ description: '... ',
52
+ allowableFilters: ['difficulty', 'genre', 'topic'],
53
+ sortBy: '-published_on',
54
+ },
55
+ course: {
56
+ name: 'Courses',
57
+ allowableFilters: ['difficulty', 'genre', 'essential', 'theory', 'creativity', 'lifestyle'],
58
+ icon: 'icon-courses',
59
+ tabs: [
60
+ {
61
+ name: 'Courses',
62
+ short_name: 'COURSES',
63
+ value: '',
64
+ },
65
+ {
66
+ name: 'Instructors',
67
+ short_name: 'INSTRUCTORS',
68
+ is_group_by: true,
69
+ value: 'instructor',
70
+ },
71
+ {
72
+ name: 'Genres',
73
+ short_name: 'Genres',
74
+ is_group_by: true,
75
+ value: 'genre',
76
+ },
77
+ ],
78
+ },
79
+ pack: {
80
+ allowableFilters: [],
81
+ },
82
+ 'student-review': {
83
+ name: 'Student Reviews',
84
+ icon: 'icon-student-focus',
85
+ allowableFilters: ['difficulty', 'genre', 'essential', 'theory', 'creativity', 'lifestyle'],
86
+ sortBy: '-published_on',
87
+ tabs: [
88
+ {
89
+ name: 'Lessons',
90
+ short_name: 'LESSONS',
91
+ value: '',
92
+ },
93
+ {
94
+ name: 'Instructors',
95
+ short_name: 'INSTRUCTORS',
96
+ is_group_by: true,
97
+ value: 'instructor',
98
+ },
99
+ {
100
+ name: 'Genres',
101
+ short_name: 'Genres',
102
+ is_group_by: true,
103
+ value: 'genre',
104
+ },
105
+ ],
106
+ },
107
+ song: {
108
+ name: 'Songs',
109
+ icon: 'icon-songs',
110
+ description:
111
+ 'Play the songs you love with note-for-note transcriptions and handy practice tools.',
112
+ allowableFilters: ['difficulty', 'genre', 'lifestyle', 'instrumentless'],
113
+ tabs: [
114
+ {
115
+ name: 'Songs',
116
+ short_name: 'Songs',
117
+ value: '',
118
+ },
119
+ {
120
+ name: 'Artists',
121
+ short_name: 'ARTISTS',
122
+ is_group_by: true,
123
+ value: 'artist',
124
+ },
125
+ {
126
+ name: 'Genres',
127
+ short_name: 'Genres',
128
+ is_group_by: true,
129
+ value: 'genre',
130
+ },
131
+ ],
132
+ },
133
+ 'quick-tips': {
134
+ name: 'Quick Tips',
135
+ icon: 'icon-shows',
136
+ description:
137
+ 'Only have 10 minutes? These short lessons are designed to inspire you with quick tips and exercises, even if you don’t have lots of time to practice.',
138
+ allowableFilters: ['difficulty', 'genre', 'essential', 'theory', 'lifestyle', 'creativity'],
139
+ sortBy: '-published_on',
140
+ tabs: [
141
+ {
142
+ name: 'Lessons',
143
+ short_name: 'LESSONS',
144
+ value: '',
145
+ },
146
+ {
147
+ name: 'Instructors',
148
+ short_name: 'INSTRUCTORS',
149
+ is_group_by: true,
150
+ value: 'instructor',
151
+ },
152
+ {
153
+ name: 'Genres',
154
+ short_name: 'Genres',
155
+ is_group_by: true,
156
+ value: 'genre',
157
+ },
158
+ ],
159
+ },
160
+ 'question-and-answer': {
161
+ name: 'Q&A',
162
+ description:
163
+ 'Each week we go live to answer your questions. Submit your questions in advance using the button below, in the Q&A thread in the forums, or live in the community chat.',
164
+ allowableFilters: ['difficulty', 'genre', 'essential', 'theory'],
165
+ sortBy: '-published_on',
166
+ },
167
+ recommendation: {
168
+ tabs: [
169
+ { name: 'All', is_group_by: true, value: ['group_by,Recommended'] },
170
+ { name: 'Songs', value: ['filter,song'] },
171
+ { name: 'Lessons', value: ['filter,lesson'] },
172
+ { name: 'Workouts', value: ['filter,workout'] },
173
+ ],
174
+ },
175
+ workout: {
176
+ name: 'Workouts',
177
+ shortname: 'Workouts',
178
+ allowableFilters: ['difficulty', 'genre', 'topic'],
179
+ tabs: [
180
+ {
181
+ name: 'All',
182
+ short_name: 'ALL',
183
+ value: '',
184
+ },
185
+ {
186
+ name: '5 Minutes',
187
+ short_name: '5 MINS',
188
+ is_required_field: true,
189
+ value: 'length_in_seconds,-450',
190
+ value_web: ['length_in_seconds < 450'],
191
+ },
192
+ {
193
+ name: '10 Minutes',
194
+ short_name: '10 MINS',
195
+ is_required_field: true,
196
+ value: 'length_in_seconds,450-750',
197
+ value_web: ['length_in_seconds > 451', 'length_in_seconds < 751'],
198
+ },
199
+ {
200
+ name: '15+ Minutes',
201
+ short_name: '15+ MINS',
202
+ is_required_field: true,
203
+ value: 'length_in_seconds,750+',
204
+ value_web: ['length_in_seconds > 750'],
205
+ },
206
+ {
207
+ name: 'Instructors',
208
+ short_name: 'INSTRUCTORS',
209
+ is_group_by: true,
210
+ value: 'instructor',
211
+ },
212
+ ],
213
+ modalText:
214
+ 'Workouts are fun play-along lessons that help hone your musical skills. They cover various topics, and have multiple difficulty and duration options — so there’s always a perfect Workout for you. Just pick one, press start, and play along!',
215
+ },
216
+ 'coach-lessons': {
217
+ allowableFilters: ['difficulty', 'genre', 'essential', 'theory', 'lifestyle', 'type'],
218
+ },
219
+ 'lesson-history': {
220
+ name: 'Lesson History',
221
+ shortname: 'Lesson History',
222
+ icon: 'bookmark',
223
+ allowableFilters: ['difficulty', 'type'],
224
+ sortBy: '-published_on',
225
+ tabs: [
226
+ {
227
+ name: 'In Progress',
228
+ short_name: 'IN PROGRESS',
229
+ is_group_by: false,
230
+ value: 'in progress',
231
+ },
232
+ {
233
+ name: 'Completed',
234
+ short_name: 'COMPLETED',
235
+ is_group_by: false,
236
+ value: 'completed',
237
+ },
238
+ ],
239
+ },
240
+ 'new-release': {
241
+ name: 'New Releases',
242
+ description:
243
+ "Here's a list of all lessons recently added to Drumeo. Browse on your own or use search to find whatever it is you'd like to learn!",
244
+ allowableFilters: ['type'],
245
+ sortBy: '-published_on',
246
+ tabs: [
247
+ {
248
+ name: 'Lessons',
249
+ short_name: 'LESSONS',
250
+ value: '',
251
+ },
252
+ ],
253
+ },
254
+ }
255
+ const contentMetadata = {
256
+ drumeo: {
257
+ instructor: {
258
+ description:
259
+ 'Your drumming journey is unique. You need personalized coaching that helps you reach your goals. Learn from some of the best drummers in the world!',
215
260
  },
216
- 'coach-lessons': {
217
- allowableFilters: ['difficulty', 'genre', 'essential', 'theory', 'lifestyle', 'type'],
261
+ course: {
262
+ description:
263
+ "Tackle your next drumming goal with bite-sized courses from many of the world's best drummers.",
264
+ sortBy: '-published_on',
218
265
  },
219
- 'lesson-history': {
220
- name: 'Lesson History',
221
- shortname: 'Lesson History',
222
- icon: 'bookmark',
223
- allowableFilters: ['difficulty', 'type'],
224
- sortBy: '-published_on',
225
- tabs: [
226
- {
227
- name: 'In Progress',
228
- short_name: 'IN PROGRESS',
229
- is_group_by: false,
230
- value: 'in progress',
231
- },
232
- {
233
- name: 'Completed',
234
- short_name: 'COMPLETED',
235
- is_group_by: false,
236
- value: 'completed',
237
- },
238
- ]
266
+ song: {
267
+ sortBy: '-published_on',
239
268
  },
240
- 'new-release': {
241
- name: 'New Releases',
242
- description: 'Here\'s a list of all lessons recently added to Drumeo. Browse on your own or use search to find whatever it is you\'d like to learn!',
243
- allowableFilters: ['type'],
244
- sortBy: '-published_on',
245
- tabs: [
246
- {
247
- name: 'Lessons',
248
- short_name: 'LESSONS',
249
- value: '',
250
- }
251
- ]
252
- }
253
- }
254
- const contentMetadata = {
255
- 'drumeo': {
256
- 'instructor': {
257
- description: "Your drumming journey is unique. You need personalized coaching that helps you reach your goals. Learn from some of the best drummers in the world!",
258
- },
259
- 'course': {
260
- description: "Tackle your next drumming goal with bite-sized courses from many of the world's best drummers.",
261
- sortBy: '-published_on',
262
- },
263
- 'song': {
264
- sortBy: '-published_on',
269
+ 'student-review': null,
270
+ 'student-focus': {
271
+ name: 'Student Focus',
272
+ icon: 'icon-student-focus',
273
+ description:
274
+ 'Submit your playing for personalized and direct feedback, or look at the archive to see what challenges our instructors have already addressed.',
275
+ allowableFilters: ['difficulty', 'genre', 'essential', 'theory', 'creativity', 'lifestyle'],
276
+ sortBy: '-published_on',
277
+ tabs: [
278
+ {
279
+ name: 'Lessons',
280
+ short_name: 'LESSONS',
281
+ value: '',
265
282
  },
266
- 'student-review': null,
267
- 'student-focus': {
268
- name: 'Student Focus',
269
- icon: 'icon-student-focus',
270
- description: "Submit your playing for personalized and direct feedback, or look at the archive to see what challenges our instructors have already addressed.",
271
- allowableFilters: ['difficulty', 'genre', 'essential', 'theory', 'creativity', 'lifestyle'],
272
- sortBy: '-published_on',
273
- tabs: [
274
- {
275
- name: 'Lessons',
276
- short_name: 'LESSONS',
277
- value: '',
278
- },
279
- {
280
- name: 'Instructors',
281
- short_name: 'INSTRUCTORS',
282
- is_group_by: true,
283
- value: 'instructor',
284
- },
285
- {
286
- name: 'Genres',
287
- short_name: 'Genres',
288
- is_group_by: true,
289
- value: 'genre',
290
- },
291
- ],
283
+ {
284
+ name: 'Instructors',
285
+ short_name: 'INSTRUCTORS',
286
+ is_group_by: true,
287
+ value: 'instructor',
292
288
  },
293
- 'rudiment': {
294
- name: 'Rudiments',
295
- icon: 'icon-drums',
296
- description: "The 40 drum rudiments are essential for any drummer, no matter the style, genre, or scenario. You can use the videos below to help you learn, practice, and perfect every single one.",
297
- allowableFilters: ['difficulty', 'genre', 'gear', 'topic'],
298
- tabs: [
299
- {
300
- name: 'All',
301
- short_name: 'ALL',
302
- value: '',
303
- },
304
- {
305
- name: 'Drags',
306
- short_name: 'DRAGS',
307
- is_required_field: true,
308
- value: 'topic,Drags',
309
- },
310
- {
311
- name: 'Flams',
312
- short_name: 'FLAMS',
313
- is_required_field: true,
314
- value: 'topic,Flams',
315
- },
316
- {
317
- name: 'Paradiddles',
318
- short_name: 'PARADIDDLES',
319
- is_required_field: true,
320
- value: 'topic,Paradiddles',
321
- },
322
- {
323
- name: 'Rolls',
324
- short_name: 'ROLLS',
325
- is_required_field: true,
326
- value: 'topic,Rolls',
327
- },
328
- ],
329
- sortBy: 'sort',
289
+ {
290
+ name: 'Genres',
291
+ short_name: 'Genres',
292
+ is_group_by: true,
293
+ value: 'genre',
330
294
  },
331
- 'gear-guide': {
332
- thumbnailUrl: 'https://dpwjbsxqtam5n.cloudfront.net/shows/gear.jpg',
333
- name: 'Gear Guides',
334
- icon: 'icon-shows',
335
- url: '/gear-guides',
336
- description: "Drummers love their gear - and in here you will find videos on gear demos, reviews, maintenance, tuning tips and much more.",
337
- allowableFilters: ['difficulty', 'genre'],
338
- sortBy: '-published_on',
339
- tabs: [
340
- {
341
- name: 'Lessons',
342
- short_name: 'LESSONS',
343
- value: '',
344
- },
345
- {
346
- name: 'Instructors',
347
- short_name: 'INSTRUCTORS',
348
- is_group_by: true,
349
- value: 'instructor',
350
- },
351
- {
352
- name: 'Genres',
353
- short_name: 'Genres',
354
- is_group_by: true,
355
- value: 'genre',
356
- },
357
- ],
295
+ ],
296
+ },
297
+ rudiment: {
298
+ name: 'Rudiments',
299
+ icon: 'icon-drums',
300
+ description:
301
+ 'The 40 drum rudiments are essential for any drummer, no matter the style, genre, or scenario. You can use the videos below to help you learn, practice, and perfect every single one.',
302
+ allowableFilters: ['difficulty', 'genre', 'gear', 'topic'],
303
+ tabs: [
304
+ {
305
+ name: 'All',
306
+ short_name: 'ALL',
307
+ value: '',
358
308
  },
359
- 'challenges': {
360
- thumbnailUrl: 'https://dpwjbsxqtam5n.cloudfront.net/shows/challenges.jpg',
361
- name: 'Challenges',
362
- icon: 'icon-shows',
363
- description: "Like drumming puzzles, our challenges are lessons that will take a little more brain power and practice to get down. They are a great way to motivate you to get behind the kit or pad to practice, and cover the entire gamut of drumming skill level.",
364
- allowableFilters: ['difficulty', 'genre'],
365
- sortBy: '-published_on',
366
- tabs: [
367
- {
368
- name: 'Lessons',
369
- short_name: 'LESSONS',
370
- value: '',
371
- },
372
- {
373
- name: 'Instructors',
374
- short_name: 'INSTRUCTORS',
375
- is_group_by: true,
376
- value: 'instructor',
377
- },
378
- {
379
- name: 'Genres',
380
- short_name: 'Genres',
381
- is_group_by: true,
382
- value: 'genre',
383
- },
384
- ],
309
+ {
310
+ name: 'Drags',
311
+ short_name: 'DRAGS',
312
+ is_required_field: true,
313
+ value: 'topic,Drags',
385
314
  },
386
- 'boot-camp': {
387
- thumbnailUrl: 'https://dpwjbsxqtam5n.cloudfront.net/shows/bootcamps.jpg',
388
- name: 'Boot Camps',
389
- icon: 'icon-shows',
390
- url: '/boot-camps',
391
- description: "Grab your sticks and practice along while watching a lesson! These boot camps are designed like workout videos so you can follow along and push your drumming at the same time.",
392
- allowableFilters: ['difficulty', 'genre', 'essential'],
393
- sortBy: '-published_on',
394
- tabs: [
395
- {
396
- name: 'Lessons',
397
- short_name: 'LESSONS',
398
- value: '',
399
- },
400
- {
401
- name: 'Instructors',
402
- short_name: 'INSTRUCTORS',
403
- is_group_by: true,
404
- value: 'instructor',
405
- },
406
- {
407
- name: 'Genres',
408
- short_name: 'Genres',
409
- is_group_by: true,
410
- value: 'genre',
411
- },
412
- ],
315
+ {
316
+ name: 'Flams',
317
+ short_name: 'FLAMS',
318
+ is_required_field: true,
319
+ value: 'topic,Flams',
413
320
  },
414
- 'quick-tips': {
415
- thumbnailUrl: 'https://musora.com/cdn-cgi/imagedelivery/0Hon__GSkIjm-B_W77SWCA/78e68540-2b93-4445-882c-a19eef6b5d00/public',
321
+ {
322
+ name: 'Paradiddles',
323
+ short_name: 'PARADIDDLES',
324
+ is_required_field: true,
325
+ value: 'topic,Paradiddles',
416
326
  },
417
- 'podcast': {
418
- thumbnailUrl: 'https://dpwjbsxqtam5n.cloudfront.net/shows/show-podcast.jpg',
419
- name: 'The Drumeo Podcast',
420
- shortname: 'Episodes',
421
- icon: 'icon-shows',
422
- description: "Enjoy our official Drumeo Podcasts in video form! Whether it be discussions about drum topics or interviews with the greats you are looking for, these are an entertaining and educational way to pass the time.",
423
- allowableFilters: [],
424
- sortBy: '-sort',
425
- url: '/podcasts',
327
+ {
328
+ name: 'Rolls',
329
+ short_name: 'ROLLS',
330
+ is_required_field: true,
331
+ value: 'topic,Rolls',
426
332
  },
427
- 'on-the-road': {
428
- thumbnailUrl: 'https://dpwjbsxqtam5n.cloudfront.net/shows/on-the-road.jpg',
429
- name: 'On The Road',
430
- shortname: 'Episodes',
431
- icon: 'icon-shows',
432
- description: "See Drumeo in action outside of the studio! This is your backstage pass to some of the biggest drum/music events in the world, as well as factory tours of your favorite drum brands.",
433
- allowableFilters: [],
434
- sortBy: '-published_on',
333
+ ],
334
+ sortBy: 'sort',
335
+ },
336
+ 'gear-guide': {
337
+ thumbnailUrl: 'https://dpwjbsxqtam5n.cloudfront.net/shows/gear.jpg',
338
+ name: 'Gear Guides',
339
+ icon: 'icon-shows',
340
+ url: '/gear-guides',
341
+ description:
342
+ 'Drummers love their gear - and in here you will find videos on gear demos, reviews, maintenance, tuning tips and much more.',
343
+ allowableFilters: ['difficulty', 'genre'],
344
+ sortBy: '-published_on',
345
+ tabs: [
346
+ {
347
+ name: 'Lessons',
348
+ short_name: 'LESSONS',
349
+ value: '',
435
350
  },
436
- 'behind-the-scenes': {
437
- thumbnailUrl: 'https://dpwjbsxqtam5n.cloudfront.net/shows/behind-the-scenes.jpg',
438
- name: 'Behind the Scenes',
439
- shortname: 'Episodes',
440
- icon: 'icon-shows',
441
- description: "Have you ever wondered what it’s like to work at the Drumeo office? This is your behind the scenes look at what we do and all the shenanigans that happen day to day.",
442
- allowableFilters: [],
443
- sortBy: '-sort',
351
+ {
352
+ name: 'Instructors',
353
+ short_name: 'INSTRUCTORS',
354
+ is_group_by: true,
355
+ value: 'instructor',
444
356
  },
445
- 'study-the-greats': {
446
- thumbnailUrl: 'https://dpwjbsxqtam5n.cloudfront.net/shows/study-the-greats.jpg',
447
- name: 'Study the Greats',
448
- shortname: 'Episodes',
449
- icon: 'icon-shows',
450
- description: "Study the greats with Austin Burcham! These lessons break down the beats, licks, and ideas of some of the most famous drummers we have had out on Drumeo.",
451
- allowableFilters: [],
452
- sortBy: 'sort',
357
+ {
358
+ name: 'Genres',
359
+ short_name: 'Genres',
360
+ is_group_by: true,
361
+ value: 'genre',
453
362
  },
454
- 'live': {
455
- thumbnailUrl: 'https://dpwjbsxqtam5n.cloudfront.net/shows/show-live.jpg',
456
- name: 'Live',
457
- url: '/live-streams',
458
- shortname: 'Live Lessons',
459
- icon: 'icon-shows',
460
- description: "Practice sessions, Q&A, celebrations, and more are available during Drumeo live lessons. Subscribe to an event or the whole calendar, so you don’t miss out!",
461
- allowableFilters: ['difficulty', 'genre', 'essential', 'theory'],
462
- sortBy: '-published_on',
463
- tabs: [
464
- {
465
- name: 'Lessons',
466
- short_name: 'LESSONS',
467
- value: '',
468
- },
469
- {
470
- name: 'Instructors',
471
- short_name: 'INSTRUCTORS',
472
- is_group_by: true,
473
- value: 'instructor',
474
- },
475
- {
476
- name: 'Genres',
477
- short_name: 'Genres',
478
- is_group_by: true,
479
- value: 'genre',
480
- },
481
- ],
363
+ ],
364
+ },
365
+ challenges: {
366
+ thumbnailUrl: 'https://dpwjbsxqtam5n.cloudfront.net/shows/challenges.jpg',
367
+ name: 'Challenges',
368
+ icon: 'icon-shows',
369
+ description:
370
+ 'Like drumming puzzles, our challenges are lessons that will take a little more brain power and practice to get down. They are a great way to motivate you to get behind the kit or pad to practice, and cover the entire gamut of drumming skill level.',
371
+ allowableFilters: ['difficulty', 'genre'],
372
+ sortBy: '-published_on',
373
+ tabs: [
374
+ {
375
+ name: 'Lessons',
376
+ short_name: 'LESSONS',
377
+ value: '',
482
378
  },
483
- 'solo': {
484
- thumbnailUrl: 'https://dpwjbsxqtam5n.cloudfront.net/shows/solos.jpg',
485
- name: 'Solos',
486
- icon: 'icon-shows',
487
- url: '/solos',
488
- description: "Watch drum solos performed by the many different artists we have had out on Drumeo! A great way to be entertained, motivated, and to learn through amazing performances.",
489
- allowableFilters: ['difficulty', 'genre'],
490
- sortBy: '-published_on',
491
- tabs: [
492
- {
493
- name: 'Lessons',
494
- short_name: 'LESSONS',
495
- value: '',
496
- },
497
- {
498
- name: 'Instructors',
499
- short_name: 'INSTRUCTORS',
500
- is_group_by: true,
501
- value: 'instructor',
502
- },
503
- {
504
- name: 'Genres',
505
- short_name: 'Genres',
506
- is_group_by: true,
507
- value: 'genre',
508
- },
509
- ],
379
+ {
380
+ name: 'Instructors',
381
+ short_name: 'INSTRUCTORS',
382
+ is_group_by: true,
383
+ value: 'instructor',
510
384
  },
511
- 'performance': {
512
- thumbnailUrl: 'https://dpwjbsxqtam5n.cloudfront.net/shows/performances.jpg',
513
- name: 'Performances',
514
- icon: 'icon-shows',
515
- url: '/performances',
516
- description: "Watch the world's best drummers perform songs, duets, and other inspirational pieces. Sit back, relax, and get ready to be inspired by these amazing performances!",
517
- allowableFilters: ['difficulty', 'genre'],
518
- sortBy: '-published_on',
519
- tabs: [
520
- {
521
- name: 'Lessons',
522
- short_name: 'LESSONS',
523
- value: '',
524
- },
525
- {
526
- name: 'Instructors',
527
- short_name: 'INSTRUCTORS',
528
- is_group_by: true,
529
- value: 'instructor',
530
- },
531
- {
532
- name: 'Genres',
533
- short_name: 'Genres',
534
- is_group_by: true,
535
- value: 'genre',
536
- },
537
- ],
385
+ {
386
+ name: 'Genres',
387
+ short_name: 'Genres',
388
+ is_group_by: true,
389
+ value: 'genre',
538
390
  },
539
- 'exploring-beats': {
540
- thumbnailUrl: 'https://dpwjbsxqtam5n.cloudfront.net/shows/exploring-beats.jpg',
541
- name: 'Exploring Beats',
542
- icon: 'icon-shows',
543
- description: "Join Carson and his extraterrestrial roommate Gary as they travel through time and space exploring some of earth's greatest hip-hop beats and delicious snacks.",
544
- allowableFilters: [],
545
- sortBy: 'sort',
391
+ ],
392
+ },
393
+ 'boot-camp': {
394
+ thumbnailUrl: 'https://dpwjbsxqtam5n.cloudfront.net/shows/bootcamps.jpg',
395
+ name: 'Boot Camps',
396
+ icon: 'icon-shows',
397
+ url: '/boot-camps',
398
+ description:
399
+ 'Grab your sticks and practice along while watching a lesson! These boot camps are designed like workout videos so you can follow along and push your drumming at the same time.',
400
+ allowableFilters: ['difficulty', 'genre', 'essential'],
401
+ sortBy: '-published_on',
402
+ tabs: [
403
+ {
404
+ name: 'Lessons',
405
+ short_name: 'LESSONS',
406
+ value: '',
546
407
  },
547
- 'sonor': {
548
- thumbnailUrl: 'https://dpwjbsxqtam5n.cloudfront.net/shows/sonor-drums.jpg',
549
- name: 'Sonor Drums: A Drumeo Documentary',
550
- shortname: 'Videos',
551
- icon: 'icon-shows',
552
- description: "Take a closer look at Sonor Drums with Jared as he explores the Sonor Factory in Bad Berleburg Germany and interviews the people behind the amazing brand.",
553
- allowableFilters: [],
554
- sortBy: 'published_on',
555
- url: '/sonor-drums',
408
+ {
409
+ name: 'Instructors',
410
+ short_name: 'INSTRUCTORS',
411
+ is_group_by: true,
412
+ value: 'instructor',
556
413
  },
557
- 'paiste-cymbals': {
558
- thumbnailUrl: 'https://dpwjbsxqtam5n.cloudfront.net/shows/paiste-cymbals.jpg',
559
- name: 'Paiste Cymbals: A Drumeo Documentary',
560
- shortname: 'Videos',
561
- icon: 'icon-shows',
562
- description: "Take a closer look at Paiste Cymbals with Jared as he explores the Paiste factory in Switzerland and interviews the people behind the amazing brand.",
563
- allowableFilters: [],
564
- sortBy: 'published_on',
414
+ {
415
+ name: 'Genres',
416
+ short_name: 'Genres',
417
+ is_group_by: true,
418
+ value: 'genre',
565
419
  },
566
- 'rhythms-from-another-planet': {
567
- thumbnailUrl: 'https://dpwjbsxqtam5n.cloudfront.net/shows/rythms-from-another-planet.jpg',
568
- name: 'Rhythms From Another Planet',
569
- shortname: 'Videos',
570
- icon: 'icon-shows',
571
- description: "Flying Saucers Over Canada! Aliens from the Horsehead Nebula are here glitching humans! Aaron assembles an assortment of numerically nimble nerds to save the day! Tag along for the adventure, Glitchings, Quintuplet Panteradies, and save the world to learn some phenomenally fancy fives!",
572
- allowableFilters: [],
573
- sortBy: 'sort',
420
+ ],
421
+ },
422
+ 'quick-tips': {
423
+ thumbnailUrl:
424
+ 'https://musora.com/cdn-cgi/imagedelivery/0Hon__GSkIjm-B_W77SWCA/78e68540-2b93-4445-882c-a19eef6b5d00/public',
425
+ },
426
+ podcast: {
427
+ thumbnailUrl: 'https://dpwjbsxqtam5n.cloudfront.net/shows/show-podcast.jpg',
428
+ name: 'The Drumeo Podcast',
429
+ shortname: 'Episodes',
430
+ icon: 'icon-shows',
431
+ description:
432
+ 'Enjoy our official Drumeo Podcasts in video form! Whether it be discussions about drum topics or interviews with the greats you are looking for, these are an entertaining and educational way to pass the time.',
433
+ allowableFilters: [],
434
+ sortBy: '-sort',
435
+ url: '/podcasts',
436
+ },
437
+ 'on-the-road': {
438
+ thumbnailUrl: 'https://dpwjbsxqtam5n.cloudfront.net/shows/on-the-road.jpg',
439
+ name: 'On The Road',
440
+ shortname: 'Episodes',
441
+ icon: 'icon-shows',
442
+ description:
443
+ 'See Drumeo in action outside of the studio! This is your backstage pass to some of the biggest drum/music events in the world, as well as factory tours of your favorite drum brands.',
444
+ allowableFilters: [],
445
+ sortBy: '-published_on',
446
+ },
447
+ 'behind-the-scenes': {
448
+ thumbnailUrl: 'https://dpwjbsxqtam5n.cloudfront.net/shows/behind-the-scenes.jpg',
449
+ name: 'Behind the Scenes',
450
+ shortname: 'Episodes',
451
+ icon: 'icon-shows',
452
+ description:
453
+ 'Have you ever wondered what it’s like to work at the Drumeo office? This is your behind the scenes look at what we do and all the shenanigans that happen day to day.',
454
+ allowableFilters: [],
455
+ sortBy: '-sort',
456
+ },
457
+ 'study-the-greats': {
458
+ thumbnailUrl: 'https://dpwjbsxqtam5n.cloudfront.net/shows/study-the-greats.jpg',
459
+ name: 'Study the Greats',
460
+ shortname: 'Episodes',
461
+ icon: 'icon-shows',
462
+ description:
463
+ 'Study the greats with Austin Burcham! These lessons break down the beats, licks, and ideas of some of the most famous drummers we have had out on Drumeo.',
464
+ allowableFilters: [],
465
+ sortBy: 'sort',
466
+ },
467
+ live: {
468
+ thumbnailUrl: 'https://dpwjbsxqtam5n.cloudfront.net/shows/show-live.jpg',
469
+ name: 'Live',
470
+ url: '/live-streams',
471
+ shortname: 'Live Lessons',
472
+ icon: 'icon-shows',
473
+ description:
474
+ 'Practice sessions, Q&A, celebrations, and more are available during Drumeo live lessons. Subscribe to an event or the whole calendar, so you don’t miss out!',
475
+ allowableFilters: ['difficulty', 'genre', 'essential', 'theory'],
476
+ sortBy: '-published_on',
477
+ tabs: [
478
+ {
479
+ name: 'Lessons',
480
+ short_name: 'LESSONS',
481
+ value: '',
574
482
  },
575
- 'tama': {
576
- thumbnailUrl: 'https://dpwjbsxqtam5n.cloudfront.net/shows/tama-drums.jpg',
577
- name: 'Tama Drums',
578
- shortname: 'Episodes',
579
- icon: 'icon-shows',
580
- description: "Take a closer look at Tama Drums with Jared as he explores the Tama factory in Japan, learns about Japanese Culture, experiments with traditional Taiko drummers, and interviews the people behind the amazing brand.",
581
- allowableFilters: [],
582
- sortBy: 'published_on',
583
- url: '/tama-drums',
483
+ {
484
+ name: 'Instructors',
485
+ short_name: 'INSTRUCTORS',
486
+ is_group_by: true,
487
+ value: 'instructor',
584
488
  },
585
- 'question-and-answer': {
586
- thumbnailUrl: 'https://dpwjbsxqtam5n.cloudfront.net/shows/question-answer.jpg',
587
- shortname: 'Lessons',
588
- icon: 'icon-shows',
589
- description: "Get any drum related question answered by a Drumeo instructor on our weekly Q&A episodes! You can submit as many questions as you like by clicking the button below, and either join us live for the next episode, or check for your answer in the archived videos below!",
489
+ {
490
+ name: 'Genres',
491
+ short_name: 'Genres',
492
+ is_group_by: true,
493
+ value: 'genre',
590
494
  },
591
- 'student-collaboration': {
592
- thumbnailUrl: 'https://dpwjbsxqtam5n.cloudfront.net/shows/student-collaborations.jpg',
593
- name: 'Drumeo Monthly Collaborations',
594
- shortname: 'Collaborations',
595
- icon: 'icon-shows',
596
- description: "Collaborate with the community with Drumeo Monthly Collaborations! Each month a new Play-Along is chosen and members are tasked to submit their videos playing along to the song. At the end of each month, every video is joined together to create a single performance!",
597
- allowableFilters: [],
598
- sortBy: '-published_on',
599
- url: '/student-collaborations',
600
- trailer1: {
601
- vimeo_video_id: 448684113,
602
- video_playback_endpoints: [
603
- {
604
- file: "https://player.vimeo.com/progressive_redirect/playback/448684113/rendition/240p/file.mp4?loc=external&oauth2_token_id=1284792283&signature=7f75733de09ec3266322845bdd2dd9a0e740c916b9a824710d6272b8d51793ae",
605
- width: 426,
606
- height: 240
607
- },
608
- {
609
- file: "https://player.vimeo.com/progressive_redirect/playback/448684113/rendition/360p/file.mp4?loc=external&oauth2_token_id=1284792283&signature=c55155a36018e86d6f008d905075bb749f2ee5fb12989845a3d2e5a9c28141e6",
610
- width: 640,
611
- height: 360
612
- },
613
- {
614
- file: "https://player.vimeo.com/progressive_redirect/playback/448684113/rendition/540p/file.mp4?loc=external&oauth2_token_id=1284792283&signature=d71e1f8771e78e398c17ee0167611c1619ef11f90b0287b6dff1678279cb67a3",
615
- width: 960,
616
- height: 540
617
- },
618
- {
619
- file: "https://player.vimeo.com/progressive_redirect/playback/448684113/rendition/720p/file.mp4?loc=external&oauth2_token_id=1284792283&signature=538b5eec06dd01591f156a96c4108e217bd7ad8903e5084e8fb3428e0f8a69a6",
620
- width: 1280,
621
- height: 720
622
- },
623
- {
624
- file: "https://player.vimeo.com/progressive_redirect/playback/448684113/rendition/1080p/file.mp4?loc=external&oauth2_token_id=1284792283&signature=589537c220ca4c99e746a2d24e2dad8017da016d195485a17a2c8409b3ea8c60",
625
- width: 1920,
626
- height: 1080
627
- },
628
- {
629
- file: "https://player.vimeo.com/progressive_redirect/playback/448684113/rendition/1440p/file.mp4?loc=external&oauth2_token_id=1284792283&signature=dda9240afee2489dbedda42499d432ebc1454e5ff2bb615bf2af8b8a298d6044",
630
- width: 2560,
631
- height: 1440
632
- },
633
- {
634
- file: "https://player.vimeo.com/progressive_redirect/playback/448684113/rendition/2160p/file.mp4?loc=external&oauth2_token_id=1284792283&signature=92997d941ff58b9cf8e17d6cf8ec07b332bcf61138e8ea0805fba091501e0e7c",
635
- width: 3840,
636
- height: 2160
637
- }
638
- ],
639
- length_in_seconds: 53,
640
- hlsManifestUrl: "https://player.vimeo.com/external/448684113.m3u8?s=dfb6ad351fcc3f2e5d98c7e7fac7303fa2b0a416&oauth2_token_id=1284792283",
641
- },
642
- trailer2: {
643
- vimeo_video_id: 448684140,
644
- video_playback_endpoints: [
645
- {
646
- file: "https://player.vimeo.com/progressive_redirect/playback/448684140/rendition/240p/file.mp4?loc=external&oauth2_token_id=1284792283&signature=1c9adb344eaf45a1f854a209e62616e19feea57516c37f5eb1f884cac928fb06",
647
- width: 426,
648
- height: 240
649
- },
650
- {
651
- file: "https://player.vimeo.com/progressive_redirect/playback/448684140/rendition/360p/file.mp4?loc=external&oauth2_token_id=1284792283&signature=cde9f4fb028217960e5a2612688d8d18550db81964f1bf21f003fced6b9f63dd",
652
- width: 640,
653
- height: 360
654
- },
655
- {
656
- file: "https://player.vimeo.com/progressive_redirect/playback/448684140/rendition/540p/file.mp4?loc=external&oauth2_token_id=1284792283&signature=eb870305e3c2719aad514b07026030d7738b5a107693794d0745574e5392fd12",
657
- width: 960,
658
- height: 540
659
- },
660
- {
661
- file: "https://player.vimeo.com/progressive_redirect/playback/448684140/rendition/720p/file.mp4?loc=external&oauth2_token_id=1284792283&signature=309527ab8047731ace6a103a24536f952a5dc3bd8be2c5c2529385cc2377f8f6",
662
- width: 1280,
663
- height: 720
664
- },
665
- {
666
- file: "https://player.vimeo.com/progressive_redirect/playback/448684140/rendition/1080p/file.mp4?loc=external&oauth2_token_id=1284792283&signature=f93e002d6d73facf146a3cdcb2d74d8b42677897282d0f89abb02871c664d6d4",
667
- width: 1920,
668
- height: 1080
669
- },
670
- {
671
- file: "https://player.vimeo.com/progressive_redirect/playback/448684140/rendition/1440p/file.mp4?loc=external&oauth2_token_id=1284792283&signature=4b83c2a73161532bbe36dfae5a1203aa4b6475c60554117533dcd303e76cb67b",
672
- width: 2560,
673
- height: 1440
674
- },
675
- {
676
- file: "https://player.vimeo.com/progressive_redirect/playback/448684140/rendition/2160p/file.mp4?loc=external&oauth2_token_id=1284792283&signature=3108a1db7e86bd133fe01fd4384980ffaa62e854af5588d94a7f8befb92db563",
677
- width: 3840,
678
- height: 2160
679
- }
680
- ],
681
- length_in_seconds: 106,
682
- hlsManifestUrl: "https://player.vimeo.com/external/448684140.m3u8?s=06db72bb51f3bc10cde8367452c3cb19ed8834b2&oauth2_token_id=1284792283",
683
- }
495
+ ],
496
+ },
497
+ solo: {
498
+ thumbnailUrl: 'https://dpwjbsxqtam5n.cloudfront.net/shows/solos.jpg',
499
+ name: 'Solos',
500
+ icon: 'icon-shows',
501
+ url: '/solos',
502
+ description:
503
+ 'Watch drum solos performed by the many different artists we have had out on Drumeo! A great way to be entertained, motivated, and to learn through amazing performances.',
504
+ allowableFilters: ['difficulty', 'genre'],
505
+ sortBy: '-published_on',
506
+ tabs: [
507
+ {
508
+ name: 'Lessons',
509
+ short_name: 'LESSONS',
510
+ value: '',
684
511
  },
685
- 'diy-drum-experiment': {
686
- thumbnailUrl: 'https://dpwjbsxqtam5n.cloudfront.net/shows/diy-drum-experiments.jpg',
687
- name: 'DIY Drum Experiments',
688
- shortname: 'Episodes',
689
- icon: 'icon-shows',
690
- description: "Step into David Raouf’s workshop where he will show you how to repurpose old and broken drum gear into usable and functional items! Whether you are a handyman or not, this show will give you unique and creative ideas and drum hacks that you have never seen before!",
691
- allowableFilters: [],
692
- sortBy: 'sort',
693
- url: '/diy-drum-experiments',
512
+ {
513
+ name: 'Instructors',
514
+ short_name: 'INSTRUCTORS',
515
+ is_group_by: true,
516
+ value: 'instructor',
694
517
  },
695
- 'rhythmic-adventures-of-captain-carson': {
696
- thumbnailUrl: 'https://dpwjbsxqtam5n.cloudfront.net/shows/raocc-showcard.jpg',
697
- name: 'Rhythmic Adventures of Captain Carson',
698
- shortname: 'Episodes',
699
- icon: 'icon-shows',
700
- description: "In The Rhythmic Adventures of Captain Carson, kids will join Captain Carson and his best friends Ricky (the robot) and Gary (the alien) as they fly through space and learn fun musical grooves. But they’ve got to be quick, because the tricky Groove Troll is trying to steal their groove!",
701
- allowableFilters: [],
702
- sortBy: 'sort',
518
+ {
519
+ name: 'Genres',
520
+ short_name: 'Genres',
521
+ is_group_by: true,
522
+ value: 'genre',
703
523
  },
704
- 'in-rhythm': {
705
- thumbnailUrl: 'https://dpwjbsxqtam5n.cloudfront.net/shows/in-rhythm-show-card.jpg',
706
- name: 'In Rhythm',
707
- shortname: 'Episodes',
708
- icon: 'icon-shows',
709
- description: "Witness a day in the life of a professional touring drummer on the road! “In Rhythm” gives you an inside look into professional drummers, what they do on the road outside of performing, and how they warm-up and prepare for the big stage!",
710
- allowableFilters: [],
711
- sortBy: 'sort',
524
+ ],
525
+ },
526
+ performance: {
527
+ thumbnailUrl: 'https://dpwjbsxqtam5n.cloudfront.net/shows/performances.jpg',
528
+ name: 'Performances',
529
+ icon: 'icon-shows',
530
+ url: '/performances',
531
+ description:
532
+ "Watch the world's best drummers perform songs, duets, and other inspirational pieces. Sit back, relax, and get ready to be inspired by these amazing performances!",
533
+ allowableFilters: ['difficulty', 'genre'],
534
+ sortBy: '-published_on',
535
+ tabs: [
536
+ {
537
+ name: 'Lessons',
538
+ short_name: 'LESSONS',
539
+ value: '',
712
540
  },
713
- 'backstage-secret': {
714
- thumbnailUrl: 'https://www.musora.com/musora-cdn/image/width=500,height=500,quality=95,fit=cover/https://d1923uyy6spedc.cloudfront.net/RushDoc-Neil-02.jpg',
715
- name: 'Backstage Secrets',
716
- shortname: 'Episodes',
717
- icon: 'icon-shows',
718
- description: "Join the roadies of Rush and get a firsthand look at what it's like to be part of one of our favorite bands. You’re going on an exciting, behind-the-scenes journey to their 2008 Snakes & Arrows Concert Tour - an exclusive invitation to witness the reveal of all of the band’s backstage secrets. Roadies are the unsung heroes of any band - and being a roadie with a top-rated, world-famous rock and roll band is a highly coveted job. It may appear to be all glamour and adventure, but it can be a grueling marathon of 18-hour workdays!",
719
- allowableFilters: [],
720
- sortBy: 'sort',
721
- url: '/backstage-secrets',
541
+ {
542
+ name: 'Instructors',
543
+ short_name: 'INSTRUCTORS',
544
+ is_group_by: true,
545
+ value: 'instructor',
722
546
  },
723
- 'the-history-of-electronic-drums': {
724
- thumbnailUrl: 'https://imagedelivery.net/0Hon__GSkIjm-B_W77SWCA/31847ba4-02d4-4c6a-4507-32b40284a000/width=500,height=500,quality=95,fit=cover',
725
- name: 'The History Of Electronic Drums',
726
- shortname: 'Episodes',
727
- icon: 'icon-shows',
728
- description: "The music industry is dominated by electronic music and electronic drums. For the first time ever, we’ve gathered 14 of the most innovative electronic drum kits to learn more about how they were made, how they work, and most importantly, how they sound.",
729
- allowableFilters: [],
730
- sortBy: 'sort',
731
- amountOfFutureLessonsToShow: 10,
732
- showFutureLessonAtTopOrBottom: 'bottom',
547
+ {
548
+ name: 'Genres',
549
+ short_name: 'Genres',
550
+ is_group_by: true,
551
+ value: 'genre',
733
552
  },
734
- 'drum-fest-international-2022': {
735
- thumbnailUrl: 'https://musora.com/cdn-cgi/imagedelivery/0Hon__GSkIjm-B_W77SWCA/2c12c9ae-5a67-4767-f257-d1fa3693bd00/public',
736
- name: '2022 Drum Fest International',
737
- shortname: 'Episodes',
738
- icon: 'icon-shows',
739
- description: "In 2022, Drumeo had the exclusive honor of filming Ralph Angelillo’s Drum Fest International. It was an incredible gathering of some of the best drummers in the world. Tune in to see a spectrum of unforgettable performances - from Greyson Nekrutman’s show-stopping jazz, to Simon Phillips’ fancy fusion work, these are videos you do not want to miss.",
740
- allowableFilters: [],
741
- sortBy: 'sort'
553
+ ],
554
+ },
555
+ 'exploring-beats': {
556
+ thumbnailUrl: 'https://dpwjbsxqtam5n.cloudfront.net/shows/exploring-beats.jpg',
557
+ name: 'Exploring Beats',
558
+ icon: 'icon-shows',
559
+ description:
560
+ "Join Carson and his extraterrestrial roommate Gary as they travel through time and space exploring some of earth's greatest hip-hop beats and delicious snacks.",
561
+ allowableFilters: [],
562
+ sortBy: 'sort',
563
+ },
564
+ sonor: {
565
+ thumbnailUrl: 'https://dpwjbsxqtam5n.cloudfront.net/shows/sonor-drums.jpg',
566
+ name: 'Sonor Drums: A Drumeo Documentary',
567
+ shortname: 'Videos',
568
+ icon: 'icon-shows',
569
+ description:
570
+ 'Take a closer look at Sonor Drums with Jared as he explores the Sonor Factory in Bad Berleburg Germany and interviews the people behind the amazing brand.',
571
+ allowableFilters: [],
572
+ sortBy: 'published_on',
573
+ url: '/sonor-drums',
574
+ },
575
+ 'paiste-cymbals': {
576
+ thumbnailUrl: 'https://dpwjbsxqtam5n.cloudfront.net/shows/paiste-cymbals.jpg',
577
+ name: 'Paiste Cymbals: A Drumeo Documentary',
578
+ shortname: 'Videos',
579
+ icon: 'icon-shows',
580
+ description:
581
+ 'Take a closer look at Paiste Cymbals with Jared as he explores the Paiste factory in Switzerland and interviews the people behind the amazing brand.',
582
+ allowableFilters: [],
583
+ sortBy: 'published_on',
584
+ },
585
+ 'rhythms-from-another-planet': {
586
+ thumbnailUrl: 'https://dpwjbsxqtam5n.cloudfront.net/shows/rythms-from-another-planet.jpg',
587
+ name: 'Rhythms From Another Planet',
588
+ shortname: 'Videos',
589
+ icon: 'icon-shows',
590
+ description:
591
+ 'Flying Saucers Over Canada! Aliens from the Horsehead Nebula are here glitching humans! Aaron assembles an assortment of numerically nimble nerds to save the day! Tag along for the adventure, Glitchings, Quintuplet Panteradies, and save the world to learn some phenomenally fancy fives!',
592
+ allowableFilters: [],
593
+ sortBy: 'sort',
594
+ },
595
+ tama: {
596
+ thumbnailUrl: 'https://dpwjbsxqtam5n.cloudfront.net/shows/tama-drums.jpg',
597
+ name: 'Tama Drums',
598
+ shortname: 'Episodes',
599
+ icon: 'icon-shows',
600
+ description:
601
+ 'Take a closer look at Tama Drums with Jared as he explores the Tama factory in Japan, learns about Japanese Culture, experiments with traditional Taiko drummers, and interviews the people behind the amazing brand.',
602
+ allowableFilters: [],
603
+ sortBy: 'published_on',
604
+ url: '/tama-drums',
605
+ },
606
+ 'question-and-answer': {
607
+ thumbnailUrl: 'https://dpwjbsxqtam5n.cloudfront.net/shows/question-answer.jpg',
608
+ shortname: 'Lessons',
609
+ icon: 'icon-shows',
610
+ description:
611
+ 'Get any drum related question answered by a Drumeo instructor on our weekly Q&A episodes! You can submit as many questions as you like by clicking the button below, and either join us live for the next episode, or check for your answer in the archived videos below!',
612
+ },
613
+ 'student-collaboration': {
614
+ thumbnailUrl: 'https://dpwjbsxqtam5n.cloudfront.net/shows/student-collaborations.jpg',
615
+ name: 'Drumeo Monthly Collaborations',
616
+ shortname: 'Collaborations',
617
+ icon: 'icon-shows',
618
+ description:
619
+ 'Collaborate with the community with Drumeo Monthly Collaborations! Each month a new Play-Along is chosen and members are tasked to submit their videos playing along to the song. At the end of each month, every video is joined together to create a single performance!',
620
+ allowableFilters: [],
621
+ sortBy: '-published_on',
622
+ url: '/student-collaborations',
623
+ trailer1: {
624
+ vimeo_video_id: 448684113,
625
+ video_playback_endpoints: [
626
+ {
627
+ file: 'https://player.vimeo.com/progressive_redirect/playback/448684113/rendition/240p/file.mp4?loc=external&oauth2_token_id=1284792283&signature=7f75733de09ec3266322845bdd2dd9a0e740c916b9a824710d6272b8d51793ae',
628
+ width: 426,
629
+ height: 240,
630
+ },
631
+ {
632
+ file: 'https://player.vimeo.com/progressive_redirect/playback/448684113/rendition/360p/file.mp4?loc=external&oauth2_token_id=1284792283&signature=c55155a36018e86d6f008d905075bb749f2ee5fb12989845a3d2e5a9c28141e6',
633
+ width: 640,
634
+ height: 360,
635
+ },
636
+ {
637
+ file: 'https://player.vimeo.com/progressive_redirect/playback/448684113/rendition/540p/file.mp4?loc=external&oauth2_token_id=1284792283&signature=d71e1f8771e78e398c17ee0167611c1619ef11f90b0287b6dff1678279cb67a3',
638
+ width: 960,
639
+ height: 540,
640
+ },
641
+ {
642
+ file: 'https://player.vimeo.com/progressive_redirect/playback/448684113/rendition/720p/file.mp4?loc=external&oauth2_token_id=1284792283&signature=538b5eec06dd01591f156a96c4108e217bd7ad8903e5084e8fb3428e0f8a69a6',
643
+ width: 1280,
644
+ height: 720,
645
+ },
646
+ {
647
+ file: 'https://player.vimeo.com/progressive_redirect/playback/448684113/rendition/1080p/file.mp4?loc=external&oauth2_token_id=1284792283&signature=589537c220ca4c99e746a2d24e2dad8017da016d195485a17a2c8409b3ea8c60',
648
+ width: 1920,
649
+ height: 1080,
650
+ },
651
+ {
652
+ file: 'https://player.vimeo.com/progressive_redirect/playback/448684113/rendition/1440p/file.mp4?loc=external&oauth2_token_id=1284792283&signature=dda9240afee2489dbedda42499d432ebc1454e5ff2bb615bf2af8b8a298d6044',
653
+ width: 2560,
654
+ height: 1440,
655
+ },
656
+ {
657
+ file: 'https://player.vimeo.com/progressive_redirect/playback/448684113/rendition/2160p/file.mp4?loc=external&oauth2_token_id=1284792283&signature=92997d941ff58b9cf8e17d6cf8ec07b332bcf61138e8ea0805fba091501e0e7c',
658
+ width: 3840,
659
+ height: 2160,
660
+ },
661
+ ],
662
+ length_in_seconds: 53,
663
+ hlsManifestUrl:
664
+ 'https://player.vimeo.com/external/448684113.m3u8?s=dfb6ad351fcc3f2e5d98c7e7fac7303fa2b0a416&oauth2_token_id=1284792283',
665
+ },
666
+ trailer2: {
667
+ vimeo_video_id: 448684140,
668
+ video_playback_endpoints: [
669
+ {
670
+ file: 'https://player.vimeo.com/progressive_redirect/playback/448684140/rendition/240p/file.mp4?loc=external&oauth2_token_id=1284792283&signature=1c9adb344eaf45a1f854a209e62616e19feea57516c37f5eb1f884cac928fb06',
671
+ width: 426,
672
+ height: 240,
673
+ },
674
+ {
675
+ file: 'https://player.vimeo.com/progressive_redirect/playback/448684140/rendition/360p/file.mp4?loc=external&oauth2_token_id=1284792283&signature=cde9f4fb028217960e5a2612688d8d18550db81964f1bf21f003fced6b9f63dd',
676
+ width: 640,
677
+ height: 360,
678
+ },
679
+ {
680
+ file: 'https://player.vimeo.com/progressive_redirect/playback/448684140/rendition/540p/file.mp4?loc=external&oauth2_token_id=1284792283&signature=eb870305e3c2719aad514b07026030d7738b5a107693794d0745574e5392fd12',
681
+ width: 960,
682
+ height: 540,
683
+ },
684
+ {
685
+ file: 'https://player.vimeo.com/progressive_redirect/playback/448684140/rendition/720p/file.mp4?loc=external&oauth2_token_id=1284792283&signature=309527ab8047731ace6a103a24536f952a5dc3bd8be2c5c2529385cc2377f8f6',
686
+ width: 1280,
687
+ height: 720,
688
+ },
689
+ {
690
+ file: 'https://player.vimeo.com/progressive_redirect/playback/448684140/rendition/1080p/file.mp4?loc=external&oauth2_token_id=1284792283&signature=f93e002d6d73facf146a3cdcb2d74d8b42677897282d0f89abb02871c664d6d4',
691
+ width: 1920,
692
+ height: 1080,
693
+ },
694
+ {
695
+ file: 'https://player.vimeo.com/progressive_redirect/playback/448684140/rendition/1440p/file.mp4?loc=external&oauth2_token_id=1284792283&signature=4b83c2a73161532bbe36dfae5a1203aa4b6475c60554117533dcd303e76cb67b',
696
+ width: 2560,
697
+ height: 1440,
698
+ },
699
+ {
700
+ file: 'https://player.vimeo.com/progressive_redirect/playback/448684140/rendition/2160p/file.mp4?loc=external&oauth2_token_id=1284792283&signature=3108a1db7e86bd133fe01fd4384980ffaa62e854af5588d94a7f8befb92db563',
701
+ width: 3840,
702
+ height: 2160,
703
+ },
704
+ ],
705
+ length_in_seconds: 106,
706
+ hlsManifestUrl:
707
+ 'https://player.vimeo.com/external/448684140.m3u8?s=06db72bb51f3bc10cde8367452c3cb19ed8834b2&oauth2_token_id=1284792283',
708
+ },
709
+ },
710
+ 'diy-drum-experiment': {
711
+ thumbnailUrl: 'https://dpwjbsxqtam5n.cloudfront.net/shows/diy-drum-experiments.jpg',
712
+ name: 'DIY Drum Experiments',
713
+ shortname: 'Episodes',
714
+ icon: 'icon-shows',
715
+ description:
716
+ 'Step into David Raouf’s workshop where he will show you how to repurpose old and broken drum gear into usable and functional items! Whether you are a handyman or not, this show will give you unique and creative ideas and drum hacks that you have never seen before!',
717
+ allowableFilters: [],
718
+ sortBy: 'sort',
719
+ url: '/diy-drum-experiments',
720
+ },
721
+ 'rhythmic-adventures-of-captain-carson': {
722
+ thumbnailUrl: 'https://dpwjbsxqtam5n.cloudfront.net/shows/raocc-showcard.jpg',
723
+ name: 'Rhythmic Adventures of Captain Carson',
724
+ shortname: 'Episodes',
725
+ icon: 'icon-shows',
726
+ description:
727
+ 'In The Rhythmic Adventures of Captain Carson, kids will join Captain Carson and his best friends Ricky (the robot) and Gary (the alien) as they fly through space and learn fun musical grooves. But they’ve got to be quick, because the tricky Groove Troll is trying to steal their groove!',
728
+ allowableFilters: [],
729
+ sortBy: 'sort',
730
+ },
731
+ 'in-rhythm': {
732
+ thumbnailUrl: 'https://dpwjbsxqtam5n.cloudfront.net/shows/in-rhythm-show-card.jpg',
733
+ name: 'In Rhythm',
734
+ shortname: 'Episodes',
735
+ icon: 'icon-shows',
736
+ description:
737
+ 'Witness a day in the life of a professional touring drummer on the road! “In Rhythm” gives you an inside look into professional drummers, what they do on the road outside of performing, and how they warm-up and prepare for the big stage!',
738
+ allowableFilters: [],
739
+ sortBy: 'sort',
740
+ },
741
+ 'backstage-secret': {
742
+ thumbnailUrl:
743
+ 'https://www.musora.com/musora-cdn/image/width=500,height=500,quality=95,fit=cover/https://d1923uyy6spedc.cloudfront.net/RushDoc-Neil-02.jpg',
744
+ name: 'Backstage Secrets',
745
+ shortname: 'Episodes',
746
+ icon: 'icon-shows',
747
+ description:
748
+ "Join the roadies of Rush and get a firsthand look at what it's like to be part of one of our favorite bands. You’re going on an exciting, behind-the-scenes journey to their 2008 Snakes & Arrows Concert Tour - an exclusive invitation to witness the reveal of all of the band’s backstage secrets. Roadies are the unsung heroes of any band - and being a roadie with a top-rated, world-famous rock and roll band is a highly coveted job. It may appear to be all glamour and adventure, but it can be a grueling marathon of 18-hour workdays!",
749
+ allowableFilters: [],
750
+ sortBy: 'sort',
751
+ url: '/backstage-secrets',
752
+ },
753
+ 'the-history-of-electronic-drums': {
754
+ thumbnailUrl:
755
+ 'https://imagedelivery.net/0Hon__GSkIjm-B_W77SWCA/31847ba4-02d4-4c6a-4507-32b40284a000/width=500,height=500,quality=95,fit=cover',
756
+ name: 'The History Of Electronic Drums',
757
+ shortname: 'Episodes',
758
+ icon: 'icon-shows',
759
+ description:
760
+ 'The music industry is dominated by electronic music and electronic drums. For the first time ever, we’ve gathered 14 of the most innovative electronic drum kits to learn more about how they were made, how they work, and most importantly, how they sound.',
761
+ allowableFilters: [],
762
+ sortBy: 'sort',
763
+ amountOfFutureLessonsToShow: 10,
764
+ showFutureLessonAtTopOrBottom: 'bottom',
765
+ },
766
+ 'drum-fest-international-2022': {
767
+ thumbnailUrl:
768
+ 'https://musora.com/cdn-cgi/imagedelivery/0Hon__GSkIjm-B_W77SWCA/2c12c9ae-5a67-4767-f257-d1fa3693bd00/public',
769
+ name: '2022 Drum Fest International',
770
+ shortname: 'Episodes',
771
+ icon: 'icon-shows',
772
+ description:
773
+ 'In 2022, Drumeo had the exclusive honor of filming Ralph Angelillo’s Drum Fest International. It was an incredible gathering of some of the best drummers in the world. Tune in to see a spectrum of unforgettable performances - from Greyson Nekrutman’s show-stopping jazz, to Simon Phillips’ fancy fusion work, these are videos you do not want to miss.',
774
+ allowableFilters: [],
775
+ sortBy: 'sort',
776
+ },
777
+ spotlight: {
778
+ thumbnailUrl:
779
+ 'https://imagedelivery.net/0Hon__GSkIjm-B_W77SWCA/0b67bd7f-220f-41f3-1797-8c6883a00a00/width=500,height=500,quality=95,fit=cover',
780
+ name: 'Spotlight',
781
+ shortname: 'Spotlight',
782
+ icon: 'icon-shows',
783
+ description:
784
+ "We're standing on the shoulders of giants. Those who came before us paved the way for everyone who came after by developing most of what we take for granted today, in the world of drum-set playing. Learning about these giants and their contributions to our craft is essential to fully appreciate and understand what we do as musicians. This is the journey Todd Sucherman is inviting you to take on with him, as he navigates the incredible world of Spotlight.",
785
+ allowableFilters: [],
786
+ sortBy: 'sort',
787
+ tabs: [
788
+ {
789
+ name: 'All Spotlights',
790
+ short_name: 'ALL',
791
+ value: '',
742
792
  },
743
- 'spotlight': {
744
- thumbnailUrl: 'https://imagedelivery.net/0Hon__GSkIjm-B_W77SWCA/0b67bd7f-220f-41f3-1797-8c6883a00a00/width=500,height=500,quality=95,fit=cover',
745
- name: 'Spotlight',
746
- shortname: 'Spotlight',
747
- icon: 'icon-shows',
748
- description: "We're standing on the shoulders of giants. Those who came before us paved the way for everyone who came after by developing most of what we take for granted today, in the world of drum-set playing. Learning about these giants and their contributions to our craft is essential to fully appreciate and understand what we do as musicians. This is the journey Todd Sucherman is inviting you to take on with him, as he navigates the incredible world of Spotlight.",
749
- allowableFilters: [],
750
- sortBy: 'sort',
751
- tabs: [
752
- {
753
- name: 'All Spotlights',
754
- short_name: 'ALL',
755
- value: ''
756
- },
757
- ]
793
+ ],
794
+ },
795
+ 'play-along': {
796
+ name: 'Play Alongs',
797
+ icon: 'icon-play-alongs',
798
+ description:
799
+ 'Add your drumming to high-quality drumless play-along tracks - with handy playback tools to help you create the perfect performance.',
800
+ allowableFilters: ['difficulty', 'genre', 'bpm'],
801
+ tabs: [
802
+ {
803
+ name: 'All Play-Alongs',
804
+ short_name: 'ALL',
805
+ value: '',
758
806
  },
759
- 'play-along': {
760
- name: "Play Alongs",
761
- icon: "icon-play-alongs",
762
- description: "Add your drumming to high-quality drumless play-along tracks - with handy playback tools to help you create the perfect performance.",
763
- allowableFilters: ['difficulty', 'genre', 'bpm'],
764
- tabs: [
765
- {
766
- name: 'All Play-Alongs',
767
- short_name: 'ALL',
768
- value: '',
769
- },
770
- ],
807
+ ],
808
+ },
809
+ pack: {
810
+ allowableFilters: ['difficulty', 'genre', 'essential', 'theory', 'lifestyle'],
811
+ },
812
+ 'odd-times': {
813
+ thumbnailUrl:
814
+ 'https://musora.com/cdn-cgi/imagedelivery/0Hon__GSkIjm-B_W77SWCA/1bf6fc7a-d1a5-4934-d322-b9f6da454000/public',
815
+ name: 'Odd Times With Aaron Edgar',
816
+ shortname: 'Episodes',
817
+ icon: 'icon-shows',
818
+ allowableFilters: [],
819
+ sortBy: 'sort',
820
+ },
821
+ },
822
+ pianote: {
823
+ instructor: {
824
+ description:
825
+ 'Your piano journey is unique. You need personalized coaching that helps you reach your goals. Learn from some of the best pianists in the world!',
826
+ },
827
+ song: {
828
+ thumbnailUrl: 'https://dpwjbsxqtam5n.cloudfront.net/shows/pianote/songs.jpg',
829
+ shortname: 'songs',
830
+ amountOfFutureLessonsToShow: 3,
831
+ showFutureLessonAtTopOrBottom: 'bottom',
832
+ sortBy: '-published_on',
833
+ },
834
+ course: {
835
+ thumbnailUrl: 'https://dpwjbsxqtam5n.cloudfront.net/shows/pianote/courses.jpg',
836
+ sortBy: '-published_on',
837
+ shortname: 'Courses',
838
+ icon: 'icon-courses',
839
+ description:
840
+ "Tackle your next piano goal with bite-sized courses from many of the world's best pianists.",
841
+ amountOfFutureLessonsToShow: 3,
842
+ showFutureLessonAtTopOrBottom: 'bottom',
843
+ },
844
+ 'quick-tips': {
845
+ thumbnailUrl:
846
+ 'https://imagedelivery.net/0Hon__GSkIjm-B_W77SWCA/7979495d-d06a-4f78-161f-2f670f6f9800/public',
847
+ shortname: 'Quick Tips',
848
+ icon: 'fa-lightbulb',
849
+ amountOfFutureLessonsToShow: 3,
850
+ showFutureLessonAtTopOrBottom: 'bottom',
851
+ },
852
+ 'student-review': {
853
+ thumbnailUrl: 'https://dpwjbsxqtam5n.cloudfront.net/shows/pianote/student-review.jpg',
854
+ shortname: 'Student Reviews',
855
+ description:
856
+ 'Want feedback on your playing? Submit a video for student review. We will watch your submission and then provide helpful encouragement and feedback. This is a great way to build accountability and benefit from the expertise of our teachers.',
857
+ amountOfFutureLessonsToShow: 3,
858
+ showFutureLessonAtTopOrBottom: 'bottom',
859
+ },
860
+ 'question-and-answer': {
861
+ thumbnailUrl: 'https://dpwjbsxqtam5n.cloudfront.net/shows/pianote/question-answer.jpg',
862
+ shortname: 'Q&A',
863
+ icon: 'icon-student-focus',
864
+ description:
865
+ 'Each week we go live to answer your questions. Submit your questions in advance using the button below, in the Q&A thread in the forums, or live in the community chat.',
866
+ amountOfFutureLessonsToShow: 3,
867
+ showFutureLessonAtTopOrBottom: 'bottom',
868
+ tabs: [
869
+ {
870
+ name: 'Lessons',
871
+ short_name: 'LESSONS',
872
+ value: '',
771
873
  },
772
- 'pack': {
773
- allowableFilters: ['difficulty', 'genre', 'essential', 'theory', 'lifestyle'],
874
+ {
875
+ name: 'Instructors',
876
+ short_name: 'INSTRUCTORS',
877
+ is_group_by: true,
878
+ value: 'instructor',
774
879
  },
775
- 'odd-times': {
776
- thumbnailUrl: 'https://musora.com/cdn-cgi/imagedelivery/0Hon__GSkIjm-B_W77SWCA/1bf6fc7a-d1a5-4934-d322-b9f6da454000/public',
777
- name: 'Odd Times With Aaron Edgar',
778
- shortname: 'Episodes',
779
- icon: 'icon-shows',
780
- allowableFilters: [],
781
- sortBy: 'sort',
880
+ {
881
+ name: 'Genres',
882
+ short_name: 'Genres',
883
+ is_group_by: true,
884
+ value: 'genre',
782
885
  },
886
+ ],
783
887
  },
784
- 'pianote': {
785
- 'instructor': {
786
- description: "Your piano journey is unique. You need personalized coaching that helps you reach your goals. Learn from some of the best pianists in the world!",
888
+ 'boot-camp': {
889
+ thumbnailUrl: 'https://dpwjbsxqtam5n.cloudfront.net/shows/pianote/bootcamps.jpg',
890
+ name: 'Bootcamps',
891
+ allowableFilters: ['difficulty', 'genre', 'essential'],
892
+ sortBy: '-published_on',
893
+ shortname: 'Bootcamps',
894
+ url: '/boot-camps',
895
+ icon: 'icon-chords-scales-icon',
896
+ description:
897
+ 'These bootcamps deliver results, but they also require commitment. Select a topic that you want to become an expert in, and get ready to learn!',
898
+ amountOfFutureLessonsToShow: 3,
899
+ showFutureLessonAtTopOrBottom: 'bottom',
900
+ tabs: [
901
+ {
902
+ name: 'Lessons',
903
+ short_name: 'LESSONS',
904
+ value: '',
787
905
  },
788
- 'song': {
789
- thumbnailUrl: 'https://dpwjbsxqtam5n.cloudfront.net/shows/pianote/songs.jpg',
790
- shortname: 'songs',
791
- amountOfFutureLessonsToShow: 3,
792
- showFutureLessonAtTopOrBottom: 'bottom',
793
- sortBy: '-published_on',
906
+ {
907
+ name: 'Instructors',
908
+ short_name: 'INSTRUCTORS',
909
+ is_group_by: true,
910
+ value: 'instructor',
794
911
  },
795
- 'course': {
796
- thumbnailUrl: 'https://dpwjbsxqtam5n.cloudfront.net/shows/pianote/courses.jpg',
797
- sortBy: '-published_on',
798
- shortname: 'Courses',
799
- icon: "icon-courses",
800
- description: "Tackle your next piano goal with bite-sized courses from many of the world's best pianists.",
801
- amountOfFutureLessonsToShow: 3,
802
- showFutureLessonAtTopOrBottom: 'bottom',
912
+ {
913
+ name: 'Genres',
914
+ short_name: 'Genres',
915
+ is_group_by: true,
916
+ value: 'genre',
803
917
  },
804
- 'quick-tips': {
805
- thumbnailUrl: 'https://imagedelivery.net/0Hon__GSkIjm-B_W77SWCA/7979495d-d06a-4f78-161f-2f670f6f9800/public',
806
- shortname: 'Quick Tips',
807
- icon: 'fa-lightbulb',
808
- amountOfFutureLessonsToShow: 3,
809
- showFutureLessonAtTopOrBottom: 'bottom',
918
+ ],
919
+ },
920
+ podcast: {
921
+ thumbnailUrl: 'https://dpwjbsxqtam5n.cloudfront.net/shows/pianote/podcast.png',
922
+ name: 'The Pianote Podcast',
923
+ allowableFilters: ['difficulty', 'genre'],
924
+ sortBy: '-published_on',
925
+ shortname: 'Podcast',
926
+ icon: 'icon-podcast',
927
+ url: '/podcasts',
928
+ description:
929
+ 'Join Lisa in her quest to unify piano players around the world, build community, and make playing the piano cool!',
930
+ amountOfFutureLessonsToShow: 3,
931
+ showFutureLessonAtTopOrBottom: 'bottom',
932
+ tabs: [
933
+ {
934
+ name: 'Lessons',
935
+ short_name: 'LESSONS',
936
+ value: '',
810
937
  },
811
- 'student-review': {
812
- thumbnailUrl: 'https://dpwjbsxqtam5n.cloudfront.net/shows/pianote/student-review.jpg',
813
- shortname: 'Student Reviews',
814
- description: "Want feedback on your playing? Submit a video for student review. We will watch your submission and then provide helpful encouragement and feedback. This is a great way to build accountability and benefit from the expertise of our teachers.",
815
- amountOfFutureLessonsToShow: 3,
816
- showFutureLessonAtTopOrBottom: 'bottom',
938
+ {
939
+ name: 'Instructors',
940
+ short_name: 'INSTRUCTORS',
941
+ is_group_by: true,
942
+ value: 'instructor',
817
943
  },
818
- 'question-and-answer': {
819
- thumbnailUrl: 'https://dpwjbsxqtam5n.cloudfront.net/shows/pianote/question-answer.jpg',
820
- shortname: 'Q&A',
821
- icon: 'icon-student-focus',
822
- description: "Each week we go live to answer your questions. Submit your questions in advance using the button below, in the Q&A thread in the forums, or live in the community chat.",
823
- amountOfFutureLessonsToShow: 3,
824
- showFutureLessonAtTopOrBottom: 'bottom',
825
- tabs: [
826
- {
827
- name: 'Lessons',
828
- short_name: 'LESSONS',
829
- value: '',
830
- },
831
- {
832
- name: 'Instructors',
833
- short_name: 'INSTRUCTORS',
834
- is_group_by: true,
835
- value: 'instructor',
836
- },
837
- {
838
- name: 'Genres',
839
- short_name: 'Genres',
840
- is_group_by: true,
841
- value: 'genre',
842
- },
843
- ],
944
+ {
945
+ name: 'Genres',
946
+ short_name: 'Genres',
947
+ is_group_by: true,
948
+ value: 'genre',
844
949
  },
845
- 'boot-camp': {
846
- thumbnailUrl: 'https://dpwjbsxqtam5n.cloudfront.net/shows/pianote/bootcamps.jpg',
847
- name: 'Bootcamps',
848
- allowableFilters: ['difficulty', 'genre', 'essential'],
849
- sortBy: '-published_on',
850
- shortname: 'Bootcamps',
851
- url: '/boot-camps',
852
- icon: 'icon-chords-scales-icon',
853
- description: "These bootcamps deliver results, but they also require commitment. Select a topic that you want to become an expert in, and get ready to learn!",
854
- amountOfFutureLessonsToShow: 3,
855
- showFutureLessonAtTopOrBottom: 'bottom',
856
- tabs: [
857
- {
858
- name: 'Lessons',
859
- short_name: 'LESSONS',
860
- value: '',
861
- },
862
- {
863
- name: 'Instructors',
864
- short_name: 'INSTRUCTORS',
865
- is_group_by: true,
866
- value: 'instructor',
867
- },
868
- {
869
- name: 'Genres',
870
- short_name: 'Genres',
871
- is_group_by: true,
872
- value: 'genre',
873
- },
874
- ],
950
+ ],
951
+ },
952
+ 'song-tutorial': {
953
+ name: 'Song Tutorials',
954
+ thumbnailUrl: 'https://dpwjbsxqtam5n.cloudfront.net/shows/pianote/songs.jpg',
955
+ allowableFilters: ['difficulty', 'genre'],
956
+ sortBy: '-published_on',
957
+ shortname: 'song tutorials',
958
+ icon: 'play-progress',
959
+ description: '',
960
+ amountOfFutureLessonsToShow: 3,
961
+ showFutureLessonAtTopOrBottom: 'bottom',
962
+ tabs: [
963
+ {
964
+ name: 'Lessons',
965
+ short_name: 'Lessons',
966
+ value: '',
875
967
  },
876
- 'podcast': {
877
- thumbnailUrl: 'https://dpwjbsxqtam5n.cloudfront.net/shows/pianote/podcast.png',
878
- name: 'The Pianote Podcast',
879
- allowableFilters: ['difficulty', 'genre'],
880
- sortBy: '-published_on',
881
- shortname: 'Podcast',
882
- icon: 'icon-podcast',
883
- url: '/podcasts',
884
- description: "Join Lisa in her quest to unify piano players around the world, build community, and make playing the piano cool!",
885
- amountOfFutureLessonsToShow: 3,
886
- showFutureLessonAtTopOrBottom: 'bottom',
887
- tabs: [
888
- {
889
- name: 'Lessons',
890
- short_name: 'LESSONS',
891
- value: '',
892
- },
893
- {
894
- name: 'Instructors',
895
- short_name: 'INSTRUCTORS',
896
- is_group_by: true,
897
- value: 'instructor',
898
- },
899
- {
900
- name: 'Genres',
901
- short_name: 'Genres',
902
- is_group_by: true,
903
- value: 'genre',
904
- },
905
- ],
968
+ {
969
+ name: 'Artists',
970
+ short_name: 'ARTISTS',
971
+ is_group_by: true,
972
+ value: 'artist',
906
973
  },
907
- 'song-tutorial': {
908
- name: "Song Tutorials",
909
- thumbnailUrl: 'https://dpwjbsxqtam5n.cloudfront.net/shows/pianote/songs.jpg',
910
- allowableFilters: ['difficulty', 'genre'],
911
- sortBy: '-published_on',
912
- shortname: 'song tutorials',
913
- icon: "play-progress",
914
- description: "",
915
- amountOfFutureLessonsToShow: 3,
916
- showFutureLessonAtTopOrBottom: 'bottom',
917
- tabs: [
918
- {
919
- name: 'Lessons',
920
- short_name: 'Lessons',
921
- value: '',
922
- },
923
- {
924
- name: 'Artists',
925
- short_name: 'ARTISTS',
926
- is_group_by: true,
927
- value: 'artist',
928
- },
929
- {
930
- name: 'Genres',
931
- short_name: 'Genres',
932
- is_group_by: true,
933
- value: 'genre',
934
- },
935
- ],
974
+ {
975
+ name: 'Genres',
976
+ short_name: 'Genres',
977
+ is_group_by: true,
978
+ value: 'genre',
936
979
  },
980
+ ],
981
+ },
982
+ },
983
+ guitareo: {
984
+ instructor: {
985
+ description:
986
+ "Tackle your next guitar goal with bite-sized courses from many of the world's best guitarists.",
937
987
  },
938
- 'guitareo': {
939
- 'instructor': {
940
- description: "Tackle your next guitar goal with bite-sized courses from many of the world's best guitarists.",
988
+ course: {
989
+ description:
990
+ 'These jam-packed training courses cover various lesson topics in detail. Find one that suits your guitar goals, and get started!',
991
+ },
992
+ challenge: {
993
+ tabs: [
994
+ {
995
+ name: 'All',
996
+ short_name: 'All',
997
+ value: '',
998
+ },
999
+ {
1000
+ name: 'Completed',
1001
+ short_name: 'COMPLETED',
1002
+ is_group_by: true,
1003
+ value: 'completed',
941
1004
  },
942
- 'course': {
943
- description: "These jam-packed training courses cover various lesson topics in detail. Find one that suits your guitar goals, and get started!",
1005
+ {
1006
+ name: 'Owned Challenges',
1007
+ short_name: 'OWNED CHALLENGES',
1008
+ is_group_by: true,
1009
+ value: 'owned',
944
1010
  },
945
- 'challenge': {
946
- tabs: [
947
- {
948
- name: 'All',
949
- short_name: 'All',
950
- value: '',
951
- },
952
- {
953
- name: 'Completed',
954
- short_name: 'COMPLETED',
955
- is_group_by: true,
956
- value: 'completed'
957
- },
958
- {
959
- name: 'Owned Challenges',
960
- short_name: 'OWNED CHALLENGES',
961
- is_group_by: true,
962
- value: 'owned',
963
- },
964
- ],
1011
+ ],
1012
+ },
1013
+ song: {
1014
+ allowableFilters: ['difficulty', 'genre', 'lifestyle', 'instrumentless'],
1015
+ },
1016
+ 'play-along': {
1017
+ name: 'Play Alongs',
1018
+ icon: 'icon-play-alongs',
1019
+ description:
1020
+ 'Our play-along feature teaches you chords, strumming patterns, riffs, and song layouts -- with handy playback tools to help you create the perfect performance.',
1021
+ allowableFilters: ['difficulty', 'genre', 'essential', 'theory', 'lifestyle'],
1022
+ tabs: [
1023
+ {
1024
+ name: 'All Play-Alongs',
1025
+ short_name: 'ALL',
1026
+ value: '',
965
1027
  },
966
- 'song': {
967
- allowableFilters: ['difficulty', 'genre', 'lifestyle', 'instrumentless'],
1028
+ ],
1029
+ },
1030
+ recording: {
1031
+ name: 'Archives',
1032
+ shortname: 'Lessons',
1033
+ icon: 'icon-library',
1034
+ description:
1035
+ 'Miss a live event or just want to watch a particular episode again? This is the place to do it. All of the Guitareo live broadcasts are archived here for you to watch at your leisure. If you have any questions or want to discuss the topics mentioned in the videos you can always post in the forum.',
1036
+ allowableFilters: ['difficulty', 'genre'],
1037
+ tabs: [
1038
+ {
1039
+ name: 'Lessons',
1040
+ short_name: 'LESSONS',
1041
+ value: '',
968
1042
  },
969
- 'play-along': {
970
- name: "Play Alongs",
971
- icon: "icon-play-alongs",
972
- description: "Our play-along feature teaches you chords, strumming patterns, riffs, and song layouts -- with handy playback tools to help you create the perfect performance.",
973
- allowableFilters: ['difficulty', 'genre', 'essential', 'theory', 'lifestyle'],
974
- tabs: [
975
- {
976
- name: 'All Play-Alongs',
977
- short_name: 'ALL',
978
- value: '',
979
- },
980
- ],
1043
+ {
1044
+ name: 'Instructors',
1045
+ short_name: 'INSTRUCTORS',
1046
+ is_group_by: true,
1047
+ value: 'instructor',
981
1048
  },
982
- 'recording': {
983
- name: "Archives",
984
- shortname: "Lessons",
985
- icon: "icon-library",
986
- description: "Miss a live event or just want to watch a particular episode again? This is the place to do it. All of the Guitareo live broadcasts are archived here for you to watch at your leisure. If you have any questions or want to discuss the topics mentioned in the videos you can always post in the forum.",
987
- allowableFilters: ['difficulty', 'genre'],
988
- tabs: [
989
- {
990
- name: 'Lessons',
991
- short_name: 'LESSONS',
992
- value: '',
993
- },
994
- {
995
- name: 'Instructors',
996
- short_name: 'INSTRUCTORS',
997
- is_group_by: true,
998
- value: 'instructor',
999
- },
1000
- {
1001
- name: 'Genres',
1002
- short_name: 'Genres',
1003
- is_group_by: true,
1004
- value: 'genre',
1005
- },
1006
- ],
1049
+ {
1050
+ name: 'Genres',
1051
+ short_name: 'Genres',
1052
+ is_group_by: true,
1053
+ value: 'genre',
1007
1054
  },
1008
- 'quick-tips': {
1009
- thumbnailUrl: 'https://imagedelivery.net/0Hon__GSkIjm-B_W77SWCA/297dc5b4-e878-4238-d5b5-ed0588ee0b00/public',
1010
- shortname: "quick-tips",
1011
- icon: "icon-shows",
1012
- allowableFilters: ['difficulty', 'genre', 'essential', 'theory', 'lifestyle'],
1055
+ ],
1056
+ },
1057
+ 'quick-tips': {
1058
+ thumbnailUrl:
1059
+ 'https://imagedelivery.net/0Hon__GSkIjm-B_W77SWCA/297dc5b4-e878-4238-d5b5-ed0588ee0b00/public',
1060
+ shortname: 'quick-tips',
1061
+ icon: 'icon-shows',
1062
+ allowableFilters: ['difficulty', 'genre', 'essential', 'theory', 'lifestyle'],
1063
+ },
1064
+ 'question-and-answer': {
1065
+ thumbnailUrl: 'https://d1923uyy6spedc.cloudfront.net/question-answer-singeo.png',
1066
+ icon: 'fas fa-question-circle',
1067
+ description:
1068
+ 'Each week we go live to answer your questions. Submit your questions in advance using the button below, in the Q&A thread in the forums, or live in the community chat.',
1069
+ allowableFilters: ['difficulty', 'genre', 'essential', 'theory'],
1070
+ },
1071
+ 'student-review': {
1072
+ thumbnailUrl: 'https://d1923uyy6spedc.cloudfront.net/student-reviews-singeo.png',
1073
+ description:
1074
+ 'Want feedback on your playing? Submit a video for student review. We will watch your submission and then provide helpful encouragement and feedback. This is a great way to build accountability and benefit from the expertise of our teachers.',
1075
+ },
1076
+ },
1077
+ singeo: {
1078
+ instructor: {
1079
+ description:
1080
+ 'Your singing journey is unique. You need personalized coaching that helps you reach your goals. Learn from some of the best singers and vocal coaches in the world!',
1081
+ },
1082
+ course: {
1083
+ description:
1084
+ "Tackle your next singing goal with bite-sized courses from many of the world's best vocalists.",
1085
+ },
1086
+ 'quick-tips': {
1087
+ thumbnailUrl:
1088
+ 'https://imagedelivery.net/0Hon__GSkIjm-B_W77SWCA/8464033e-9b4e-458e-d613-e89fb47e2a00/public',
1089
+ icon: 'icon-shows',
1090
+ },
1091
+ challenge: {
1092
+ tabs: [
1093
+ {
1094
+ name: 'All',
1095
+ short_name: 'All',
1096
+ value: '',
1013
1097
  },
1014
- 'question-and-answer': {
1015
- thumbnailUrl: 'https://d1923uyy6spedc.cloudfront.net/question-answer-singeo.png',
1016
- icon: "fas fa-question-circle",
1017
- description: "Each week we go live to answer your questions. Submit your questions in advance using the button below, in the Q&A thread in the forums, or live in the community chat.",
1018
- allowableFilters: ['difficulty', 'genre', 'essential', 'theory'],
1098
+ {
1099
+ name: 'Completed',
1100
+ short_name: 'COMPLETED',
1101
+ is_group_by: true,
1102
+ value: 'completed',
1019
1103
  },
1020
- 'student-review': {
1021
- thumbnailUrl: 'https://d1923uyy6spedc.cloudfront.net/student-reviews-singeo.png',
1022
- description: "Want feedback on your playing? Submit a video for student review. We will watch your submission and then provide helpful encouragement and feedback. This is a great way to build accountability and benefit from the expertise of our teachers.",
1104
+ {
1105
+ name: 'Owned Challenges',
1106
+ short_name: 'OWNED CHALLENGES',
1107
+ is_group_by: true,
1108
+ value: 'owned',
1023
1109
  },
1110
+ ],
1024
1111
  },
1025
- 'singeo': {
1026
- 'instructor': {
1027
- description: "Your singing journey is unique. You need personalized coaching that helps you reach your goals. Learn from some of the best singers and vocal coaches in the world!",
1112
+ 'question-and-answer': {
1113
+ thumbnailUrl: 'https://d1923uyy6spedc.cloudfront.net/question-answer.png',
1114
+ icon: 'fas fa-question-circle',
1115
+ tabs: [
1116
+ {
1117
+ name: 'Lessons',
1118
+ short_name: 'LESSONS',
1119
+ value: '',
1028
1120
  },
1029
- 'course': {
1030
- description: "Tackle your next singing goal with bite-sized courses from many of the world's best vocalists.",
1121
+ {
1122
+ name: 'Instructors',
1123
+ short_name: 'INSTRUCTORS',
1124
+ is_group_by: true,
1125
+ value: 'instructor',
1031
1126
  },
1032
- 'quick-tips': {
1033
- thumbnailUrl: 'https://imagedelivery.net/0Hon__GSkIjm-B_W77SWCA/8464033e-9b4e-458e-d613-e89fb47e2a00/public',
1034
- icon: "icon-shows",
1127
+ {
1128
+ name: 'Genres',
1129
+ short_name: 'Genres',
1130
+ is_group_by: true,
1131
+ value: 'genre',
1035
1132
  },
1036
- 'challenge': {
1037
- tabs: [
1038
- {
1039
- name: 'All',
1040
- short_name: 'All',
1041
- value: '',
1042
- },
1043
- {
1044
- name: 'Completed',
1045
- short_name: 'COMPLETED',
1046
- is_group_by: true,
1047
- value: 'completed'
1048
- },
1049
- {
1050
- name: 'Owned Challenges',
1051
- short_name: 'OWNED CHALLENGES',
1052
- is_group_by: true,
1053
- value: 'owned',
1054
- },
1055
- ],
1133
+ ],
1134
+ },
1135
+ 'student-review': {
1136
+ thumbnailUrl: 'https://d1923uyy6spedc.cloudfront.net/student-reviews.png',
1137
+ icon: 'icon-student-focus',
1138
+ description:
1139
+ 'Want feedback on your singing? Submit a video for student review. We will watch your submission and then provide helpful encouragement and feedback. This is a great way to build accountability and benefit from the expertise of our teachers.',
1140
+ },
1141
+ routine: {
1142
+ name: 'Routines',
1143
+ icon: 'icon-shows',
1144
+ description:
1145
+ 'Warm up your voice for any occasion with our bite-sized routines - ranging from 5 to 20 minutes - perfect for busy days or when you need motivation.',
1146
+ allowableFilters: ['difficulty', 'genre', 'type'],
1147
+ tabs: [
1148
+ {
1149
+ name: 'All Routines',
1150
+ short_name: 'ALL ROUTINES',
1151
+ value: '',
1056
1152
  },
1057
- 'question-and-answer': {
1058
- thumbnailUrl: 'https://d1923uyy6spedc.cloudfront.net/question-answer.png',
1059
- icon: "fas fa-question-circle",
1060
- tabs: [
1061
- {
1062
- name: 'Lessons',
1063
- short_name: 'LESSONS',
1064
- value: '',
1065
- },
1066
- {
1067
- name: 'Instructors',
1068
- short_name: 'INSTRUCTORS',
1069
- is_group_by: true,
1070
- value: 'instructor',
1071
- },
1072
- {
1073
- name: 'Genres',
1074
- short_name: 'Genres',
1075
- is_group_by: true,
1076
- value: 'genre',
1077
- },
1078
- ],
1153
+ ],
1154
+ trailer: {
1155
+ vimeo_video_id: 578243377,
1156
+ video_playback_endpoints: [
1157
+ {
1158
+ file: 'https://player.vimeo.com/progressive_redirect/playback/578243377/rendition/360p/file.mp4?loc=external&oauth2_token_id=1284792283&signature=9eff053636a9b8abc19a0e44ae437f7fa50a0cf0a83c39373e8ae29b50dff9b6',
1159
+ width: 640,
1160
+ height: 360,
1161
+ },
1162
+ {
1163
+ file: 'https://player.vimeo.com/progressive_redirect/playback/578243377/rendition/540p/file.mp4?loc=external&oauth2_token_id=1284792283&signature=f8a01157cd5707e6ade5f84a867edbd4f549f091c6c284c5352ec290b9db7bf7',
1164
+ width: 960,
1165
+ height: 540,
1166
+ },
1167
+ {
1168
+ file: 'https://player.vimeo.com/progressive_redirect/playback/578243377/rendition/720p/file.mp4?loc=external&oauth2_token_id=1284792283&signature=8ccd1473aae48a510d44d38df2312a72c254e210e230f79cc0c3efae7b82f6b6',
1169
+ width: 1280,
1170
+ height: 720,
1171
+ },
1172
+ {
1173
+ file: 'https://player.vimeo.com/progressive_redirect/playback/578243377/rendition/1080p/file.mp4?loc=external&oauth2_token_id=1284792283&signature=a3b326c9c79746ddf4915133220f70e4f9498e5fb089ebba0361583d2a55376d',
1174
+ width: 1920,
1175
+ height: 1080,
1176
+ },
1177
+ {
1178
+ file: 'https://player.vimeo.com/progressive_redirect/playback/578243377/rendition/1440p/file.mp4?loc=external&oauth2_token_id=1284792283&signature=c0309249419ce7f80d9bbc89c63851fbb194e623fca6046b7e685611627eceac',
1179
+ width: 2560,
1180
+ height: 1440,
1181
+ },
1182
+ {
1183
+ file: 'https://player.vimeo.com/progressive_redirect/playback/578243377/rendition/2160p/file.mp4?loc=external&oauth2_token_id=1284792283&signature=6ea971d1165f0f1df7af46ccdc33041a70e917028d1c1cd7af4279edd2ef9550',
1184
+ width: 3840,
1185
+ height: 2160,
1186
+ },
1187
+ ],
1188
+ length_in_seconds: 82,
1189
+ hlsManifestUrl:
1190
+ 'https://player.vimeo.com/external/578243377.m3u8?s=3def726f48a4a300420f793090e4913a48c8d1f9&oauth2_token_id=1284792283',
1191
+ },
1192
+ },
1193
+ workout: {
1194
+ name: 'Workouts',
1195
+ shortname: 'Workouts',
1196
+ tabs: [
1197
+ {
1198
+ name: 'All',
1199
+ short_name: 'ALL',
1200
+ value: '',
1079
1201
  },
1080
- 'student-review': {
1081
- thumbnailUrl: 'https://d1923uyy6spedc.cloudfront.net/student-reviews.png',
1082
- icon: "icon-student-focus",
1083
- description: "Want feedback on your singing? Submit a video for student review. We will watch your submission and then provide helpful encouragement and feedback. This is a great way to build accountability and benefit from the expertise of our teachers.",
1202
+ {
1203
+ name: '5 Minutes',
1204
+ short_name: '5 MINS',
1205
+ is_required_field: true,
1206
+ value: 'length_in_seconds,-450',
1207
+ value_web: ['length_in_seconds < 450'],
1084
1208
  },
1085
- 'routine': {
1086
- name: "Routines",
1087
- icon: "icon-shows",
1088
- description: "Warm up your voice for any occasion with our bite-sized routines - ranging from 5 to 20 minutes - perfect for busy days or when you need motivation.",
1089
- allowableFilters: ['difficulty', 'genre', 'type'],
1090
- tabs: [
1091
- {
1092
- name: 'All Routines',
1093
- short_name: 'ALL ROUTINES',
1094
- value: '',
1095
- },
1096
- ],
1097
- trailer: {
1098
- vimeo_video_id: 578243377,
1099
- video_playback_endpoints: [
1100
- {
1101
- file: "https://player.vimeo.com/progressive_redirect/playback/578243377/rendition/360p/file.mp4?loc=external&oauth2_token_id=1284792283&signature=9eff053636a9b8abc19a0e44ae437f7fa50a0cf0a83c39373e8ae29b50dff9b6",
1102
- width: 640,
1103
- height: 360
1104
- },
1105
- {
1106
- file: "https://player.vimeo.com/progressive_redirect/playback/578243377/rendition/540p/file.mp4?loc=external&oauth2_token_id=1284792283&signature=f8a01157cd5707e6ade5f84a867edbd4f549f091c6c284c5352ec290b9db7bf7",
1107
- width: 960,
1108
- height: 540
1109
- },
1110
- {
1111
- file: "https://player.vimeo.com/progressive_redirect/playback/578243377/rendition/720p/file.mp4?loc=external&oauth2_token_id=1284792283&signature=8ccd1473aae48a510d44d38df2312a72c254e210e230f79cc0c3efae7b82f6b6",
1112
- width: 1280,
1113
- height: 720
1114
- },
1115
- {
1116
- file: "https://player.vimeo.com/progressive_redirect/playback/578243377/rendition/1080p/file.mp4?loc=external&oauth2_token_id=1284792283&signature=a3b326c9c79746ddf4915133220f70e4f9498e5fb089ebba0361583d2a55376d",
1117
- width: 1920,
1118
- height: 1080
1119
- },
1120
- {
1121
- file: "https://player.vimeo.com/progressive_redirect/playback/578243377/rendition/1440p/file.mp4?loc=external&oauth2_token_id=1284792283&signature=c0309249419ce7f80d9bbc89c63851fbb194e623fca6046b7e685611627eceac",
1122
- width: 2560,
1123
- height: 1440
1124
- },
1125
- {
1126
- file: "https://player.vimeo.com/progressive_redirect/playback/578243377/rendition/2160p/file.mp4?loc=external&oauth2_token_id=1284792283&signature=6ea971d1165f0f1df7af46ccdc33041a70e917028d1c1cd7af4279edd2ef9550",
1127
- width: 3840,
1128
- height: 2160
1129
- }
1130
- ],
1131
- length_in_seconds: 82,
1132
- hlsManifestUrl: "https://player.vimeo.com/external/578243377.m3u8?s=3def726f48a4a300420f793090e4913a48c8d1f9&oauth2_token_id=1284792283"
1133
- }
1209
+ {
1210
+ name: '10 Minutes',
1211
+ short_name: '10 MINS',
1212
+ is_required_field: true,
1213
+ value: 'length_in_seconds,450-750',
1214
+ value_web: ['length_in_seconds > 451', 'length_in_seconds < 751'],
1134
1215
  },
1135
- 'workout': {
1136
- name: "Workouts",
1137
- shortname: 'Workouts',
1138
- tabs: [
1139
- {
1140
- name: 'All',
1141
- short_name: 'ALL',
1142
- value: '',
1143
- },
1144
- {
1145
- name: '5 Minutes',
1146
- short_name: '5 MINS',
1147
- is_required_field: true,
1148
- value: 'length_in_seconds,-450',
1149
- value_web: ["length_in_seconds < 450"]
1150
- },
1151
- {
1152
- name: '10 Minutes',
1153
- short_name: '10 MINS',
1154
- is_required_field: true,
1155
- value: 'length_in_seconds,450-750',
1156
- value_web: [
1157
- "length_in_seconds > 451",
1158
- "length_in_seconds < 751"
1159
- ]
1160
- },
1161
- {
1162
- name: 'Instructors',
1163
- short_name: 'INSTRUCTORS',
1164
- is_group_by: true,
1165
- value: 'instructor',
1166
- },
1167
- ],
1216
+ {
1217
+ name: 'Instructors',
1218
+ short_name: 'INSTRUCTORS',
1219
+ is_group_by: true,
1220
+ value: 'instructor',
1168
1221
  },
1169
- }
1170
- };
1222
+ ],
1223
+ },
1224
+ },
1225
+ }
1171
1226
 
1172
- export const typeWithSortOrder = ['in-rhythm', 'diy-drum-experiments', 'rhythmic-adventures-of-captain-carson'];
1227
+ export const typeWithSortOrder = [
1228
+ 'in-rhythm',
1229
+ 'diy-drum-experiments',
1230
+ 'rhythmic-adventures-of-captain-carson',
1231
+ ]
1173
1232
  export function processMetadata(brand, type, withFilters = false) {
1174
- let brandMetaData = contentMetadata[brand]?.[type];
1175
- // If the type is explicitly defined as null or the brand doesn't exist return null
1176
- // Specifically this is for drumeo.student-review
1177
- if (brandMetaData === null) {
1178
- return null;
1179
- }
1180
- let commonMetaData = commonMetadata[type];
1181
- brandMetaData = { ...commonMetaData, ...brandMetaData };
1182
- if (Object.keys(brandMetaData).length === 0) {
1183
- return null;
1184
- }
1185
- const processedData = {
1186
- type,
1187
- thumbnailUrl: brandMetaData.thumbnailUrl || null,
1188
- name: brandMetaData.name || null,
1189
- description: brandMetaData.description || null,
1190
- url: brandMetaData.url ? (brand + brandMetaData.url) : (brand + '/' + type)
1191
- };
1233
+ let brandMetaData = contentMetadata[brand]?.[type]
1234
+ // If the type is explicitly defined as null or the brand doesn't exist return null
1235
+ // Specifically this is for drumeo.student-review
1236
+ if (brandMetaData === null) {
1237
+ return null
1238
+ }
1239
+ let commonMetaData = commonMetadata[type]
1240
+ brandMetaData = { ...commonMetaData, ...brandMetaData }
1241
+ if (Object.keys(brandMetaData).length === 0) {
1242
+ return null
1243
+ }
1244
+ const processedData = {
1245
+ type,
1246
+ thumbnailUrl: brandMetaData.thumbnailUrl || null,
1247
+ name: brandMetaData.name || null,
1248
+ description: brandMetaData.description || null,
1249
+ url: brandMetaData.url ? brand + brandMetaData.url : brand + '/' + type,
1250
+ }
1192
1251
 
1193
- if (withFilters) {
1194
- Object.keys(brandMetaData).forEach(key => {
1195
- if (!['thumbnailUrl', 'name', 'description'].includes(key)) {
1196
- processedData[key] = brandMetaData[key];
1197
- }
1198
- });
1199
- }
1252
+ if (withFilters) {
1253
+ Object.keys(brandMetaData).forEach((key) => {
1254
+ if (!['thumbnailUrl', 'name', 'description'].includes(key)) {
1255
+ processedData[key] = brandMetaData[key]
1256
+ }
1257
+ })
1258
+ }
1200
1259
 
1201
- return processedData;
1260
+ return processedData
1202
1261
  }