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,131 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: post
5
+ uri: https://api.flickr.com/services/rest/
6
+ body:
7
+ encoding: US-ASCII
8
+ string: photo_id=15631479625&method=flickr.photos.getInfo&format=json&nojsoncallback=1
9
+ headers:
10
+ Accept-Encoding:
11
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
12
+ Accept:
13
+ - "*/*"
14
+ User-Agent:
15
+ - FlickRaw/0.9.8
16
+ Authorization:
17
+ - OAuth realm="https://api.flickr.com/services/rest/", oauth_consumer_key="<FLICKR_API_KEY>",
18
+ oauth_nonce="C8F7RhYnRuC6Gnx3fd0faxe%2BdjhaVjyB10SNP0I%2BEPg%3D", oauth_signature="<FLICKR_SECRET>%26",
19
+ oauth_signature_method="PLAINTEXT", oauth_timestamp="1427832530", oauth_token="",
20
+ oauth_version="1.0"
21
+ Content-Type:
22
+ - application/x-www-form-urlencoded
23
+ response:
24
+ status:
25
+ code: 200
26
+ message: OK
27
+ headers:
28
+ Date:
29
+ - Tue, 31 Mar 2015 20:08:50 GMT
30
+ Content-Type:
31
+ - application/json
32
+ Content-Length:
33
+ - '665'
34
+ P3p:
35
+ - policyref="http://info.yahoo.com/w3c/p3p.xml", CP="CAO DSP COR CUR ADM DEV
36
+ TAI PSA PSD IVAi IVDi CONi TELo OTPi OUR DELi SAMi OTRi UNRi PUBi IND PHY
37
+ ONL UNI PUR FIN COM NAV INT DEM CNT STA POL HEA PRE LOC GOV"
38
+ Cache-Control:
39
+ - private
40
+ X-Served-By:
41
+ - www41.flickr.bf1.yahoo.com
42
+ Vary:
43
+ - Accept-Encoding
44
+ Age:
45
+ - '0'
46
+ Via:
47
+ - http/1.1 fts110.flickr.bf1.yahoo.com (ApacheTrafficServer/4.0.2 [cMsSf ]),
48
+ http/1.1 r17.ycpi.ir2.yahoo.net (ApacheTrafficServer [cMsSf ])
49
+ Server:
50
+ - ATS
51
+ Strict-Transport-Security:
52
+ - max-age=259200
53
+ Connection:
54
+ - keep-alive
55
+ body:
56
+ encoding: ASCII-8BIT
57
+ string: '{"photo":{"id":"15631479625","secret":"b6168ee903","server":"3933","farm":4,"dateuploaded":"1414326010","isfavorite":0,"license":"1","safety_level":"0","rotation":0,"originalsecret":"3191340cdb","originalformat":"jpg","owner":{"nsid":"128943844@N06","username":"rawfunkmaharishi","realname":"Raw
58
+ Funk Maharishi","location":"","iconserver":"3933","iconfarm":4,"path_alias":"rawfunkmaharishi"},"title":{"_content":"The
59
+ Comedy, October 2014"},"description":{"_content":""},"visibility":{"ispublic":1,"isfriend":0,"isfamily":0},"dates":{"posted":"1414326010","taken":"2014-10-22
60
+ 15:54:24","takengranularity":"0","takenunknown":"0","lastupdate":"1416111853"},"views":"96","editability":{"cancomment":0,"canaddmeta":0},"publiceditability":{"cancomment":1,"canaddmeta":0},"usage":{"candownload":1,"canblog":0,"canprint":0,"canshare":1},"comments":{"_content":"0"},"notes":{"note":[]},"people":{"haspeople":0},"tags":{"tag":[{"id":"128898522-15631479625-1422028","author":"128943844@N06","authorname":"rawfunkmaharishi","raw":"the
61
+ comedy","_content":"thecomedy","machine_tag":0},{"id":"128898522-15631479625-17975","author":"128943844@N06","authorname":"rawfunkmaharishi","raw":"gigs","_content":"gigs","machine_tag":0},{"id":"128898522-15631479625-228989594","author":"128943844@N06","authorname":"rawfunkmaharishi","raw":"photographer:kim","_content":"photographerkim","machine_tag":0}]},"urls":{"url":[{"type":"photopage","_content":"https:\/\/www.flickr.com\/photos\/rawfunkmaharishi\/15631479625\/"}]},"media":"photo"},"stat":"ok"}'
62
+ http_version:
63
+ recorded_at: Tue, 31 Mar 2015 20:08:50 GMT
64
+ - request:
65
+ method: post
66
+ uri: https://api.flickr.com/services/rest/
67
+ body:
68
+ encoding: US-ASCII
69
+ string: method=flickr.photos.licenses.getInfo&format=json&nojsoncallback=1
70
+ headers:
71
+ Accept-Encoding:
72
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
73
+ Accept:
74
+ - "*/*"
75
+ User-Agent:
76
+ - FlickRaw/0.9.8
77
+ Authorization:
78
+ - OAuth realm="https://api.flickr.com/services/rest/", oauth_consumer_key="<FLICKR_API_KEY>",
79
+ oauth_nonce="Ff%2FT38AX4yoRHIZOF6XE9MgE4BZqLlN9s9BBAPs5Zv8%3D", oauth_signature="<FLICKR_SECRET>%26",
80
+ oauth_signature_method="PLAINTEXT", oauth_timestamp="1427832530", oauth_token="",
81
+ oauth_version="1.0"
82
+ Content-Type:
83
+ - application/x-www-form-urlencoded
84
+ response:
85
+ status:
86
+ code: 200
87
+ message: OK
88
+ headers:
89
+ Date:
90
+ - Tue, 31 Mar 2015 20:08:51 GMT
91
+ Content-Type:
92
+ - application/json
93
+ Content-Length:
94
+ - '371'
95
+ P3p:
96
+ - policyref="http://info.yahoo.com/w3c/p3p.xml", CP="CAO DSP COR CUR ADM DEV
97
+ TAI PSA PSD IVAi IVDi CONi TELo OTPi OUR DELi SAMi OTRi UNRi PUBi IND PHY
98
+ ONL UNI PUR FIN COM NAV INT DEM CNT STA POL HEA PRE LOC GOV"
99
+ Cache-Control:
100
+ - private
101
+ X-Served-By:
102
+ - www255.flickr.bf1.yahoo.com
103
+ Vary:
104
+ - Accept-Encoding
105
+ Age:
106
+ - '2'
107
+ Via:
108
+ - http/1.1 fts105.flickr.bf1.yahoo.com (ApacheTrafficServer/4.0.2 [cMsSf ]),
109
+ http/1.1 r11.ycpi.ams.yahoo.net (ApacheTrafficServer [cMsSf ])
110
+ Server:
111
+ - ATS
112
+ Strict-Transport-Security:
113
+ - max-age=259200
114
+ Connection:
115
+ - keep-alive
116
+ body:
117
+ encoding: ASCII-8BIT
118
+ string: '{"licenses":{"license":[{"id":"0","name":"All Rights Reserved","url":""},{"id":"4","name":"Attribution
119
+ License","url":"https:\/\/creativecommons.org\/licenses\/by\/2.0\/"},{"id":"6","name":"Attribution-NoDerivs
120
+ License","url":"https:\/\/creativecommons.org\/licenses\/by-nd\/2.0\/"},{"id":"3","name":"Attribution-NonCommercial-NoDerivs
121
+ License","url":"https:\/\/creativecommons.org\/licenses\/by-nc-nd\/2.0\/"},{"id":"2","name":"Attribution-NonCommercial
122
+ License","url":"https:\/\/creativecommons.org\/licenses\/by-nc\/2.0\/"},{"id":"1","name":"Attribution-NonCommercial-ShareAlike
123
+ License","url":"https:\/\/creativecommons.org\/licenses\/by-nc-sa\/2.0\/"},{"id":"5","name":"Attribution-ShareAlike
124
+ License","url":"https:\/\/creativecommons.org\/licenses\/by-sa\/2.0\/"},{"id":"7","name":"No
125
+ known copyright restrictions","url":"https:\/\/www.flickr.com\/commons\/usage\/"},{"id":"8","name":"United
126
+ States Government Work","url":"http:\/\/www.usa.gov\/copyright.shtml"},{"id":"9","name":"Public
127
+ Domain Dedication (CC0)","url":"https:\/\/creativecommons.org\/publicdomain\/zero\/1.0\/"},{"id":"10","name":"Public
128
+ Domain Mark","url":"https:\/\/creativecommons.org\/publicdomain\/mark\/1.0\/"}]},"stat":"ok"}'
129
+ http_version:
130
+ recorded_at: Tue, 31 Mar 2015 20:08:51 GMT
131
+ recorded_with: VCR 2.9.3
@@ -0,0 +1,156 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: https://api.vimeo.com/videos/110132671
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ Authorization:
11
+ - bearer
12
+ Accept:
13
+ - application/json
14
+ response:
15
+ status:
16
+ code: 401
17
+ message: Authorization Required
18
+ headers:
19
+ Date:
20
+ - Tue, 17 Mar 2015 18:47:28 GMT
21
+ Server:
22
+ - nginx
23
+ Content-Type:
24
+ - application/vnd.vimeo.error+json
25
+ Cache-Control:
26
+ - no-cache, max-age=315360000
27
+ Www-Authenticate:
28
+ - Bearer error="invalid_token"
29
+ Expires:
30
+ - Fri, 14 Mar 2025 18:47:28 GMT
31
+ Content-Length:
32
+ - '46'
33
+ Accept-Ranges:
34
+ - bytes
35
+ Via:
36
+ - 1.1 varnish
37
+ X-Served-By:
38
+ - cache-lcy1123-LCY
39
+ X-Cache:
40
+ - MISS
41
+ X-Cache-Hits:
42
+ - '0'
43
+ X-Timer:
44
+ - S1426618048.579298,VS0,VE90
45
+ Vary:
46
+ - Accept,Vimeo-Client-Id,Accept-Encoding
47
+ body:
48
+ encoding: UTF-8
49
+ string: '{"error":"A valid user token must be passed."}'
50
+ http_version:
51
+ recorded_at: Tue, 17 Mar 2015 18:47:28 GMT
52
+ - request:
53
+ method: get
54
+ uri: https://api.vimeo.com/videos/110133117
55
+ body:
56
+ encoding: US-ASCII
57
+ string: ''
58
+ headers:
59
+ Authorization:
60
+ - bearer
61
+ Accept:
62
+ - application/json
63
+ response:
64
+ status:
65
+ code: 401
66
+ message: Authorization Required
67
+ headers:
68
+ Date:
69
+ - Tue, 17 Mar 2015 18:47:28 GMT
70
+ Server:
71
+ - nginx
72
+ Content-Type:
73
+ - application/vnd.vimeo.error+json
74
+ Cache-Control:
75
+ - no-cache, max-age=315360000
76
+ Www-Authenticate:
77
+ - Bearer error="invalid_token"
78
+ Expires:
79
+ - Fri, 14 Mar 2025 18:47:28 GMT
80
+ Content-Length:
81
+ - '46'
82
+ Accept-Ranges:
83
+ - bytes
84
+ Via:
85
+ - 1.1 varnish
86
+ X-Served-By:
87
+ - cache-lcy1123-LCY
88
+ X-Cache:
89
+ - MISS
90
+ X-Cache-Hits:
91
+ - '0'
92
+ X-Timer:
93
+ - S1426618048.778660,VS0,VE84
94
+ Vary:
95
+ - Accept,Vimeo-Client-Id,Accept-Encoding
96
+ body:
97
+ encoding: UTF-8
98
+ string: '{"error":"A valid user token must be passed."}'
99
+ http_version:
100
+ recorded_at: Tue, 17 Mar 2015 18:47:28 GMT
101
+ - request:
102
+ method: get
103
+ uri: https://www.googleapis.com/discovery/v1/apis/youtube/v3/rest?key=fji423cj234
104
+ body:
105
+ encoding: UTF-8
106
+ string: ''
107
+ headers:
108
+ User-Agent:
109
+ - |-
110
+ Purdie/0.0.12 google-api-ruby-client/0.8.2 Mac OS X/10.10.2
111
+ (gzip)
112
+ Accept-Encoding:
113
+ - gzip
114
+ Content-Type:
115
+ - ''
116
+ Accept:
117
+ - "*/*"
118
+ response:
119
+ status:
120
+ code: 400
121
+ message: Bad Request
122
+ headers:
123
+ Vary:
124
+ - Origin
125
+ - X-Origin
126
+ Content-Type:
127
+ - application/json; charset=UTF-8
128
+ Content-Encoding:
129
+ - gzip
130
+ Date:
131
+ - Tue, 17 Mar 2015 18:47:28 GMT
132
+ Expires:
133
+ - Tue, 17 Mar 2015 18:47:28 GMT
134
+ Cache-Control:
135
+ - private, max-age=0
136
+ X-Content-Type-Options:
137
+ - nosniff
138
+ X-Frame-Options:
139
+ - SAMEORIGIN
140
+ X-Xss-Protection:
141
+ - 1; mode=block
142
+ Server:
143
+ - GSE
144
+ Alternate-Protocol:
145
+ - 443:quic,p=0.5
146
+ Transfer-Encoding:
147
+ - chunked
148
+ body:
149
+ encoding: ASCII-8BIT
150
+ string: !binary |-
151
+ H4sIAAAAAAAAAKvmUlBKLSrKL1KyUqjmUoByioG8aCAPLAQUTMnPTczMAwoq
152
+ lRYnpqf6ZOZmlhQr6UAki1ITi/PBktmplZ55ZYk5mSkwudzUYpAGkKRTYopC
153
+ UGphaWpxiRJIshZIxIKUKSXnp4BUmBgYgLk49dRy1XIBAHbQcHGwAAAA
154
+ http_version:
155
+ recorded_at: Tue, 17 Mar 2015 18:47:28 GMT
156
+ recorded_with: VCR 2.9.3
@@ -0,0 +1,220 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: post
5
+ uri: https://api.flickr.com/services/rest/
6
+ body:
7
+ encoding: US-ASCII
8
+ string: photo_id=15631479625&method=flickr.photos.getInfo&format=json&nojsoncallback=1
9
+ headers:
10
+ Accept-Encoding:
11
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
12
+ Accept:
13
+ - "*/*"
14
+ User-Agent:
15
+ - FlickRaw/0.9.8
16
+ Authorization:
17
+ - OAuth realm="https://api.flickr.com/services/rest/", oauth_consumer_key="<FLICKR_API_KEY>",
18
+ oauth_nonce="oeHmJ%2BoOCDTZn%2BmAvtdp31h9J0mG%2FOY%2BUOMfyee%2Bf58%3D", oauth_signature="<FLICKR_SECRET>%26",
19
+ oauth_signature_method="PLAINTEXT", oauth_timestamp="1427832873", oauth_token="",
20
+ oauth_version="1.0"
21
+ Content-Type:
22
+ - application/x-www-form-urlencoded
23
+ response:
24
+ status:
25
+ code: 200
26
+ message: OK
27
+ headers:
28
+ Date:
29
+ - Tue, 31 Mar 2015 20:14:33 GMT
30
+ Content-Type:
31
+ - application/json
32
+ Content-Length:
33
+ - '665'
34
+ P3p:
35
+ - policyref="http://info.yahoo.com/w3c/p3p.xml", CP="CAO DSP COR CUR ADM DEV
36
+ TAI PSA PSD IVAi IVDi CONi TELo OTPi OUR DELi SAMi OTRi UNRi PUBi IND PHY
37
+ ONL UNI PUR FIN COM NAV INT DEM CNT STA POL HEA PRE LOC GOV"
38
+ Cache-Control:
39
+ - private
40
+ X-Served-By:
41
+ - www301.flickr.bf1.yahoo.com
42
+ Vary:
43
+ - Accept-Encoding
44
+ Age:
45
+ - '0'
46
+ Via:
47
+ - http/1.1 fts119.flickr.bf1.yahoo.com (ApacheTrafficServer/4.0.2 [cMsSf ]),
48
+ http/1.1 r24.ycpi.ir2.yahoo.net (ApacheTrafficServer [cMsSf ])
49
+ Server:
50
+ - ATS
51
+ Strict-Transport-Security:
52
+ - max-age=259200
53
+ Connection:
54
+ - keep-alive
55
+ body:
56
+ encoding: ASCII-8BIT
57
+ string: '{"photo":{"id":"15631479625","secret":"b6168ee903","server":"3933","farm":4,"dateuploaded":"1414326010","isfavorite":0,"license":"1","safety_level":"0","rotation":0,"originalsecret":"3191340cdb","originalformat":"jpg","owner":{"nsid":"128943844@N06","username":"rawfunkmaharishi","realname":"Raw
58
+ Funk Maharishi","location":"","iconserver":"3933","iconfarm":4,"path_alias":"rawfunkmaharishi"},"title":{"_content":"The
59
+ Comedy, October 2014"},"description":{"_content":""},"visibility":{"ispublic":1,"isfriend":0,"isfamily":0},"dates":{"posted":"1414326010","taken":"2014-10-22
60
+ 15:54:24","takengranularity":"0","takenunknown":"0","lastupdate":"1416111853"},"views":"96","editability":{"cancomment":0,"canaddmeta":0},"publiceditability":{"cancomment":1,"canaddmeta":0},"usage":{"candownload":1,"canblog":0,"canprint":0,"canshare":1},"comments":{"_content":"0"},"notes":{"note":[]},"people":{"haspeople":0},"tags":{"tag":[{"id":"128898522-15631479625-1422028","author":"128943844@N06","authorname":"rawfunkmaharishi","raw":"the
61
+ comedy","_content":"thecomedy","machine_tag":0},{"id":"128898522-15631479625-17975","author":"128943844@N06","authorname":"rawfunkmaharishi","raw":"gigs","_content":"gigs","machine_tag":0},{"id":"128898522-15631479625-228989594","author":"128943844@N06","authorname":"rawfunkmaharishi","raw":"photographer:kim","_content":"photographerkim","machine_tag":0}]},"urls":{"url":[{"type":"photopage","_content":"https:\/\/www.flickr.com\/photos\/rawfunkmaharishi\/15631479625\/"}]},"media":"photo"},"stat":"ok"}'
62
+ http_version:
63
+ recorded_at: Tue, 31 Mar 2015 20:14:33 GMT
64
+ - request:
65
+ method: post
66
+ uri: https://api.flickr.com/services/rest/
67
+ body:
68
+ encoding: US-ASCII
69
+ string: method=flickr.photos.licenses.getInfo&format=json&nojsoncallback=1
70
+ headers:
71
+ Accept-Encoding:
72
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
73
+ Accept:
74
+ - "*/*"
75
+ User-Agent:
76
+ - FlickRaw/0.9.8
77
+ Authorization:
78
+ - OAuth realm="https://api.flickr.com/services/rest/", oauth_consumer_key="<FLICKR_API_KEY>",
79
+ oauth_nonce="UAW2picTqRVCz8UbLAfroJ%2FxyhUONtw0NZqEQeA2qFo%3D", oauth_signature="<FLICKR_SECRET>%26",
80
+ oauth_signature_method="PLAINTEXT", oauth_timestamp="1427832873", oauth_token="",
81
+ oauth_version="1.0"
82
+ Content-Type:
83
+ - application/x-www-form-urlencoded
84
+ response:
85
+ status:
86
+ code: 200
87
+ message: OK
88
+ headers:
89
+ Date:
90
+ - Tue, 31 Mar 2015 20:14:34 GMT
91
+ Content-Type:
92
+ - application/json
93
+ Content-Length:
94
+ - '371'
95
+ P3p:
96
+ - policyref="http://info.yahoo.com/w3c/p3p.xml", CP="CAO DSP COR CUR ADM DEV
97
+ TAI PSA PSD IVAi IVDi CONi TELo OTPi OUR DELi SAMi OTRi UNRi PUBi IND PHY
98
+ ONL UNI PUR FIN COM NAV INT DEM CNT STA POL HEA PRE LOC GOV"
99
+ Cache-Control:
100
+ - private
101
+ X-Served-By:
102
+ - www263.flickr.bf1.yahoo.com
103
+ Vary:
104
+ - Accept-Encoding
105
+ Age:
106
+ - '2'
107
+ Via:
108
+ - http/1.1 fts114.flickr.bf1.yahoo.com (ApacheTrafficServer/4.0.2 [cMsSf ]),
109
+ http/1.1 r11.ycpi.ams.yahoo.net (ApacheTrafficServer [cMsSf ])
110
+ Server:
111
+ - ATS
112
+ Strict-Transport-Security:
113
+ - max-age=259200
114
+ Connection:
115
+ - keep-alive
116
+ body:
117
+ encoding: ASCII-8BIT
118
+ string: '{"licenses":{"license":[{"id":"0","name":"All Rights Reserved","url":""},{"id":"4","name":"Attribution
119
+ License","url":"https:\/\/creativecommons.org\/licenses\/by\/2.0\/"},{"id":"6","name":"Attribution-NoDerivs
120
+ License","url":"https:\/\/creativecommons.org\/licenses\/by-nd\/2.0\/"},{"id":"3","name":"Attribution-NonCommercial-NoDerivs
121
+ License","url":"https:\/\/creativecommons.org\/licenses\/by-nc-nd\/2.0\/"},{"id":"2","name":"Attribution-NonCommercial
122
+ License","url":"https:\/\/creativecommons.org\/licenses\/by-nc\/2.0\/"},{"id":"1","name":"Attribution-NonCommercial-ShareAlike
123
+ License","url":"https:\/\/creativecommons.org\/licenses\/by-nc-sa\/2.0\/"},{"id":"5","name":"Attribution-ShareAlike
124
+ License","url":"https:\/\/creativecommons.org\/licenses\/by-sa\/2.0\/"},{"id":"7","name":"No
125
+ known copyright restrictions","url":"https:\/\/www.flickr.com\/commons\/usage\/"},{"id":"8","name":"United
126
+ States Government Work","url":"http:\/\/www.usa.gov\/copyright.shtml"},{"id":"9","name":"Public
127
+ Domain Dedication (CC0)","url":"https:\/\/creativecommons.org\/publicdomain\/zero\/1.0\/"},{"id":"10","name":"Public
128
+ Domain Mark","url":"https:\/\/creativecommons.org\/publicdomain\/mark\/1.0\/"}]},"stat":"ok"}'
129
+ http_version:
130
+ recorded_at: Tue, 31 Mar 2015 20:14:34 GMT
131
+ - request:
132
+ method: get
133
+ uri: http://api.soundcloud.com/resolve?client_id=<SOUNDCLOUD_CLIENT_ID>&format=json&url=https://soundcloud.com/rawfunkmaharishi/hexaflexagon-1
134
+ body:
135
+ encoding: US-ASCII
136
+ string: ''
137
+ headers:
138
+ User-Agent:
139
+ - SoundCloud Ruby Wrapper 0.13.3
140
+ response:
141
+ status:
142
+ code: 302
143
+ message: Found
144
+ headers:
145
+ Access-Control-Allow-Headers:
146
+ - Accept, Authorization, Content-Type, Origin
147
+ Access-Control-Allow-Methods:
148
+ - GET, PUT, POST, DELETE
149
+ Access-Control-Allow-Origin:
150
+ - "*"
151
+ Access-Control-Expose-Headers:
152
+ - Date
153
+ Cache-Control:
154
+ - no-cache
155
+ Content-Type:
156
+ - application/json; charset=utf-8
157
+ Date:
158
+ - Tue, 31 Mar 2015 20:14:34 GMT
159
+ Location:
160
+ - https://api.soundcloud.com/tracks/193008299.json?client_id=<SOUNDCLOUD_CLIENT_ID>
161
+ Server:
162
+ - am/2
163
+ Content-Length:
164
+ - '129'
165
+ body:
166
+ encoding: UTF-8
167
+ string: '{"status":"302 - Found","location":"https://api.soundcloud.com/tracks/193008299.json?client_id=<SOUNDCLOUD_CLIENT_ID>"}'
168
+ http_version:
169
+ recorded_at: Tue, 31 Mar 2015 20:14:34 GMT
170
+ - request:
171
+ method: get
172
+ uri: https://api.soundcloud.com/tracks/193008299.json?client_id=<SOUNDCLOUD_CLIENT_ID>
173
+ body:
174
+ encoding: US-ASCII
175
+ string: ''
176
+ headers:
177
+ User-Agent:
178
+ - SoundCloud Ruby Wrapper 0.13.3
179
+ response:
180
+ status:
181
+ code: 200
182
+ message: OK
183
+ headers:
184
+ Accept-Ranges:
185
+ - bytes
186
+ Access-Control-Allow-Headers:
187
+ - Accept, Authorization, Content-Type, Origin
188
+ Access-Control-Allow-Methods:
189
+ - GET, PUT, POST, DELETE
190
+ Access-Control-Allow-Origin:
191
+ - "*"
192
+ Access-Control-Expose-Headers:
193
+ - Date
194
+ Cache-Control:
195
+ - max-age=600, public
196
+ Content-Type:
197
+ - application/json; charset=utf-8
198
+ Date:
199
+ - Tue, 31 Mar 2015 20:14:34 GMT
200
+ Etag:
201
+ - '"22a8481cd85e1e7be64128c639cc21b0"'
202
+ Last-Modified:
203
+ - Tue, 31 Mar 2015 16:20:04 GMT
204
+ Server:
205
+ - ECS (lhr/4BCD)
206
+ Vary:
207
+ - Accept-Encoding
208
+ X-Cache:
209
+ - HIT
210
+ Content-Length:
211
+ - '1555'
212
+ body:
213
+ encoding: UTF-8
214
+ 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
215
+ 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
216
+ 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
217
+ 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"}'
218
+ http_version:
219
+ recorded_at: Tue, 31 Mar 2015 20:14:34 GMT
220
+ recorded_with: VCR 2.9.3