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
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: c7ede05eac12185b11e1038f17880897a4341680
4
- data.tar.gz: 51528843daf81c4e7e17e503861a971dd224ab9e
3
+ metadata.gz: f65941fa63765aacc68d10628f57455119d907ff
4
+ data.tar.gz: 663003c250b66bed25aad0967c9d770bd6c7890b
5
5
  SHA512:
6
- metadata.gz: bd59f0cb292e5626b3f852cb47285b75f2864afc23417797d5ce1d46ede91b83a99ebf8162667e1e059d35ce0bea40b5acbe5201f09d2ac149cd994ceab1e53c
7
- data.tar.gz: 0d6759f0aa70f5a59a54645628b549c2d4951fdc204a56e76f343af7c0e57610ce7d8cd23872e67d5b7270647a310282c72b200447083e9d61a78b900c58bcaf
6
+ metadata.gz: f0ed75ddf476ad8c33942148d48b11e1ebde71e827d45c36987bcc51f0440b001ab603278b45b4091613ae4560904a06156463a2e50353ea3172b03b6de26de6
7
+ data.tar.gz: e123f933c514079cb7cd5ddcb23d987f9605e97bbecd5ca4f4e477ef628e2e89b4300b768be378a79ca0a64b199973d4b1118122b825646bbba40a1383c182e7
data/README.md CHANGED
@@ -42,17 +42,21 @@ You need to create a *_sources* directory in your Jekyll project, containing fil
42
42
 
43
43
  https://soundcloud.com/rawfunkmaharishi/hexaflexagon-1
44
44
  https://soundcloud.com/rawfunkmaharishi/junalbandi-3
45
-
46
- It also resolves sets/albums on Flickr and SoundCloud (and soon Vimeo), so this will work:
45
+
46
+ It also resolves sets/albums on Flickr and SoundCloud (and soon Vimeo), so this kind of thing will work:
47
47
 
48
48
  https://www.flickr.com/photos/pikesley/sets/72157648589429938/
49
- https://soundcloud.com/rawfunkmaharishi/sets/islington-academy-sessions
50
49
 
51
50
  ####Notes about *_sources*:
52
-
53
- * Purdie does not care how many files are in *_sources*, nor if the services are all mixed up together in those files - it will simply dump out one file per service
54
- * If a URL appears multiple times in a resolved list, only the first appearance will be propagated to the output
55
- * You can specify a source file on the command line with the `-f` flag
51
+
52
+ * Purdie maps each input file onto an output file, replacing any extension with _.yaml_, something like:
53
+ * \_sources/flickr.csv -> \_data/flickr.yaml
54
+ * \_sources/pictures.source -> \_data/pictures.yaml
55
+ * \_sources/soundcloud.sounds -> \_data/soundcloud.yaml
56
+ * \_sources/vimeo -> \_data/vimeo.yaml
57
+
58
+ * Mixing up different services in the same input file makes no sense to Purdie. Don't do this
59
+ * If a URL appears multiple times in a resolved list, only the first appearance will be propagated to the output file
56
60
 
57
61
  You also need a *.env* file with the relevant credentials in it:
58
62
 
@@ -62,7 +66,7 @@ You also need a *.env* file with the relevant credentials in it:
62
66
  SOUNDCLOUD_CLIENT_ID: this_a_client_id
63
67
 
64
68
  VIMEO_BEARER_TOKEN: this_is_bearer_token
65
-
69
+
66
70
  YOUTUBE_API_KEY: this_is_key_for_youtube
67
71
 
