purdie 0.0.12 → 0.0.13

Sign up to get free protection for your applications and to get access to all the features.
Files changed (79) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +17 -13
  3. data/Rakefile +6 -2
  4. data/features/comments.feature +2 -13
  5. data/features/duff-credentials.feature +2 -3
  6. data/features/flickr-album.feature +5 -0
  7. data/features/flickr-different-size.feature +1 -0
  8. data/features/flickr-with-lookups.feature +1 -0
  9. data/features/rfm.feature +5 -0
  10. data/features/select-file.feature +26 -24
  11. data/features/soundcloud-set.feature +2 -2
  12. data/features/support/fixtures/vcr.nope/A_URL_we_don_t_understand/Handle_a_URL_we_don_t_recognise.yml +125 -0
  13. data/features/support/fixtures/vcr.nope/First_contact_with_the_Real_World/Generate_YAML_for_the_Raw_Funk_Maharishi.yml +536 -0
  14. data/features/support/fixtures/vcr.nope/Flickr/Generate_Flickr_YAML.yml +131 -0
  15. data/features/support/fixtures/vcr.nope/Flickr/Generate_Flickr_YAML_with_lookups.yml +129 -0
  16. data/features/support/fixtures/vcr.nope/Flickr_album/Generate_Flickr_YAML_for_an_album.yml +2280 -0
  17. data/features/support/fixtures/vcr.nope/Handle_comments/Handle_comments_in_a_source_file.yml +131 -0
  18. data/features/support/fixtures/vcr.nope/Missing_or_bad_credentials/Bad_credentials_for_multiple_services.yml +156 -0
  19. data/features/support/fixtures/{vcr → vcr.nope}/Purdie/Generate_several_YAML.yml +0 -0
  20. data/features/support/fixtures/vcr.nope/Select_a_file_to_process/Choose_file_to_process.yml +220 -0
  21. data/features/support/fixtures/vcr.nope/Set_Flickr_picturesize/Generate_Flickr_YAML.yml +131 -0
  22. data/features/support/fixtures/{vcr/Select_a_file_to_process/Choose_file_to_process.yml → vcr.nope/Soundcloud/Generate_SoundCloud_YAML.yml} +4 -4
  23. data/features/support/fixtures/vcr.nope/Soundcloud/Generate_SoundCloud_YAML_for_multiple_tracks.yml +181 -0
  24. data/features/support/fixtures/vcr.nope/Soundcloud_set/Generate_YAML_for_a_SoundCloud_set.yml +461 -0
  25. data/features/support/fixtures/vcr.nope/Vimeo/Generate_Vimeo_YAML.yml +53 -0
  26. data/features/support/fixtures/vcr.nope/Vimeo_albums/Generate_YAML_for_a_Vimeo_album.yml +210 -0
  27. data/features/support/fixtures/vcr.nope/YouTube/Generate_YouTube_YAML.yml +970 -0
  28. data/features/support/fixtures/vcr.nope/YouTube_playlists/Generate_YAML_for_a_YouTube_playlist.yml +9688 -0
  29. data/features/support/fixtures/vcr/A_URL_we_don_t_understand/Handle_a_URL_we_don_t_recognise.yml +23 -17
  30. data/features/support/fixtures/vcr/First_contact_with_the_Real_World/Generate_YAML_for_the_Raw_Funk_Maharishi.yml +134 -57
  31. data/features/support/fixtures/vcr/Flickr/Generate_Flickr_YAML.yml +24 -18
  32. data/features/support/fixtures/vcr/Flickr/Generate_Flickr_YAML_with_lookups.yml +25 -19
  33. data/features/support/fixtures/vcr/Flickr_album/Generate_Flickr_YAML_for_an_album.yml +1438 -193
  34. data/features/support/fixtures/vcr/Handle_comments/Handle_comments_in_a_source_file.yml +23 -100
  35. data/features/support/fixtures/vcr/Missing_or_bad_credentials/Bad_credentials_for_multiple_services.yml +15 -15
  36. data/features/support/fixtures/vcr/Set_Flickr_picturesize/Generate_Flickr_YAML.yml +24 -18
  37. data/features/support/fixtures/vcr/Soundcloud/Generate_SoundCloud_YAML.yml +9 -8
  38. data/features/support/fixtures/vcr/Soundcloud/Generate_SoundCloud_YAML_for_multiple_tracks.yml +14 -14
  39. data/features/support/fixtures/vcr/Soundcloud_set/Generate_YAML_for_a_SoundCloud_set.yml +41 -40
  40. data/features/support/fixtures/vcr/Vimeo/Generate_Vimeo_YAML.yml +8 -8
  41. data/features/support/fixtures/vcr/Vimeo_albums/Generate_YAML_for_a_Vimeo_album.yml +38 -38
  42. data/features/support/fixtures/vcr/YouTube/Generate_YouTube_YAML.yml +873 -873
  43. data/features/support/fixtures/vcr/YouTube_playlists/Generate_YAML_for_a_YouTube_playlist.yml +9108 -1923
  44. data/features/support/hooks.rb +8 -0
  45. data/features/youtube-playlist.feature +0 -2
  46. data/lib/purdie.rb +2 -8
  47. data/lib/purdie/bernard.rb +7 -60
  48. data/lib/purdie/cli.rb +1 -1
  49. data/lib/purdie/config.rb +17 -8
  50. data/lib/purdie/helpers.rb +8 -0
  51. data/lib/purdie/ingester.rb +16 -16
  52. data/lib/purdie/item.rb +36 -0
  53. data/lib/purdie/resolver.rb +15 -0
  54. data/lib/purdie/services/soundcloud.rb +1 -1
  55. data/lib/purdie/source_list.rb +54 -16
  56. data/lib/purdie/version.rb +1 -1
  57. data/purdie.gemspec +19 -19
  58. data/spec/bernard_spec.rb +30 -0
  59. data/spec/config_spec.rb +4 -4
  60. data/spec/item_spec.rb +46 -0
  61. data/spec/resolver_spec.rb +40 -0
  62. data/spec/services/youtube_spec.rb +1 -1
  63. data/spec/source_list_spec.rb +59 -34
  64. data/spec/spec_helper.rb +1 -1
  65. data/spec/support/fixtures/output-generator +2 -0
  66. data/spec/support/fixtures/youtube.tubes +1 -0
  67. data/spec/vcr/Purdie_Bernard/deals_with_YouTube.yml +9686 -0
  68. data/spec/vcr/Purdie_Bernard/processes_files.yml +570 -0
  69. data/spec/vcr/Purdie_Item/populates_itself.yml +182 -0
  70. data/spec/vcr/Purdie_Resolver/resolves_a_Flickr_set.yml +772 -0
  71. data/spec/vcr/Purdie_Resolver/resolves_a_SoundCloud_set.yml +103 -0
  72. data/spec/vcr/Purdie_Resolver/resolves_a_YouTube_playlist.yml +970 -0
  73. data/spec/vcr/Purdie_SourceList/constructs_a_list_from_a_set_URL.yml +772 -0
  74. data/spec/vcr/Purdie_SourceList/make_output/actually_makes_output.yml +526 -0
  75. data/spec/vcr/Purdie_SourceList/process_its_items/processes_items.yml +210 -0
  76. data/spec/vcr/Purdie_SourceList/resolve_sets/constructs_a_list_from_a_set_URL.yml +95 -77
  77. metadata +78 -22
  78. data/features/flickr-alternative-outfile.feature +0 -29
  79. data/features/purdie.feature +0 -48
