New method of getting vs and site_id (now with less html regexing)
Old way broke due to their react rewrite
This commit is contained in:
parent
bed0a8e84f
commit
66a657baa2
17
vsco-dl.rb
17
vsco-dl.rb
|
@ -2,6 +2,7 @@ require 'json'
|
|||
require 'open-uri'
|
||||
require 'fileutils'
|
||||
require 'optparse'
|
||||
require 'securerandom'
|
||||
|
||||
options = {}
|
||||
parser = OptionParser.new do |opts|
|
||||
|
@ -30,10 +31,16 @@ end
|
|||
|
||||
print "Loading initial data"
|
||||
|
||||
# this is v gross, but they probably do it like this on purpose
|
||||
initial = open "https://vsco.co/#{user}/images/1"
|
||||
vs = /vs=(\S*);/.match(initial.meta['set-cookie']).captures[0]
|
||||
site_id = JSON.parse(/window.VSCOVARS.SiteSettings = ({.*})/.match(initial.read).captures[0])['id']
|
||||
# this endpoint requires the referer for some reason
|
||||
initial = open "https://vsco.co/content/Static/userinfo",
|
||||
'Cookie' => "vs_anonymous_id=#{SecureRandom.uuid}",
|
||||
'Referer' => "https://vsco.co/#{user}/images/1"
|
||||
# the ol' jsonp for same origin requests because why not
|
||||
vs = JSON.parse(initial.read[/{.+}/])['tkn']
|
||||
|
||||
sites = JSON.load open "https://vsco.co/ajxp/#{vs}/2.0/sites?subdomain=#{user}", 'Cookie' => "vs=#{vs}"
|
||||
# the ol' return an array when you only queried for one thing
|
||||
site_id = sites['sites'][0]['id']
|
||||
|
||||
# vsco seems to timeout on requests for very large amounts of images
|
||||
# it also doesn't send the actual total amount of images in requests
|
||||
|
@ -43,7 +50,7 @@ page = 1
|
|||
size = 1000
|
||||
images = []
|
||||
loop do
|
||||
response = JSON.load open "https://vsco.co/ajxp/#{vs}/2.0/medias?site_id=#{site_id}&page=#{page}&size=#{size}", 'Cookie' => "vs=#{vs};"
|
||||
response = JSON.load open "https://vsco.co/ajxp/#{vs}/2.0/medias?site_id=#{site_id}&page=#{page}&size=#{size}", 'Cookie' => "vs=#{vs}"
|
||||
images.concat response['media']
|
||||
break if response['total'] <= page * size
|
||||
page += 1
|
||||
|
|
Loading…
Reference in New Issue