68
72
  (get those things from [Flickr](https://www.flickr.com/services/apps/create/apply), [SoundCloud](http://soundcloud.com/you/apps/new), [Vimeo](https://developer.vimeo.com/apps/new) and [YouTube](https://console.developers.google.com/project))
@@ -72,12 +76,12 @@ And then you can run
72
76
  purdie fetch
73
77
 
74
78
  (`fetch` is the default task (in fact currently the only task), so just `purdie` will work) and it will dump out YAML files into *_data*:
75
-
79
+
76
80
  flickr.yaml
81
+ pictures.yaml
77
82
  soundcloud.yaml
78
83
  vimeo.yaml
79
- youtube.yaml
80
-
84
+
81
85
  ready for Jekyll to consume.
82
86
 
83
87
  ###Customisation
@@ -109,9 +113,9 @@ There's no reason I couldn't support other services - I've already added [YouTub
109
113
  * includes the `Purdie::Ingester` module, and
110
114
  * sports a `::matcher` class method which returns a string which will pick a URL out of an input file, and
111
115
  * has a `#distill` method which takes a URL representing an item on the service and returns a hash of metadata, see e.g.
112
- * [Flickr](https://github.com/rawfunkmaharishi/purdie/blob/master/lib/purdie/services/flickr.rb#L27)
116
+ * [Flickr](https://github.com/rawfunkmaharishi/purdie/blob/master/lib/purdie/services/flickr.rb#L33)
113
117
  * [SoundCloud](https://github.com/rawfunkmaharishi/purdie/blob/master/lib/purdie/services/soundcloud.rb#L13)
114
- * [Vimeo](https://github.com/rawfunkmaharishi/purdie/blob/master/lib/purdie/services/vimeo.rb#L15)
118
+ * [Vimeo](https://github.com/rawfunkmaharishi/purdie/blob/master/lib/purdie/services/vimeo.rb#L20)
115
119
  * and optionally a `::resolve` class method which takes a set or album URL for the service and returns a list of URLs for individual items
116
120
 
117
121
  then this should all Just Work. There's definitely a blog post in this, because Ruby introspection and metaprogramming is just mind-bogglingly powerful (and dangerous).
data/Rakefile CHANGED
@@ -5,6 +5,10 @@ require 'coveralls/rake/task'
5
5
 
6
6
  Coveralls::RakeTask.new
7
7
  RSpec::Core::RakeTask.new
8
- Cucumber::Rake::Task.new
8
+ #Cucumber::Rake::Task.new
9
9
 
10
- task :default => [:spec, :cucumber, 'coveralls:push']
10
+ Cucumber::Rake::Task.new(:features) do |t|
11
+ t.cucumber_opts = "features --tags ~@wip"
12
+ end
13
+
14
+ task :default => [:spec, :features, 'coveralls:push']
@@ -2,24 +2,13 @@
2
2
  Feature: Handle comments
3
3
 
4
4
  Scenario: Handle comments in a source file
5
- Given a file named "_sources/sources.source" with:
5
+ Given a file named "_sources/flickr.source" with:
6
6
  """
7
- https://soundcloud.com/rawfunkmaharishi/hexaflexagon-1
8
7
  # This is a comment
9
8
  https://www.flickr.com/photos/rawfunkmaharishi/15631479625/
10
9
  """
11
10
  When I successfully run `purdie fetch`
12
- Then a file named "_data/soundcloud.yaml" should exist
13
- And the file "_data/soundcloud.yaml" should contain:
14
- """
15
- - title: Hexaflexagon
16
- id: 193008299
17
- location: Islington Academy
18
- date: '2015-02-18'
19
- license: Attribution-NonCommercial-ShareAlike
20
- license_url: http://creativecommons.org/licenses/by-nc-sa/4.0/
21
- """
22
- And a file named "_data/flickr.yaml" should exist
11
+ Then a file named "_data/flickr.yaml" should exist
23
12
  And the file "_data/flickr.yaml" should contain:
24
13
  """
25
14
  - title: The Comedy, October 2014
@@ -1,5 +1,5 @@
1
1
  @vcr
2
-
2
+ @announce-stdout
3
3
  Feature: Missing or bad credentials
4
4
 
5
5
  Scenario: Attempt to process SoundCloud URLs with missing credentials
@@ -20,14 +20,13 @@ Feature: Missing or bad credentials
20
20
  """
21
21
  https://vimeo.com/110132671
22
22
  https://vimeo.com/110133117
23
- https://www.youtube.com/watch?v=Qt_J0jNqtZg&list=PLuPLM2FI60-M0-aWejF9WgB-Dkt1TuQXv&index=2
24
23
  """
25
24
  And no credentials for Vimeo
26
25
  And bad credentials for YouTube
27
26
  When I run `purdie fetch`
28
27
  Then the stderr should contain:
29
28
  """
30
- Missing or duff credentials for: Vimeo, YouTube
29
+ Missing or duff credentials for: Vimeo
31
30
  """
32
31
  And I restore the credentials for Vimeo
33
32
  And I restore the credentials for YouTube
@@ -6,6 +6,11 @@ Feature: Flickr album
6
6
  """
7
7
  https://www.flickr.com/photos/pikesley/sets/72157649827363868/
8
8
  """
9
+ And a file named "_config/purdie.yaml" with:
10
+ """
11
+ photographer_lookups:
12
+ pikesley: sam
13
+ """
9
14
  When I successfully run `purdie fetch`
10
15
  Then a file named "_data/flickr.yaml" should exist
11
16
  And the file "_data/flickr.yaml" should contain:
@@ -1,3 +1,4 @@
1
+ @wip
1
2
  @vcr
2
3
  Feature: Set Flickr picturesize
3
4
 
@@ -1,3 +1,4 @@
1
+ @wip
1
2
  @vcr
2
3
  Feature: Flickr
3
4
 
@@ -1,3 +1,4 @@
1
+ @clearconf
1
2
  @vcr
2
3
  Feature: First contact with the Real World
3
4
 
@@ -17,6 +18,10 @@ Feature: First contact with the Real World
17
18
  https://vimeo.com/117102891
18
19
  https://vimeo.com/110132671
19
20
  """
21
+ And a file named "_config/purdie.yaml" with:
22
+ """
23
+ default_title: Raw Funk Maharishi
24
+ """
20
25
  When I successfully run `purdie fetch`
21
26
  Then a file named "_data/flickr.yaml" should exist
22
27
  And the file "_data/flickr.yaml" should contain:
@@ -1,24 +1,26 @@
1
- @vcr
2
- Feature: Select a file to process
3
-
4
- Scenario: Choose file to process
5
- Given a file named "_sources/soundcloud.source" with:
6
- """
7
- https://soundcloud.com/rawfunkmaharishi/hexaflexagon-1
8
- """
9
- And a file named "_sources/flickr.source" with:
10
- """
11
- https://www.flickr.com/photos/rawfunkmaharishi/15631479625/
12
- """
13
- When I successfully run `purdie fetch -f _sources/soundcloud.source`
14
- Then a file named "_data/soundcloud.yaml" should exist
15
- And the file "_data/soundcloud.yaml" should contain:
16
- """
17
- - title: Hexaflexagon
18
- id: 193008299
19
- location: Islington Academy
20
- date: '2015-02-18'
21
- license: Attribution-NonCommercial-ShareAlike
22
- license_url: http://creativecommons.org/licenses/by-nc-sa/4.0/
23
- """
24
- And a file named "_data/flickr.yaml" should not exist
1
+ ### @wtf
2
+ ### @vcr
3
+ ### Feature: Select a file to process
4
+ ###
5
+ ### Scenario: Choose file to process
6
+ ### Given a file named "_sources/soundcloud.source" with:
7
+ ### """
8
+ ### https://soundcloud.com/rawfunkmaharishi/hexaflexagon-1
9
+ ### """
10
+ ### And a file named "_sources/flickr.source" with:
11
+ ### """
12
+ ### https://www.flickr.com/photos/rawfunkmaharishi/15631479625/
13
+ ### """
14
+ ### When I successfully run `purdie fetch -f _sources/soundcloud.source`
15
+ ### Then a file named "_data/soundcloud.yaml" should exist
16
+ ### And the file "_data/soundcloud.yaml" should contain:
17
+ ### """
18
+ ### - title: Hexaflexagon
19
+ ### id: 193008299
20
+ ### location: Islington Academy
21
+ ### date: '2015-02-18'
22
+ ### license: Attribution-NonCommercial-ShareAlike
23
+ ### license_url: http://creativecommons.org/licenses/by-nc-sa/4.0/
24
+ ### """
25
+ ### And a file named "_data/flickr.yaml" should not exist
26
+ ###
@@ -7,8 +7,8 @@ Feature: Soundcloud set
7
7
  https://soundcloud.com/rawfunkmaharishi/sets/islington-academy-sessions
8
8
  """
9
9
  When I successfully run `purdie fetch`
10
- Then a file named "_data/soundcloud.yaml" should exist
11
- And the file "_data/soundcloud.yaml" should contain:
10
+ Then a file named "_data/soundcloud-set.yaml" should exist
11
+ And the file "_data/soundcloud-set.yaml" should contain:
12
12
  """
13
13
  ---
14
14
  - title: Hexaflexagon
@@ -0,0 +1,125 @@
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="lStJS%2BN%2FCaUkNeTkqy96sNrrbLb4jG9KHEIFoqANl2o%3D", oauth_signature="<FLICKR_SECRET>%26",
19
+ oauth_signature_method="PLAINTEXT", oauth_timestamp="1426093984", 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
+ - Wed, 11 Mar 2015 17:13:05 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
+ - www58.flickr.bf1.yahoo.com
42
+ Vary:
43
+ - Accept-Encoding
44
+ Age:
45
+ - '0'
46
+ Via:
47
+ - http/1.1 fts116.flickr.bf1.yahoo.com (ApacheTrafficServer/4.0.2 [cMsSf ]),
48
+ http/1.1 r21.ycpi.dea.yahoo.net (ApacheTrafficServer [cMsSf ])
49
+ Server:
50
+ - ATS
51
+ Connection:
52
+ - keep-alive
53
+ body:
54
+ encoding: ASCII-8BIT
55
+ 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
56
+ Funk Maharishi","location":"","iconserver":"3933","iconfarm":4,"path_alias":"rawfunkmaharishi"},"title":{"_content":"The
57
+ Comedy, October 2014"},"description":{"_content":""},"visibility":{"ispublic":1,"isfriend":0,"isfamily":0},"dates":{"posted":"1414326010","taken":"2014-10-22
58
+ 15:54:24","takengranularity":"0","takenunknown":"0","lastupdate":"1416111853"},"views":"94","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
59
+ 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"}'
60
+ http_version:
61
+ recorded_at: Wed, 11 Mar 2015 17:13:05 GMT
62
+ - request:
63
+ method: post
64
+ uri: https://api.flickr.com/services/rest/
65
+ body:
66
+ encoding: US-ASCII
67
+ string: method=flickr.photos.licenses.getInfo&format=json&nojsoncallback=1
68
+ headers:
69
+ Accept-Encoding:
70
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
71
+ Accept:
72
+ - "*/*"
73
+ User-Agent:
74
+ - FlickRaw/0.9.8
75
+ Authorization:
76
+ - OAuth realm="https://api.flickr.com/services/rest/", oauth_consumer_key="<FLICKR_API_KEY>",
77
+ oauth_nonce="Wys2vnSmSwlJVK6t4GZKjntby0j9A6Al%2FLvTo3sEsdw%3D", oauth_signature="<FLICKR_SECRET>%26",
78
+ oauth_signature_method="PLAINTEXT", oauth_timestamp="1426093985", oauth_token="",
79
+ oauth_version="1.0"
80
+ Content-Type:
81
+ - application/x-www-form-urlencoded
82
+ response:
83
+ status:
84
+ code: 200
85
+ message: OK
86
+ headers:
87
+ Date:
88
+ - Wed, 11 Mar 2015 17:13:05 GMT
89
+ Content-Type:
90
+ - application/json
91
+ Content-Length:
92
+ - '314'
93
+ P3p:
94
+ - policyref="http://info.yahoo.com/w3c/p3p.xml", CP="CAO DSP COR CUR ADM DEV
95
+ TAI PSA PSD IVAi IVDi CONi TELo OTPi OUR DELi SAMi OTRi UNRi PUBi IND PHY
96
+ ONL UNI PUR FIN COM NAV INT DEM CNT STA POL HEA PRE LOC GOV"
97
+ Cache-Control:
98
+ - private
99
+ X-Served-By:
100
+ - www47.flickr.bf1.yahoo.com
101
+ Vary:
102
+ - Accept-Encoding
103
+ Age:
104
+ - '0'
105
+ Via:
106
+ - http/1.1 fts122.flickr.bf1.yahoo.com (ApacheTrafficServer/4.0.2 [cMsSf ]),
107
+ http/1.1 r10.ycpi.dea.yahoo.net (ApacheTrafficServer [cMsSf ])
108
+ Server:
109
+ - ATS
110
+ Connection:
111
+ - keep-alive
112
+ body:
113
+ encoding: ASCII-8BIT
114
+ string: '{"licenses":{"license":[{"id":"0","name":"All Rights Reserved","url":""},{"id":"4","name":"Attribution
115
+ License","url":"https:\/\/creativecommons.org\/licenses\/by\/2.0\/"},{"id":"6","name":"Attribution-NoDerivs
116
+ License","url":"https:\/\/creativecommons.org\/licenses\/by-nd\/2.0\/"},{"id":"3","name":"Attribution-NonCommercial-NoDerivs
117
+ License","url":"https:\/\/creativecommons.org\/licenses\/by-nc-nd\/2.0\/"},{"id":"2","name":"Attribution-NonCommercial
118
+ License","url":"https:\/\/creativecommons.org\/licenses\/by-nc\/2.0\/"},{"id":"1","name":"Attribution-NonCommercial-ShareAlike
119
+ License","url":"https:\/\/creativecommons.org\/licenses\/by-nc-sa\/2.0\/"},{"id":"5","name":"Attribution-ShareAlike
120
+ License","url":"https:\/\/creativecommons.org\/licenses\/by-sa\/2.0\/"},{"id":"7","name":"No
121
+ known copyright restrictions","url":"https:\/\/www.flickr.com\/commons\/usage\/"},{"id":"8","name":"United
122
+ States Government Work","url":"http:\/\/www.usa.gov\/copyright.shtml"}]},"stat":"ok"}'
123
+ http_version:
124
+ recorded_at: Wed, 11 Mar 2015 17:13:05 GMT
125
+ recorded_with: VCR 2.9.3
@@ -0,0 +1,536 @@
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=15950875724&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="6%2BGrs%2Bn6FZ6ua9eHOBrzYpKVbz%2BNsl8cfLESnFHLe0E%3D", oauth_signature="<FLICKR_SECRET>%26",
19
+ oauth_signature_method="PLAINTEXT", oauth_timestamp="1427833105", 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:18:26 GMT
30
+ Content-Type:
31
+ - application/json
32
+ Content-Length:
33
+ - '543'
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
+ - www21.flickr.bf1.yahoo.com
42
+ Vary:
43
+ - Accept-Encoding
44
+ Age:
45
+ - '2'
46
+ Via:
47
+ - http/1.1 fts122.flickr.bf1.yahoo.com (ApacheTrafficServer/4.0.2 [cMsSf ]),
48
+ http/1.1 r13.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":"15950875724","secret":"23d58be214","server":"7398","farm":8,"dateuploaded":"1424289792","isfavorite":0,"license":"2","safety_level":"0","rotation":0,"originalsecret":"24a89b0cfe","originalformat":"jpg","owner":{"nsid":"54115632@N00","username":"cluttercup","realname":"Jane
58
+ Dickson","location":"London, UK","iconserver":"7338","iconfarm":8,"path_alias":"cluttercup"},"title":{"_content":""},"description":{"_content":""},"visibility":{"ispublic":1,"isfriend":0,"isfamily":0},"dates":{"posted":"1424289792","taken":"2015-02-18
59
+ 16:56:20","takengranularity":"0","takenunknown":"0","lastupdate":"1424289832"},"views":"39","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":[]},"urls":{"url":[{"type":"photopage","_content":"https:\/\/www.flickr.com\/photos\/cluttercup\/15950875724\/"}]},"media":"photo"},"stat":"ok"}'
60
+ http_version:
61
+ recorded_at: Tue, 31 Mar 2015 20:18:26 GMT
62
+ - request:
63
+ method: post
64
+ uri: https://api.flickr.com/services/rest/
65
+ body:
66
+ encoding: US-ASCII
67
+ string: method=flickr.photos.licenses.getInfo&format=json&nojsoncallback=1
68
+ headers:
69
+ Accept-Encoding:
70
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
71
+ Accept:
72
+ - "*/*"
73
+ User-Agent:
74
+ - FlickRaw/0.9.8
75
+ Authorization:
76
+ - OAuth realm="https://api.flickr.com/services/rest/", oauth_consumer_key="<FLICKR_API_KEY>",
77
+ oauth_nonce="dROaFhiz%2FgKYxlHUucU42NAFitV3J6o4YaTsWC%2BTh60%3D", oauth_signature="<FLICKR_SECRET>%26",
78
+ oauth_signature_method="PLAINTEXT", oauth_timestamp="1427833106", oauth_token="",
79
+ oauth_version="1.0"
80
+ Content-Type:
81
+ - application/x-www-form-urlencoded
82
+ response:
83
+ status:
84
+ code: 200
85
+ message: OK
86
+ headers:
87
+ Date:
88
+ - Tue, 31 Mar 2015 20:18:26 GMT
89
+ Content-Type:
90
+ - application/json
91
+ Content-Length:
92
+ - '371'
93
+ P3p:
94
+ - policyref="http://info.yahoo.com/w3c/p3p.xml", CP="CAO DSP COR CUR ADM DEV
95
+ TAI PSA PSD IVAi IVDi CONi TELo OTPi OUR DELi SAMi OTRi UNRi PUBi IND PHY
96
+ ONL UNI PUR FIN COM NAV INT DEM CNT STA POL HEA PRE LOC GOV"
97
+ Cache-Control:
98
+ - private
99
+ X-Served-By:
100
+ - www298.flickr.bf1.yahoo.com
101
+ Vary:
102
+ - Accept-Encoding
103
+ Age:
104
+ - '0'
105
+ Via:
106
+ - http/1.1 fts119.flickr.bf1.yahoo.com (ApacheTrafficServer/4.0.2 [cMsSf ]),
107
+ http/1.1 r05.ycpi.ams.yahoo.net (ApacheTrafficServer [cMsSf ])
108
+ Server:
109
+ - ATS
110
+ Strict-Transport-Security:
111
+ - max-age=259200
112
+ Connection:
113
+ - keep-alive
114
+ body:
115
+ encoding: ASCII-8BIT
116
+ string: '{"licenses":{"license":[{"id":"0","name":"All Rights Reserved","url":""},{"id":"4","name":"Attribution
117
+ License","url":"https:\/\/creativecommons.org\/licenses\/by\/2.0\/"},{"id":"6","name":"Attribution-NoDerivs
118
+ License","url":"https:\/\/creativecommons.org\/licenses\/by-nd\/2.0\/"},{"id":"3","name":"Attribution-NonCommercial-NoDerivs
119
+ License","url":"https:\/\/creativecommons.org\/licenses\/by-nc-nd\/2.0\/"},{"id":"2","name":"Attribution-NonCommercial
120
+ License","url":"https:\/\/creativecommons.org\/licenses\/by-nc\/2.0\/"},{"id":"1","name":"Attribution-NonCommercial-ShareAlike
121
+ License","url":"https:\/\/creativecommons.org\/licenses\/by-nc-sa\/2.0\/"},{"id":"5","name":"Attribution-ShareAlike
122
+ License","url":"https:\/\/creativecommons.org\/licenses\/by-sa\/2.0\/"},{"id":"7","name":"No
123
+ known copyright restrictions","url":"https:\/\/www.flickr.com\/commons\/usage\/"},{"id":"8","name":"United
124
+ States Government Work","url":"http:\/\/www.usa.gov\/copyright.shtml"},{"id":"9","name":"Public
125
+ Domain Dedication (CC0)","url":"https:\/\/creativecommons.org\/publicdomain\/zero\/1.0\/"},{"id":"10","name":"Public
126
+ Domain Mark","url":"https:\/\/creativecommons.org\/publicdomain\/mark\/1.0\/"}]},"stat":"ok"}'
127
+ http_version:
128
+ recorded_at: Tue, 31 Mar 2015 20:18:26 GMT
129
+ - request:
130
+ method: post
131
+ uri: https://api.flickr.com/services/rest/
132
+ body:
133
+ encoding: US-ASCII
134
+ string: photo_id=16579675721&method=flickr.photos.getInfo&format=json&nojsoncallback=1
135
+ headers:
136
+ Accept-Encoding:
137
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
138
+ Accept:
139
+ - "*/*"
140
+ User-Agent:
141
+ - FlickRaw/0.9.8
142
+ Authorization:
143
+ - OAuth realm="https://api.flickr.com/services/rest/", oauth_consumer_key="<FLICKR_API_KEY>",
144
+ oauth_nonce="Feaa37TfZQC6n%2Fu%2Bw%2FFvZnvi779gyYcybKXpul1FSyA%3D", oauth_signature="<FLICKR_SECRET>%26",
145
+ oauth_signature_method="PLAINTEXT", oauth_timestamp="1427833106", oauth_token="",
146
+ oauth_version="1.0"
147
+ Content-Type:
148
+ - application/x-www-form-urlencoded
149
+ response:
150
+ status:
151
+ code: 200
152
+ message: OK
153
+ headers:
154
+ Date:
155
+ - Tue, 31 Mar 2015 20:18:26 GMT
156
+ Content-Type:
157
+ - application/json
158
+ Content-Length:
159
+ - '546'
160
+ P3p:
161
+ - policyref="http://info.yahoo.com/w3c/p3p.xml", CP="CAO DSP COR CUR ADM DEV
162
+ TAI PSA PSD IVAi IVDi CONi TELo OTPi OUR DELi SAMi OTRi UNRi PUBi IND PHY
163
+ ONL UNI PUR FIN COM NAV INT DEM CNT STA POL HEA PRE LOC GOV"
164
+ Cache-Control:
165
+ - private
166
+ X-Served-By:
167
+ - www313.flickr.bf1.yahoo.com
168
+ Vary:
169
+ - Accept-Encoding
170
+ Age:
171
+ - '0'
172
+ Via:
173
+ - http/1.1 fts107.flickr.bf1.yahoo.com (ApacheTrafficServer/4.0.2 [cMsSf ]),
174
+ http/1.1 r05.ycpi.ams.yahoo.net (ApacheTrafficServer [cMsSf ])
175
+ Server:
176
+ - ATS
177
+ Strict-Transport-Security:
178
+ - max-age=259200
179
+ Connection:
180
+ - keep-alive
181
+ body:
182
+ encoding: ASCII-8BIT
183
+ string: '{"photo":{"id":"16579675721","secret":"f765c42f99","server":"7418","farm":8,"dateuploaded":"1424360169","isfavorite":0,"license":"2","safety_level":"0","rotation":0,"originalsecret":"810967e8d9","originalformat":"jpg","owner":{"nsid":"54115632@N00","username":"cluttercup","realname":"Jane
184
+ Dickson","location":"London, UK","iconserver":"7338","iconfarm":8,"path_alias":"cluttercup"},"title":{"_content":""},"description":{"_content":""},"visibility":{"ispublic":1,"isfriend":0,"isfamily":0},"dates":{"posted":"1424360169","taken":"2015-02-18
185
+ 16:28:17","takengranularity":"0","takenunknown":"0","lastupdate":"1424360294"},"views":"26","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":[]},"urls":{"url":[{"type":"photopage","_content":"https:\/\/www.flickr.com\/photos\/cluttercup\/16579675721\/"}]},"media":"photo"},"stat":"ok"}'
186
+ http_version:
187
+ recorded_at: Tue, 31 Mar 2015 20:18:26 GMT
188
+ - request:
189
+ method: post
190
+ uri: https://api.flickr.com/services/rest/
191
+ body:
192
+ encoding: US-ASCII
193
+ string: method=flickr.photos.licenses.getInfo&format=json&nojsoncallback=1
194
+ headers:
195
+ Accept-Encoding:
196
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
197
+ Accept:
198
+ - "*/*"
199
+ User-Agent:
200
+ - FlickRaw/0.9.8
201
+ Authorization:
202
+ - OAuth realm="https://api.flickr.com/services/rest/", oauth_consumer_key="<FLICKR_API_KEY>",
203
+ oauth_nonce="xdypdSj8qelXLUVOW8dpku2BnnzAQKiIz%2BYR5PV1ur4%3D", oauth_signature="<FLICKR_SECRET>%26",
204
+ oauth_signature_method="PLAINTEXT", oauth_timestamp="1427833106", oauth_token="",
205
+ oauth_version="1.0"
206
+ Content-Type:
207
+ - application/x-www-form-urlencoded
208
+ response:
209
+ status:
210
+ code: 200
211
+ message: OK
212
+ headers:
213
+ Date:
214
+ - Tue, 31 Mar 2015 20:18:27 GMT
215
+ Content-Type:
216
+ - application/json
217
+ Content-Length:
218
+ - '371'
219
+ P3p:
220
+ - policyref="http://info.yahoo.com/w3c/p3p.xml", CP="CAO DSP COR CUR ADM DEV
221
+ TAI PSA PSD IVAi IVDi CONi TELo OTPi OUR DELi SAMi OTRi UNRi PUBi IND PHY
222
+ ONL UNI PUR FIN COM NAV INT DEM CNT STA POL HEA PRE LOC GOV"
223
+ Cache-Control:
224
+ - private
225
+ X-Served-By:
226
+ - www15.flickr.bf1.yahoo.com
227
+ Vary:
228
+ - Accept-Encoding
229
+ Age:
230
+ - '0'
231
+ Via:
232
+ - http/1.1 fts104.flickr.bf1.yahoo.com (ApacheTrafficServer/4.0.2 [cMsSf ]),
233
+ http/1.1 r09.ycpi.ir2.yahoo.net (ApacheTrafficServer [cMsSf ])
234
+ Server:
235
+ - ATS
236
+ Strict-Transport-Security:
237
+ - max-age=259200
238
+ Connection:
239
+ - keep-alive
240
+ body:
241
+ encoding: ASCII-8BIT
242
+ string: '{"licenses":{"license":[{"id":"0","name":"All Rights Reserved","url":""},{"id":"4","name":"Attribution
243
+ License","url":"https:\/\/creativecommons.org\/licenses\/by\/2.0\/"},{"id":"6","name":"Attribution-NoDerivs
244
+ License","url":"https:\/\/creativecommons.org\/licenses\/by-nd\/2.0\/"},{"id":"3","name":"Attribution-NonCommercial-NoDerivs
245
+ License","url":"https:\/\/creativecommons.org\/licenses\/by-nc-nd\/2.0\/"},{"id":"2","name":"Attribution-NonCommercial
246
+ License","url":"https:\/\/creativecommons.org\/licenses\/by-nc\/2.0\/"},{"id":"1","name":"Attribution-NonCommercial-ShareAlike
247
+ License","url":"https:\/\/creativecommons.org\/licenses\/by-nc-sa\/2.0\/"},{"id":"5","name":"Attribution-ShareAlike
248
+ License","url":"https:\/\/creativecommons.org\/licenses\/by-sa\/2.0\/"},{"id":"7","name":"No
249
+ known copyright restrictions","url":"https:\/\/www.flickr.com\/commons\/usage\/"},{"id":"8","name":"United
250
+ States Government Work","url":"http:\/\/www.usa.gov\/copyright.shtml"},{"id":"9","name":"Public
251
+ Domain Dedication (CC0)","url":"https:\/\/creativecommons.org\/publicdomain\/zero\/1.0\/"},{"id":"10","name":"Public
252
+ Domain Mark","url":"https:\/\/creativecommons.org\/publicdomain\/mark\/1.0\/"}]},"stat":"ok"}'
253
+ http_version:
254
+ recorded_at: Tue, 31 Mar 2015 20:18:27 GMT
255
+ - request:
256
+ method: get
257
+ uri: http://api.soundcloud.com/resolve?client_id=<SOUNDCLOUD_CLIENT_ID>&format=json&url=https://soundcloud.com/rawfunkmaharishi/hexaflexagon-1
258
+ body:
259
+ encoding: US-ASCII
260
+ string: ''
261
+ headers:
262
+ User-Agent:
263
+ - SoundCloud Ruby Wrapper 0.13.3
264
+ response:
265
+ status:
266
+ code: 302
267
+ message: Found
268
+ headers:
269
+ Access-Control-Allow-Headers:
270
+ - Accept, Authorization, Content-Type, Origin
271
+ Access-Control-Allow-Methods:
272
+ - GET, PUT, POST, DELETE
273
+ Access-Control-Allow-Origin:
274
+ - "*"
275
+ Access-Control-Expose-Headers:
276
+ - Date
277
+ Cache-Control:
278
+ - no-cache
279
+ Content-Type:
280
+ - application/json; charset=utf-8
281
+ Date:
282
+ - Tue, 31 Mar 2015 20:18:27 GMT
283
+ Location:
284
+ - https://api.soundcloud.com/tracks/193008299.json?client_id=<SOUNDCLOUD_CLIENT_ID>
285
+ Server:
286
+ - am/2
287
+ Content-Length:
288
+ - '129'
289
+ body:
290
+ encoding: UTF-8
291
+ string: '{"status":"302 - Found","location":"https://api.soundcloud.com/tracks/193008299.json?client_id=<SOUNDCLOUD_CLIENT_ID>"}'
292
+ http_version:
293
+ recorded_at: Tue, 31 Mar 2015 20:18:27 GMT
294
+ - request:
295
+ method: get
296
+ uri: https://api.soundcloud.com/tracks/193008299.json?client_id=<SOUNDCLOUD_CLIENT_ID>
297
+ body:
298
+ encoding: US-ASCII
299
+ string: ''
300
+ headers:
301
+ User-Agent:
302
+ - SoundCloud Ruby Wrapper 0.13.3
303
+ response:
304
+ status:
305
+ code: 200
306
+ message: OK
307
+ headers:
308
+ Accept-Ranges:
309
+ - bytes
310
+ Access-Control-Allow-Headers:
311
+ - Accept, Authorization, Content-Type, Origin
312
+ Access-Control-Allow-Methods:
313
+ - GET, PUT, POST, DELETE
314
+ Access-Control-Allow-Origin:
315
+ - "*"
316
+ Access-Control-Expose-Headers:
317
+ - Date
318
+ Cache-Control:
319
+ - max-age=600, public
320
+ Content-Type:
321
+ - application/json; charset=utf-8
322
+ Date:
323
+ - Tue, 31 Mar 2015 20:18:27 GMT
324
+ Etag:
325
+ - '"22a8481cd85e1e7be64128c639cc21b0"'
326
+ Last-Modified:
327
+ - Tue, 31 Mar 2015 16:20:04 GMT
328
+ Server:
329
+ - am/2
330
+ Vary:
331
+ - Accept-Encoding
332
+ - Authorization, Accept
333
+ X-Cache:
334
+ - HIT
335
+ Content-Length:
336
+ - '1555'
337
+ body:
338
+ encoding: UTF-8
339
+ 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
340
+ 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
341
+ 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
342
+ 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"}'
343
+ http_version:
344
+ recorded_at: Tue, 31 Mar 2015 20:18:27 GMT
345
+ - request:
346
+ method: get
347
+ uri: http://api.soundcloud.com/resolve?client_id=<SOUNDCLOUD_CLIENT_ID>&format=json&url=https://soundcloud.com/rawfunkmaharishi/beer-of-course-but-why
348
+ body:
349
+ encoding: US-ASCII
350
+ string: ''
351
+ headers:
352
+ User-Agent:
353
+ - SoundCloud Ruby Wrapper 0.13.3
354
+ response:
355
+ status:
356
+ code: 302
357
+ message: Found
358
+ headers:
359
+ Access-Control-Allow-Headers:
360
+ - Accept, Authorization, Content-Type, Origin
361
+ Access-Control-Allow-Methods:
362
+ - GET, PUT, POST, DELETE
363
+ Access-Control-Allow-Origin:
364
+ - "*"
365
+ Access-Control-Expose-Headers:
366
+ - Date
367
+ Cache-Control:
368
+ - no-cache
369
+ Content-Type:
370
+ - application/json; charset=utf-8
371
+ Date:
372
+ - Tue, 31 Mar 2015 20:18:27 GMT
373
+ Location:
374
+ - https://api.soundcloud.com/tracks/193006525.json?client_id=<SOUNDCLOUD_CLIENT_ID>
375
+ Server:
376
+ - am/2
377
+ Content-Length:
378
+ - '129'
379
+ body:
380
+ encoding: UTF-8
381
+ string: '{"status":"302 - Found","location":"https://api.soundcloud.com/tracks/193006525.json?client_id=<SOUNDCLOUD_CLIENT_ID>"}'
382
+ http_version:
383
+ recorded_at: Tue, 31 Mar 2015 20:18:27 GMT
384
+ - request:
385
+ method: get
386
+ uri: https://api.soundcloud.com/tracks/193006525.json?client_id=<SOUNDCLOUD_CLIENT_ID>
387
+ body:
388
+ encoding: US-ASCII
389
+ string: ''
390
+ headers:
391
+ User-Agent:
392
+ - SoundCloud Ruby Wrapper 0.13.3
393
+ response:
394
+ status:
395
+ code: 200
396
+ message: OK
397
+ headers:
398
+ Accept-Ranges:
399
+ - bytes
400
+ Access-Control-Allow-Headers:
401
+ - Accept, Authorization, Content-Type, Origin
402
+ Access-Control-Allow-Methods:
403
+ - GET, PUT, POST, DELETE
404
+ Access-Control-Allow-Origin:
405
+ - "*"
406
+ Access-Control-Expose-Headers:
407
+ - Date
408
+ Cache-Control:
409
+ - max-age=600, public
410
+ Content-Type:
411
+ - application/json; charset=utf-8
412
+ Date:
413
+ - Tue, 31 Mar 2015 20:18:27 GMT
414
+ Etag:
415
+ - '"e670341711b788c7ec34c63c273258db"'
416
+ Last-Modified:
417
+ - Tue, 31 Mar 2015 16:20:05 GMT
418
+ Server:
419
+ - am/2
420
+ Vary:
421
+ - Accept-Encoding
422
+ - Authorization, Accept
423
+ X-Cache:
424
+ - HIT
425
+ Content-Length:
426
+ - '1592'
427
+ body:
428
+ encoding: UTF-8
429
+ 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
430
+ 20:07:21 +0000","sharing":"public","tag_list":"afrobeat \"islington academy
431
+ 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,
432
+ 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
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/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"}'
434
+ http_version:
435
+ recorded_at: Tue, 31 Mar 2015 20:18:28 GMT
436
+ - request:
437
+ method: get
438
+ uri: https://api.vimeo.com/videos/117102891
439
+ body:
440
+ encoding: US-ASCII
441
+ string: ''
442
+ headers:
443
+ Authorization:
444
+ - bearer <VIMEO_BEARER_TOKEN>
445
+ Accept:
446
+ - application/json
447
+ response:
448
+ status:
449
+ code: 200
450
+ message: OK
451
+ headers:
452
+ Date:
453
+ - Tue, 31 Mar 2015 20:18:29 GMT
454
+ Server:
455
+ - nginx
456
+ Content-Type:
457
+ - application/vnd.vimeo.video+json
458
+ Cache-Control:
459
+ - no-cache, max-age=315360000
460
+ Expires:
461
+ - Fri, 28 Mar 2025 20:18:28 GMT
462
+ Content-Length:
463
+ - '3714'
464
+ Accept-Ranges:
465
+ - bytes
466
+ Via:
467
+ - 1.1 varnish
468
+ Age:
469
+ - '0'
470
+ X-Served-By:
471
+ - cache-lcy1126-LCY
472
+ X-Cache:
473
+ - MISS
474
+ X-Cache-Hits:
475
+ - '0'
476
+ X-Timer:
477
+ - S1427833108.171735,VS0,VE1051
478
+ Vary:
479
+ - Accept,Vimeo-Client-Id,Accept-Encoding
480
+ body:
481
+ encoding: UTF-8
482
+ string: '{"uri":"/videos/117102891","name":"Bernard","description":null,"link":"https://vimeo.com/rawfunkmaharishi/bernard","duration":239,"width":1280,"language":null,"height":720,"created_time":"2015-01-18T17:26:10+00:00","modified_time":"2015-03-23T22:11:19+00:00","content_rating":["unrated"],"license":"by-nc-sa","privacy":{"view":"anybody","embed":"public","download":true,"add":true,"comments":"anybody"},"pictures":{"uri":"/videos/117102891/pictures/503683214","active":true,"sizes":[{"width":100,"height":75,"link":"https://i.vimeocdn.com/video/503683214_100x75.jpg"},{"width":200,"height":150,"link":"https://i.vimeocdn.com/video/503683214_200x150.jpg"},{"width":295,"height":166,"link":"https://i.vimeocdn.com/video/503683214_295x166.jpg"},{"width":640,"height":360,"link":"https://i.vimeocdn.com/video/503683214_640x360.jpg"},{"width":960,"height":540,"link":"https://i.vimeocdn.com/video/503683214_960x540.jpg"},{"width":1280,"height":720,"link":"https://i.vimeocdn.com/video/503683214_1280x720.jpg"}]},"tags":[],"stats":{"plays":24},"metadata":{"connections":{"comments":{"uri":"/videos/117102891/comments","options":["GET","POST"],"total":0},"credits":{"uri":"/videos/117102891/credits","options":["GET","POST"],"total":1},"likes":{"uri":"/videos/117102891/likes","options":["GET"],"total":0},"pictures":{"uri":"/videos/117102891/pictures","options":["GET","POST"],"total":1},"texttracks":{"uri":"/videos/117102891/texttracks","options":["GET","POST"],"total":0}},"interactions":{"watchlater":{"added":false,"added_time":null,"uri":"/users/33772623/watchlater/117102891"}}},"user":{"uri":"/users/33772623","name":"Raw
483
+ Funk Maharishi","link":"https://vimeo.com/rawfunkmaharishi","location":null,"bio":null,"created_time":"2014-10-27T12:06:25+00:00","account":"basic","pictures":{"uri":"/users/33772623/pictures/8588995","active":true,"sizes":[{"width":30,"height":30,"link":"https://i.vimeocdn.com/portrait/8588995_30x30.jpg"},{"width":75,"height":75,"link":"https://i.vimeocdn.com/portrait/8588995_75x75.jpg"},{"width":100,"height":100,"link":"https://i.vimeocdn.com/portrait/8588995_100x100.jpg"},{"width":300,"height":300,"link":"https://i.vimeocdn.com/portrait/8588995_300x300.jpg"}]},"websites":[{"name":"http://rawfunkmaharishi.uk/","link":"http://rawfunkmaharishi.uk/","description":null}],"metadata":{"connections":{"activities":{"uri":"/users/33772623/activities","options":["GET"]},"albums":{"uri":"/users/33772623/albums","options":["GET"],"total":1},"channels":{"uri":"/users/33772623/channels","options":["GET"],"total":0},"feed":{"uri":"/users/33772623/feed","options":["GET"]},"followers":{"uri":"/users/33772623/followers","options":["GET"],"total":0},"following":{"uri":"/users/33772623/following","options":["GET"],"total":0},"groups":{"uri":"/users/33772623/groups","options":["GET"],"total":0},"likes":{"uri":"/users/33772623/likes","options":["GET"],"total":0},"portfolios":{"uri":"/users/33772623/portfolios","options":["GET"],"total":0},"videos":{"uri":"/users/33772623/videos","options":["GET"],"total":4},"watchlater":{"uri":"/users/33772623/watchlater","options":["GET"],"total":0},"shared":{"uri":"/users/33772623/shared/videos","options":["GET"],"total":0},"pictures":{"uri":"/users/33772623/pictures","options":["GET","POST"],"total":1}}},"content_filter":["language","drugs","violence","nudity","safe","unrated"]},"embed":{"uri":null,"buttons":{"like":true,"watchlater":true,"share":true,"embed":true,"hd":false,"fullscreen":true,"scaling":true},"logos":{"vimeo":true,"custom":{"active":false,"link":null,"sticky":false}},"title":{"name":"user","owner":"user","portrait":"user"},"playbar":true,"volume":true,"color":"00adef"},"app":null,"status":"available","embed_presets":null}'
484
+ http_version:
485
+ recorded_at: Tue, 31 Mar 2015 20:18:29 GMT
486
+ - request:
487
+ method: get
488
+ uri: https://api.vimeo.com/videos/110132671
489
+ body:
490
+ encoding: US-ASCII
491
+ string: ''
492
+ headers:
493
+ Authorization:
494
+ - bearer <VIMEO_BEARER_TOKEN>
495
+ Accept:
496
+ - application/json
497
+ response:
498
+ status:
499
+ code: 200
500
+ message: OK
501
+ headers:
502
+ Date:
503
+ - Tue, 31 Mar 2015 20:18:29 GMT
504
+ Server:
505
+ - nginx
506
+ Content-Type:
507
+ - application/vnd.vimeo.video+json
508
+ Cache-Control:
509
+ - no-cache, max-age=315360000
510
+ Expires:
511
+ - Fri, 28 Mar 2025 20:18:29 GMT
512
+ Content-Length:
513
+ - '3659'
514
+ Accept-Ranges:
515
+ - bytes
516
+ Via:
517
+ - 1.1 varnish
518
+ Age:
519
+ - '0'
520
+ X-Served-By:
521
+ - cache-lcy1123-LCY
522
+ X-Cache:
523
+ - MISS
524
+ X-Cache-Hits:
525
+ - '0'
526
+ X-Timer:
527
+ - S1427833109.387655,VS0,VE193
528
+ Vary:
529
+ - Accept,Vimeo-Client-Id,Accept-Encoding
530
+ body:
531
+ encoding: UTF-8
532
+ string: '{"uri":"/videos/110132671","name":"Discotheque Metamorphosis","description":null,"link":"https://vimeo.com/rawfunkmaharishi/discotheque-metamorphosis","duration":218,"width":640,"language":null,"height":360,"created_time":"2014-10-27T12:10:13+00:00","modified_time":"2015-03-23T22:08:53+00:00","content_rating":["unrated"],"license":"by-nc-sa","privacy":{"view":"anybody","embed":"public","download":true,"add":true,"comments":"anybody"},"pictures":{"uri":"/videos/110132671/pictures/494269097","active":true,"sizes":[{"width":100,"height":75,"link":"https://i.vimeocdn.com/video/494269097_100x75.jpg"},{"width":200,"height":150,"link":"https://i.vimeocdn.com/video/494269097_200x150.jpg"},{"width":295,"height":166,"link":"https://i.vimeocdn.com/video/494269097_295x166.jpg"},{"width":640,"height":360,"link":"https://i.vimeocdn.com/video/494269097_640x360.jpg"},{"width":960,"height":540,"link":"https://i.vimeocdn.com/video/494269097_960x540.jpg"}]},"tags":[],"stats":{"plays":9},"metadata":{"connections":{"comments":{"uri":"/videos/110132671/comments","options":["GET","POST"],"total":0},"credits":{"uri":"/videos/110132671/credits","options":["GET","POST"],"total":1},"likes":{"uri":"/videos/110132671/likes","options":["GET"],"total":0},"pictures":{"uri":"/videos/110132671/pictures","options":["GET","POST"],"total":1},"texttracks":{"uri":"/videos/110132671/texttracks","options":["GET","POST"],"total":0}},"interactions":{"watchlater":{"added":false,"added_time":null,"uri":"/users/33772623/watchlater/110132671"}}},"user":{"uri":"/users/33772623","name":"Raw
533
+ Funk Maharishi","link":"https://vimeo.com/rawfunkmaharishi","location":null,"bio":null,"created_time":"2014-10-27T12:06:25+00:00","account":"basic","pictures":{"uri":"/users/33772623/pictures/8588995","active":true,"sizes":[{"width":30,"height":30,"link":"https://i.vimeocdn.com/portrait/8588995_30x30.jpg"},{"width":75,"height":75,"link":"https://i.vimeocdn.com/portrait/8588995_75x75.jpg"},{"width":100,"height":100,"link":"https://i.vimeocdn.com/portrait/8588995_100x100.jpg"},{"width":300,"height":300,"link":"https://i.vimeocdn.com/portrait/8588995_300x300.jpg"}]},"websites":[{"name":"http://rawfunkmaharishi.uk/","link":"http://rawfunkmaharishi.uk/","description":null}],"metadata":{"connections":{"activities":{"uri":"/users/33772623/activities","options":["GET"]},"albums":{"uri":"/users/33772623/albums","options":["GET"],"total":1},"channels":{"uri":"/users/33772623/channels","options":["GET"],"total":0},"feed":{"uri":"/users/33772623/feed","options":["GET"]},"followers":{"uri":"/users/33772623/followers","options":["GET"],"total":0},"following":{"uri":"/users/33772623/following","options":["GET"],"total":0},"groups":{"uri":"/users/33772623/groups","options":["GET"],"total":0},"likes":{"uri":"/users/33772623/likes","options":["GET"],"total":0},"portfolios":{"uri":"/users/33772623/portfolios","options":["GET"],"total":0},"videos":{"uri":"/users/33772623/videos","options":["GET"],"total":4},"watchlater":{"uri":"/users/33772623/watchlater","options":["GET"],"total":0},"shared":{"uri":"/users/33772623/shared/videos","options":["GET"],"total":0},"pictures":{"uri":"/users/33772623/pictures","options":["GET","POST"],"total":1}}},"content_filter":["language","drugs","violence","nudity","safe","unrated"]},"embed":{"uri":null,"buttons":{"like":true,"watchlater":true,"share":true,"embed":true,"hd":false,"fullscreen":true,"scaling":true},"logos":{"vimeo":true,"custom":{"active":false,"link":null,"sticky":false}},"title":{"name":"user","owner":"user","portrait":"user"},"playbar":true,"volume":true,"color":"00adef"},"app":null,"status":"available","embed_presets":null}'
534
+ http_version:
535
+ recorded_at: Tue, 31 Mar 2015 20:18:29 GMT
536
+ recorded_with: VCR 2.9.3