@@ -0,0 +1,526 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: http://api.soundcloud.com/resolve?client_id=<SOUNDCLOUD_CLIENT_ID>&format=json&url=https://soundcloud.com/rawfunkmaharishi/sets/islington-academy-sessions
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ User-Agent:
11
+ - SoundCloud Ruby Wrapper 0.13.3
12
+ response:
13
+ status:
14
+ code: 302
15
+ message: Found
16
+ headers:
17
+ Access-Control-Allow-Headers:
18
+ - Accept, Authorization, Content-Type, Origin
19
+ Access-Control-Allow-Methods:
20
+ - GET, PUT, POST, DELETE
21
+ Access-Control-Allow-Origin:
22
+ - "*"
23
+ Access-Control-Expose-Headers:
24
+ - Date
25
+ Cache-Control:
26
+ - no-cache
27
+ Content-Type:
28
+ - application/json; charset=utf-8
29
+ Date:
30
+ - Tue, 31 Mar 2015 16:20:04 GMT
31
+ Location:
32
+ - https://api.soundcloud.com/playlists/88097435.json?client_id=<SOUNDCLOUD_CLIENT_ID>
33
+ Server:
34
+ - am/2
35
+ Content-Length:
36
+ - '131'
37
+ body:
38
+ encoding: UTF-8
39
+ string: '{"status":"302 - Found","location":"https://api.soundcloud.com/playlists/88097435.json?client_id=<SOUNDCLOUD_CLIENT_ID>"}'
40
+ http_version:
41
+ recorded_at: Tue, 31 Mar 2015 16:20:04 GMT
42
+ - request:
43
+ method: get
44
+ uri: https://api.soundcloud.com/playlists/88097435.json?client_id=<SOUNDCLOUD_CLIENT_ID>
45
+ body:
46
+ encoding: US-ASCII
47
+ string: ''
48
+ headers:
49
+ User-Agent:
50
+ - SoundCloud Ruby Wrapper 0.13.3
51
+ response:
52
+ status:
53
+ code: 200
54
+ message: OK
55
+ headers:
56
+ Access-Control-Allow-Headers:
57
+ - Accept, Authorization, Content-Type, Origin
58
+ Access-Control-Allow-Methods:
59
+ - GET, PUT, POST, DELETE
60
+ Access-Control-Allow-Origin:
61
+ - "*"
62
+ Access-Control-Expose-Headers:
63
+ - Date
64
+ Cache-Control:
65
+ - private, max-age=0, must-revalidate
66
+ Content-Type:
67
+ - application/json; charset=utf-8
68
+ Date:
69
+ - Tue, 31 Mar 2015 16:20:04 GMT
70
+ Etag:
71
+ - '"e5debc0bf1fa7460aa6ca228625b4711"'
72
+ Server:
73
+ - am/2
74
+ Content-Length:
75
+ - '7543'
76
+ body:
77
+ encoding: UTF-8
78
+ string: '{"duration":770628,"release_day":null,"permalink_url":"http://soundcloud.com/rawfunkmaharishi/sets/islington-academy-sessions","genre":"","permalink":"islington-academy-sessions","purchase_url":null,"release_month":null,"description":"","uri":"https://api.soundcloud.com/playlists/88097435","label_name":"","tag_list":"","release_year":null,"track_count":4,"user_id":56479293,"last_modified":"2015/03/10
79
+ 16:35:06 +0000","license":"all-rights-reserved","tracks":[{"kind":"track","id":193008299,"created_at":"2015/02/25
80
+ 19:24:51 +0000","user_id":56479293,"duration":209626,"commentable":true,"state":"finished","original_content_size":8436471,"last_modified":"2015/02/27
81
+ 17:08:45 +0000","sharing":"public","tag_list":"\"islington academy sessions\"","permalink":"hexaflexagon-1","streamable":true,"embeddable_by":"all","downloadable":true,"purchase_url":null,"label_id":null,"purchase_title":null,"genre":"funk","title":"Hexaflexagon","description":"Islington
82
+ Academy","label_name":null,"release":null,"track_type":null,"key_signature":null,"isrc":null,"video_url":null,"bpm":null,"release_year":2015,"release_month":2,"release_day":18,"original_format":"mp3","license":"cc-by-nc-sa","uri":"https://api.soundcloud.com/tracks/193008299","user":{"id":56479293,"kind":"user","permalink":"rawfunkmaharishi","username":"Raw
83
+ Funk Maharishi","last_modified":"2015/03/23 09:26:53 +0000","uri":"https://api.soundcloud.com/users/56479293","permalink_url":"http://soundcloud.com/rawfunkmaharishi","avatar_url":"https://i1.sndcdn.com/avatars-000110957821-ac80gy-large.jpg"},"permalink_url":"http://soundcloud.com/rawfunkmaharishi/hexaflexagon-1","artwork_url":null,"waveform_url":"https://w1.sndcdn.com/CxyZz6RUbqZN_m.png","stream_url":"https://api.soundcloud.com/tracks/193008299/stream","download_url":"https://api.soundcloud.com/tracks/193008299/download","playback_count":59,"download_count":3,"favoritings_count":0,"comment_count":0,"attachments_uri":"https://api.soundcloud.com/tracks/193008299/attachments","policy":"ALLOW"},{"kind":"track","id":193006525,"created_at":"2015/02/25
84
+ 19:13:37 +0000","user_id":56479293,"duration":190031,"commentable":true,"state":"finished","original_content_size":7652798,"last_modified":"2015/03/03
85
+ 20:07:21 +0000","sharing":"public","tag_list":"afrobeat \"islington academy
86
+ sessions\"","permalink":"beer-of-course-but-why","streamable":true,"embeddable_by":"all","downloadable":true,"purchase_url":null,"label_id":null,"purchase_title":null,"genre":"Funk","title":"Beer,
87
+ Of Course, But Why","description":"Islington Academy","label_name":null,"release":null,"track_type":null,"key_signature":null,"isrc":null,"video_url":null,"bpm":null,"release_year":2015,"release_month":2,"release_day":18,"original_format":"mp3","license":"cc-by-nc-sa","uri":"https://api.soundcloud.com/tracks/193006525","user":{"id":56479293,"kind":"user","permalink":"rawfunkmaharishi","username":"Raw
88
+ Funk Maharishi","last_modified":"2015/03/23 09:26:53 +0000","uri":"https://api.soundcloud.com/users/56479293","permalink_url":"http://soundcloud.com/rawfunkmaharishi","avatar_url":"https://i1.sndcdn.com/avatars-000110957821-ac80gy-large.jpg"},"permalink_url":"http://soundcloud.com/rawfunkmaharishi/beer-of-course-but-why","artwork_url":null,"waveform_url":"https://w1.sndcdn.com/qBjvlEuOtgIA_m.png","stream_url":"https://api.soundcloud.com/tracks/193006525/stream","download_url":"https://api.soundcloud.com/tracks/193006525/download","playback_count":47,"download_count":1,"favoritings_count":1,"comment_count":0,"attachments_uri":"https://api.soundcloud.com/tracks/193006525/attachments","policy":"ALLOW"},{"kind":"track","id":193005357,"created_at":"2015/02/25
89
+ 19:05:57 +0000","user_id":56479293,"duration":197111,"commentable":true,"state":"finished","original_content_size":7935965,"last_modified":"2015/02/28
90
+ 21:17:11 +0000","sharing":"public","tag_list":"\"islington academy sessions\"","permalink":"junalbandi-3","streamable":true,"embeddable_by":"all","downloadable":true,"purchase_url":null,"label_id":null,"purchase_title":null,"genre":"Funk","title":"Junalbandi","description":"Islington
91
+ Academy","label_name":null,"release":null,"track_type":null,"key_signature":null,"isrc":null,"video_url":null,"bpm":null,"release_year":2015,"release_month":2,"release_day":18,"original_format":"mp3","license":"cc-by-nc-sa","uri":"https://api.soundcloud.com/tracks/193005357","user":{"id":56479293,"kind":"user","permalink":"rawfunkmaharishi","username":"Raw
92
+ Funk Maharishi","last_modified":"2015/03/23 09:26:53 +0000","uri":"https://api.soundcloud.com/users/56479293","permalink_url":"http://soundcloud.com/rawfunkmaharishi","avatar_url":"https://i1.sndcdn.com/avatars-000110957821-ac80gy-large.jpg"},"permalink_url":"http://soundcloud.com/rawfunkmaharishi/junalbandi-3","artwork_url":null,"waveform_url":"https://w1.sndcdn.com/nbBOD5P8zpUy_m.png","stream_url":"https://api.soundcloud.com/tracks/193005357/stream","download_url":"https://api.soundcloud.com/tracks/193005357/download","playback_count":40,"download_count":1,"favoritings_count":0,"comment_count":0,"attachments_uri":"https://api.soundcloud.com/tracks/193005357/attachments","policy":"ALLOW"},{"kind":"track","id":192841052,"created_at":"2015/02/24
93
+ 20:44:18 +0000","user_id":56479293,"duration":173860,"commentable":true,"state":"finished","original_content_size":7006006,"last_modified":"2015/03/03
94
+ 20:31:37 +0000","sharing":"public","tag_list":"\"islington academy sessions\"","permalink":"bernard","streamable":true,"embeddable_by":"all","downloadable":true,"purchase_url":null,"label_id":null,"purchase_title":null,"genre":"Funk","title":"Bernard","description":"Islington
95
+ Academy","label_name":null,"release":null,"track_type":null,"key_signature":null,"isrc":null,"video_url":null,"bpm":null,"release_year":2015,"release_month":2,"release_day":18,"original_format":"mp3","license":"cc-by-nc-sa","uri":"https://api.soundcloud.com/tracks/192841052","user":{"id":56479293,"kind":"user","permalink":"rawfunkmaharishi","username":"Raw
96
+ Funk Maharishi","last_modified":"2015/03/23 09:26:53 +0000","uri":"https://api.soundcloud.com/users/56479293","permalink_url":"http://soundcloud.com/rawfunkmaharishi","avatar_url":"https://i1.sndcdn.com/avatars-000110957821-ac80gy-large.jpg"},"permalink_url":"http://soundcloud.com/rawfunkmaharishi/bernard","artwork_url":null,"waveform_url":"https://w1.sndcdn.com/BAgEnzWuGhV7_m.png","stream_url":"https://api.soundcloud.com/tracks/192841052/stream","download_url":"https://api.soundcloud.com/tracks/192841052/download","playback_count":69,"download_count":1,"favoritings_count":0,"comment_count":0,"attachments_uri":"https://api.soundcloud.com/tracks/192841052/attachments","policy":"ALLOW"}],"playlist_type":"","id":88097435,"downloadable":true,"sharing":"public","created_at":"2015/03/10
97
+ 16:34:15 +0000","release":"","kind":"playlist","title":"Islington Academy
98
+ Sessions","type":"","purchase_title":null,"created_with":{"permalink_url":"http://soundcloud.com/apps/v2-on-https-soundcloud-com","name":"SoundCloud.com","external_url":"","uri":"https://api.soundcloud.com/apps/46941","creator":"spadgos","id":46941,"kind":"app"},"artwork_url":null,"ean":"","streamable":true,"user":{"permalink_url":"http://soundcloud.com/rawfunkmaharishi","permalink":"rawfunkmaharishi","username":"Raw
99
+ Funk Maharishi","uri":"https://api.soundcloud.com/users/56479293","last_modified":"2015/03/23
100
+ 09:26:53 +0000","id":56479293,"kind":"user","avatar_url":"https://i1.sndcdn.com/avatars-000110957821-ac80gy-large.jpg"},"embeddable_by":"all","label_id":null}'
101
+ http_version:
102
+ recorded_at: Tue, 31 Mar 2015 16:20:04 GMT
103
+ - request:
104
+ method: get
105
+ uri: http://api.soundcloud.com/resolve?client_id=<SOUNDCLOUD_CLIENT_ID>&format=json&url=http://soundcloud.com/rawfunkmaharishi/hexaflexagon-1
106
+ body:
107
+ encoding: US-ASCII
108
+ string: ''
109
+ headers:
110
+ User-Agent:
111
+ - SoundCloud Ruby Wrapper 0.13.3
112
+ response:
113
+ status:
114
+ code: 302
115
+ message: Found
116
+ headers:
117
+ Access-Control-Allow-Headers:
118
+ - Accept, Authorization, Content-Type, Origin
119
+ Access-Control-Allow-Methods:
120
+ - GET, PUT, POST, DELETE
121
+ Access-Control-Allow-Origin:
122
+ - "*"
123
+ Access-Control-Expose-Headers:
124
+ - Date
125
+ Cache-Control:
126
+ - no-cache
127
+ Content-Type:
128
+ - application/json; charset=utf-8
129
+ Date:
130
+ - Tue, 31 Mar 2015 16:20:04 GMT
131
+ Location:
132
+ - https://api.soundcloud.com/tracks/193008299.json?client_id=<SOUNDCLOUD_CLIENT_ID>
133
+ Server:
134
+ - am/2
135
+ Content-Length:
136
+ - '129'
137
+ body:
138
+ encoding: UTF-8
139
+ string: '{"status":"302 - Found","location":"https://api.soundcloud.com/tracks/193008299.json?client_id=<SOUNDCLOUD_CLIENT_ID>"}'
140
+ http_version:
141
+ recorded_at: Tue, 31 Mar 2015 16:20:04 GMT
142
+ - request:
143
+ method: get
144
+ uri: https://api.soundcloud.com/tracks/193008299.json?client_id=<SOUNDCLOUD_CLIENT_ID>
145
+ body:
146
+ encoding: US-ASCII
147
+ string: ''
148
+ headers:
149
+ User-Agent:
150
+ - SoundCloud Ruby Wrapper 0.13.3
151
+ response:
152
+ status:
153
+ code: 200
154
+ message: OK
155
+ headers:
156
+ Access-Control-Allow-Headers:
157
+ - Accept, Authorization, Content-Type, Origin
158
+ Access-Control-Allow-Methods:
159
+ - GET, PUT, POST, DELETE
160
+ Access-Control-Allow-Origin:
161
+ - "*"
162
+ Access-Control-Expose-Headers:
163
+ - Date
164
+ Cache-Control:
165
+ - max-age=600, public
166
+ Content-Type:
167
+ - application/json; charset=utf-8
168
+ Date:
169
+ - Tue, 31 Mar 2015 16:20:04 GMT
170
+ Etag:
171
+ - '"22a8481cd85e1e7be64128c639cc21b0"'
172
+ Server:
173
+ - am/2
174
+ Vary:
175
+ - Authorization, Accept
176
+ Content-Length:
177
+ - '1555'
178
+ body:
179
+ encoding: UTF-8
180
+ string: '{"kind":"track","id":193008299,"created_at":"2015/02/25 19:24:51 +0000","user_id":56479293,"duration":209626,"commentable":true,"state":"finished","original_content_size":8436471,"last_modified":"2015/02/27
181
+ 17:08:45 +0000","sharing":"public","tag_list":"\"islington academy sessions\"","permalink":"hexaflexagon-1","streamable":true,"embeddable_by":"all","downloadable":true,"purchase_url":null,"label_id":null,"purchase_title":null,"genre":"funk","title":"Hexaflexagon","description":"Islington
182
+ Academy","label_name":null,"release":null,"track_type":null,"key_signature":null,"isrc":null,"video_url":null,"bpm":null,"release_year":2015,"release_month":2,"release_day":18,"original_format":"mp3","license":"cc-by-nc-sa","uri":"https://api.soundcloud.com/tracks/193008299","user":{"id":56479293,"kind":"user","permalink":"rawfunkmaharishi","username":"Raw
183
+ Funk Maharishi","last_modified":"2015/03/23 09:26:53 +0000","uri":"https://api.soundcloud.com/users/56479293","permalink_url":"http://soundcloud.com/rawfunkmaharishi","avatar_url":"https://i1.sndcdn.com/avatars-000110957821-ac80gy-large.jpg"},"permalink_url":"http://soundcloud.com/rawfunkmaharishi/hexaflexagon-1","artwork_url":null,"waveform_url":"https://w1.sndcdn.com/CxyZz6RUbqZN_m.png","stream_url":"https://api.soundcloud.com/tracks/193008299/stream","download_url":"https://api.soundcloud.com/tracks/193008299/download","playback_count":59,"download_count":3,"favoritings_count":0,"comment_count":0,"attachments_uri":"https://api.soundcloud.com/tracks/193008299/attachments","policy":"ALLOW"}'
184
+ http_version:
185
+ recorded_at: Tue, 31 Mar 2015 16:20:05 GMT
186
+ - request:
187
+ method: get
188
+ uri: http://api.soundcloud.com/resolve?client_id=<SOUNDCLOUD_CLIENT_ID>&format=json&url=http://soundcloud.com/rawfunkmaharishi/beer-of-course-but-why
189
+ body:
190
+ encoding: US-ASCII
191
+ string: ''
192
+ headers:
193
+ User-Agent:
194
+ - SoundCloud Ruby Wrapper 0.13.3
195
+ response:
196
+ status:
197
+ code: 302
198
+ message: Found
199
+ headers:
200
+ Access-Control-Allow-Headers:
201
+ - Accept, Authorization, Content-Type, Origin
202
+ Access-Control-Allow-Methods:
203
+ - GET, PUT, POST, DELETE
204
+ Access-Control-Allow-Origin:
205
+ - "*"
206
+ Access-Control-Expose-Headers:
207
+ - Date
208
+ Cache-Control:
209
+ - no-cache
210
+ Content-Type:
211
+ - application/json; charset=utf-8
212
+ Date:
213
+ - Tue, 31 Mar 2015 16:20:05 GMT
214
+ Location:
215
+ - https://api.soundcloud.com/tracks/193006525.json?client_id=<SOUNDCLOUD_CLIENT_ID>
216
+ Server:
217
+ - am/2
218
+ Content-Length:
219
+ - '129'
220
+ body:
221
+ encoding: UTF-8
222
+ string: '{"status":"302 - Found","location":"https://api.soundcloud.com/tracks/193006525.json?client_id=<SOUNDCLOUD_CLIENT_ID>"}'
223
+ http_version:
224
+ recorded_at: Tue, 31 Mar 2015 16:20:05 GMT
225
+ - request:
226
+ method: get
227
+ uri: https://api.soundcloud.com/tracks/193006525.json?client_id=<SOUNDCLOUD_CLIENT_ID>
228
+ body:
229
+ encoding: US-ASCII
230
+ string: ''
231
+ headers:
232
+ User-Agent:
233
+ - SoundCloud Ruby Wrapper 0.13.3
234
+ response:
235
+ status:
236
+ code: 200
237
+ message: OK
238
+ headers:
239
+ Access-Control-Allow-Headers:
240
+ - Accept, Authorization, Content-Type, Origin
241
+ Access-Control-Allow-Methods:
242
+ - GET, PUT, POST, DELETE
243
+ Access-Control-Allow-Origin:
244
+ - "*"
245
+ Access-Control-Expose-Headers:
246
+ - Date
247
+ Cache-Control:
248
+ - max-age=600, public
249
+ Content-Type:
250
+ - application/json; charset=utf-8
251
+ Date:
252
+ - Tue, 31 Mar 2015 16:20:05 GMT
253
+ Etag:
254
+ - '"e670341711b788c7ec34c63c273258db"'
255
+ Server:
256
+ - am/2
257
+ Vary:
258
+ - Authorization, Accept
259
+ Content-Length:
260
+ - '1592'
261
+ body:
262
+ encoding: UTF-8
263
+ string: '{"kind":"track","id":193006525,"created_at":"2015/02/25 19:13:37 +0000","user_id":56479293,"duration":190031,"commentable":true,"state":"finished","original_content_size":7652798,"last_modified":"2015/03/03
264
+ 20:07:21 +0000","sharing":"public","tag_list":"afrobeat \"islington academy
265
+ sessions\"","permalink":"beer-of-course-but-why","streamable":true,"embeddable_by":"all","downloadable":true,"purchase_url":null,"label_id":null,"purchase_title":null,"genre":"Funk","title":"Beer,
266
+ Of Course, But Why","description":"Islington Academy","label_name":null,"release":null,"track_type":null,"key_signature":null,"isrc":null,"video_url":null,"bpm":null,"release_year":2015,"release_month":2,"release_day":18,"original_format":"mp3","license":"cc-by-nc-sa","uri":"https://api.soundcloud.com/tracks/193006525","user":{"id":56479293,"kind":"user","permalink":"rawfunkmaharishi","username":"Raw
267
+ Funk Maharishi","last_modified":"2015/03/23 09:26:53 +0000","uri":"https://api.soundcloud.com/users/56479293","permalink_url":"http://soundcloud.com/rawfunkmaharishi","avatar_url":"https://i1.sndcdn.com/avatars-000110957821-ac80gy-large.jpg"},"permalink_url":"http://soundcloud.com/rawfunkmaharishi/beer-of-course-but-why","artwork_url":null,"waveform_url":"https://w1.sndcdn.com/qBjvlEuOtgIA_m.png","stream_url":"https://api.soundcloud.com/tracks/193006525/stream","download_url":"https://api.soundcloud.com/tracks/193006525/download","playback_count":47,"download_count":1,"favoritings_count":1,"comment_count":0,"attachments_uri":"https://api.soundcloud.com/tracks/193006525/attachments","policy":"ALLOW"}'
268
+ http_version:
269
+ recorded_at: Tue, 31 Mar 2015 16:20:05 GMT
270
+ - request:
271
+ method: get
272
+ uri: http://api.soundcloud.com/resolve?client_id=<SOUNDCLOUD_CLIENT_ID>&format=json&url=http://soundcloud.com/rawfunkmaharishi/junalbandi-3
273
+ body:
274
+ encoding: US-ASCII
275
+ string: ''
276
+ headers:
277
+ User-Agent:
278
+ - SoundCloud Ruby Wrapper 0.13.3
279
+ response:
280
+ status:
281
+ code: 302
282
+ message: Found
283
+ headers:
284
+ Access-Control-Allow-Headers:
285
+ - Accept, Authorization, Content-Type, Origin
286
+ Access-Control-Allow-Methods:
287
+ - GET, PUT, POST, DELETE
288
+ Access-Control-Allow-Origin:
289
+ - "*"
290
+ Access-Control-Expose-Headers:
291
+ - Date
292
+ Cache-Control:
293
+ - no-cache
294
+ Content-Type:
295
+ - application/json; charset=utf-8
296
+ Date:
297
+ - Tue, 31 Mar 2015 16:20:05 GMT
298
+ Location:
299
+ - https://api.soundcloud.com/tracks/193005357.json?client_id=<SOUNDCLOUD_CLIENT_ID>
300
+ Server:
301
+ - am/2
302
+ Content-Length:
303
+ - '129'
304
+ body:
305
+ encoding: UTF-8
306
+ string: '{"status":"302 - Found","location":"https://api.soundcloud.com/tracks/193005357.json?client_id=<SOUNDCLOUD_CLIENT_ID>"}'
307
+ http_version:
308
+ recorded_at: Tue, 31 Mar 2015 16:20:05 GMT
309
+ - request:
310
+ method: get
311
+ uri: https://api.soundcloud.com/tracks/193005357.json?client_id=<SOUNDCLOUD_CLIENT_ID>
312
+ body:
313
+ encoding: US-ASCII
314
+ string: ''
315
+ headers:
316
+ User-Agent:
317
+ - SoundCloud Ruby Wrapper 0.13.3
318
+ response:
319
+ status:
320
+ code: 200
321
+ message: OK
322
+ headers:
323
+ Access-Control-Allow-Headers:
324
+ - Accept, Authorization, Content-Type, Origin
325
+ Access-Control-Allow-Methods:
326
+ - GET, PUT, POST, DELETE
327
+ Access-Control-Allow-Origin:
328
+ - "*"
329
+ Access-Control-Expose-Headers:
330
+ - Date
331
+ Cache-Control:
332
+ - max-age=600, public
333
+ Content-Type:
334
+ - application/json; charset=utf-8
335
+ Date:
336
+ - Tue, 31 Mar 2015 16:20:05 GMT
337
+ Etag:
338
+ - '"43c47d4865c66ca33680d6706a190a3a"'
339
+ Server:
340
+ - am/2
341
+ Vary:
342
+ - Authorization, Accept
343
+ Content-Length:
344
+ - '1549'
345
+ body:
346
+ encoding: UTF-8
347
+ string: '{"kind":"track","id":193005357,"created_at":"2015/02/25 19:05:57 +0000","user_id":56479293,"duration":197111,"commentable":true,"state":"finished","original_content_size":7935965,"last_modified":"2015/02/28
348
+ 21:17:11 +0000","sharing":"public","tag_list":"\"islington academy sessions\"","permalink":"junalbandi-3","streamable":true,"embeddable_by":"all","downloadable":true,"purchase_url":null,"label_id":null,"purchase_title":null,"genre":"Funk","title":"Junalbandi","description":"Islington
349
+ Academy","label_name":null,"release":null,"track_type":null,"key_signature":null,"isrc":null,"video_url":null,"bpm":null,"release_year":2015,"release_month":2,"release_day":18,"original_format":"mp3","license":"cc-by-nc-sa","uri":"https://api.soundcloud.com/tracks/193005357","user":{"id":56479293,"kind":"user","permalink":"rawfunkmaharishi","username":"Raw
350
+ Funk Maharishi","last_modified":"2015/03/23 09:26:53 +0000","uri":"https://api.soundcloud.com/users/56479293","permalink_url":"http://soundcloud.com/rawfunkmaharishi","avatar_url":"https://i1.sndcdn.com/avatars-000110957821-ac80gy-large.jpg"},"permalink_url":"http://soundcloud.com/rawfunkmaharishi/junalbandi-3","artwork_url":null,"waveform_url":"https://w1.sndcdn.com/nbBOD5P8zpUy_m.png","stream_url":"https://api.soundcloud.com/tracks/193005357/stream","download_url":"https://api.soundcloud.com/tracks/193005357/download","playback_count":40,"download_count":1,"favoritings_count":0,"comment_count":0,"attachments_uri":"https://api.soundcloud.com/tracks/193005357/attachments","policy":"ALLOW"}'
351
+ http_version:
352
+ recorded_at: Tue, 31 Mar 2015 16:20:05 GMT
353
+ - request:
354
+ method: get
355
+ uri: http://api.soundcloud.com/resolve?client_id=<SOUNDCLOUD_CLIENT_ID>&format=json&url=http://soundcloud.com/rawfunkmaharishi/bernard
356
+ body:
357
+ encoding: US-ASCII
358
+ string: ''
359
+ headers:
360
+ User-Agent:
361
+ - SoundCloud Ruby Wrapper 0.13.3
362
+ response:
363
+ status:
364
+ code: 302
365
+ message: Found
366
+ headers:
367
+ Access-Control-Allow-Headers:
368
+ - Accept, Authorization, Content-Type, Origin
369
+ Access-Control-Allow-Methods:
370
+ - GET, PUT, POST, DELETE
371
+ Access-Control-Allow-Origin:
372
+ - "*"
373
+ Access-Control-Expose-Headers:
374
+ - Date
375
+ Cache-Control:
376
+ - no-cache
377
+ Content-Type:
378
+ - application/json; charset=utf-8
379
+ Date:
380
+ - Tue, 31 Mar 2015 16:20:05 GMT
381
+ Location:
382
+ - https://api.soundcloud.com/tracks/192841052.json?client_id=<SOUNDCLOUD_CLIENT_ID>
383
+ Server:
384
+ - am/2
385
+ Content-Length:
386
+ - '129'
387
+ body:
388
+ encoding: UTF-8
389
+ string: '{"status":"302 - Found","location":"https://api.soundcloud.com/tracks/192841052.json?client_id=<SOUNDCLOUD_CLIENT_ID>"}'
390
+ http_version:
391
+ recorded_at: Tue, 31 Mar 2015 16:20:05 GMT
392
+ - request:
393
+ method: get
394
+ uri: https://api.soundcloud.com/tracks/192841052.json?client_id=<SOUNDCLOUD_CLIENT_ID>
395
+ body:
396
+ encoding: US-ASCII
397
+ string: ''
398
+ headers:
399
+ User-Agent:
400
+ - SoundCloud Ruby Wrapper 0.13.3
401
+ response:
402
+ status:
403
+ code: 200
404
+ message: OK
405
+ headers:
406
+ Access-Control-Allow-Headers:
407
+ - Accept, Authorization, Content-Type, Origin
408
+ Access-Control-Allow-Methods:
409
+ - GET, PUT, POST, DELETE
410
+ Access-Control-Allow-Origin:
411
+ - "*"
412
+ Access-Control-Expose-Headers:
413
+ - Date
414
+ Cache-Control:
415
+ - max-age=600, public
416
+ Content-Type:
417
+ - application/json; charset=utf-8
418
+ Date:
419
+ - Tue, 31 Mar 2015 16:20:05 GMT
420
+ Etag:
421
+ - '"8ce0ede244b901b7f08cbfd68d6ada6e"'
422
+ Server:
423
+ - am/2
424
+ Vary:
425
+ - Authorization, Accept
426
+ Content-Length:
427
+ - '1536'
428
+ body:
429
+ encoding: UTF-8
430
+ string: '{"kind":"track","id":192841052,"created_at":"2015/02/24 20:44:18 +0000","user_id":56479293,"duration":173860,"commentable":true,"state":"finished","original_content_size":7006006,"last_modified":"2015/03/03
431
+ 20:31:37 +0000","sharing":"public","tag_list":"\"islington academy sessions\"","permalink":"bernard","streamable":true,"embeddable_by":"all","downloadable":true,"purchase_url":null,"label_id":null,"purchase_title":null,"genre":"Funk","title":"Bernard","description":"Islington
432
+ Academy","label_name":null,"release":null,"track_type":null,"key_signature":null,"isrc":null,"video_url":null,"bpm":null,"release_year":2015,"release_month":2,"release_day":18,"original_format":"mp3","license":"cc-by-nc-sa","uri":"https://api.soundcloud.com/tracks/192841052","user":{"id":56479293,"kind":"user","permalink":"rawfunkmaharishi","username":"Raw
433
+ Funk Maharishi","last_modified":"2015/03/23 09:26:53 +0000","uri":"https://api.soundcloud.com/users/56479293","permalink_url":"http://soundcloud.com/rawfunkmaharishi","avatar_url":"https://i1.sndcdn.com/avatars-000110957821-ac80gy-large.jpg"},"permalink_url":"http://soundcloud.com/rawfunkmaharishi/bernard","artwork_url":null,"waveform_url":"https://w1.sndcdn.com/BAgEnzWuGhV7_m.png","stream_url":"https://api.soundcloud.com/tracks/192841052/stream","download_url":"https://api.soundcloud.com/tracks/192841052/download","playback_count":69,"download_count":1,"favoritings_count":0,"comment_count":0,"attachments_uri":"https://api.soundcloud.com/tracks/192841052/attachments","policy":"ALLOW"}'
434
+ http_version:
435
+ recorded_at: Tue, 31 Mar 2015 16:20:05 GMT
436
+ - request:
437
+ method: get
438
+ uri: http://api.soundcloud.com/resolve?client_id=<SOUNDCLOUD_CLIENT_ID>&format=json&url=https://soundcloud.com/rawfunkmaharishi/not-bernard
439
+ body:
440
+ encoding: US-ASCII
441
+ string: ''
442
+ headers:
443
+ User-Agent:
444
+ - SoundCloud Ruby Wrapper 0.13.3
445
+ response:
446
+ status:
447
+ code: 302
448
+ message: Found
449
+ headers:
450
+ Access-Control-Allow-Headers:
451
+ - Accept, Authorization, Content-Type, Origin
452
+ Access-Control-Allow-Methods:
453
+ - GET, PUT, POST, DELETE
454
+ Access-Control-Allow-Origin:
455
+ - "*"
456
+ Access-Control-Expose-Headers:
457
+ - Date
458
+ Cache-Control:
459
+ - no-cache
460
+ Content-Type:
461
+ - application/json; charset=utf-8
462
+ Date:
463
+ - Tue, 31 Mar 2015 16:20:05 GMT
464
+ Location:
465
+ - https://api.soundcloud.com/tracks/190803089.json?client_id=<SOUNDCLOUD_CLIENT_ID>
466
+ Server:
467
+ - am/2
468
+ Content-Length:
469
+ - '129'
470
+ body:
471
+ encoding: UTF-8
472
+ string: '{"status":"302 - Found","location":"https://api.soundcloud.com/tracks/190803089.json?client_id=<SOUNDCLOUD_CLIENT_ID>"}'
473
+ http_version:
474
+ recorded_at: Tue, 31 Mar 2015 16:20:06 GMT
475
+ - request:
476
+ method: get
477
+ uri: https://api.soundcloud.com/tracks/190803089.json?client_id=<SOUNDCLOUD_CLIENT_ID>
478
+ body:
479
+ encoding: US-ASCII
480
+ string: ''
481
+ headers:
482
+ User-Agent:
483
+ - SoundCloud Ruby Wrapper 0.13.3
484
+ response:
485
+ status:
486
+ code: 200
487
+ message: OK
488
+ headers:
489
+ Accept-Ranges:
490
+ - bytes
491
+ Access-Control-Allow-Headers:
492
+ - Accept, Authorization, Content-Type, Origin
493
+ Access-Control-Allow-Methods:
494
+ - GET, PUT, POST, DELETE
495
+ Access-Control-Allow-Origin:
496
+ - "*"
497
+ Access-Control-Expose-Headers:
498
+ - Date
499
+ Cache-Control:
500
+ - max-age=600, public
501
+ Content-Type:
502
+ - application/json; charset=utf-8
503
+ Date:
504
+ - Tue, 31 Mar 2015 16:20:06 GMT
505
+ Etag:
506
+ - '"1bb4d4decee0f18bca2bbf18305541ba"'
507
+ Last-Modified:
508
+ - Wed, 25 Mar 2015 09:53:08 GMT
509
+ Server:
510
+ - am/2
511
+ Vary:
512
+ - Accept-Encoding
513
+ - Authorization, Accept
514
+ X-Cache:
515
+ - HIT
516
+ Content-Length:
517
+ - '1534'
518
+ body:
519
+ encoding: UTF-8
520
+ string: '{"kind":"track","id":190803089,"created_at":"2015/02/12 19:05:33 +0000","user_id":56479293,"duration":243745,"commentable":true,"state":"finished","original_content_size":9801108,"last_modified":"2015/03/03
521
+ 20:39:08 +0000","sharing":"public","tag_list":"Jam Funk","permalink":"not-bernard","streamable":true,"embeddable_by":"all","downloadable":true,"purchase_url":null,"label_id":null,"purchase_title":null,"genre":"work-in-progress","title":"Not
522
+ Bernard","description":"Rogue Studios","label_name":null,"release":null,"track_type":null,"key_signature":null,"isrc":null,"video_url":null,"bpm":null,"release_year":2015,"release_month":2,"release_day":11,"original_format":"mp3","license":"cc-by-nc-sa","uri":"https://api.soundcloud.com/tracks/190803089","user":{"id":56479293,"kind":"user","permalink":"rawfunkmaharishi","username":"Raw
523
+ Funk Maharishi","last_modified":"2015/03/23 09:26:53 +0000","uri":"https://api.soundcloud.com/users/56479293","permalink_url":"http://soundcloud.com/rawfunkmaharishi","avatar_url":"https://i1.sndcdn.com/avatars-000110957821-ac80gy-large.jpg"},"permalink_url":"http://soundcloud.com/rawfunkmaharishi/not-bernard","artwork_url":null,"waveform_url":"https://w1.sndcdn.com/39tsgcZdYQWG_m.png","stream_url":"https://api.soundcloud.com/tracks/190803089/stream","download_url":"https://api.soundcloud.com/tracks/190803089/download","playback_count":57,"download_count":2,"favoritings_count":0,"comment_count":0,"attachments_uri":"https://api.soundcloud.com/tracks/190803089/attachments","policy":"ALLOW"}'
524
+ http_version:
525
+ recorded_at: Tue, 31 Mar 2015 16:20:06 GMT
526
+ recorded_with: VCR 2.9.3