Skip to content

Instantly share code, notes, and snippets.

@miyagawa
Created December 1, 2014 20:53
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save miyagawa/d2708de566afd53cdda9 to your computer and use it in GitHub Desktop.
Save miyagawa/d2708de566afd53cdda9 to your computer and use it in GitHub Desktop.
desc "upload to SoundCloud"
task :scupload do
require 'soundcloud'
ep = ENV['EP'] or raise 'EP is required'
token = ENV['SOUNDCLOUD_TOKEN'] or raise 'SOUNDCLOUD_TOKEN is required'
media = "_media/podcast-ep#{ep}.mp3"
client = SoundCloud.new(access_token: token)
puts "Uploading #{media} to SoundCloud"
# use cURL so that I can see the progress
output = "soundcloud-#{ep}.out"
system "curl",
"--progress-bar",
"-H", "Accept: application/json",
"-o", output,
"-X", "POST",
"-F", "oauth_token=#{token}",
"-F", "track[title]=#{MarkdownPost.new(ep).title}",
"-F", "track[asset_data]=@#{media}",
"https://api.soundcloud.com/tracks"
track = JSON.load(File.read(output))
puts "Episode uploaded to #{track['permalink_url']}"
File.delete(output)
metadata = {
artwork_data: File.new('images/icon1400.jpg'),
commentable: false, # does not seem to work though :/
sharing: "public",
tag_list: "podcast",
}
client.put(track['uri'], track: metadata)
system "open", track['permalink_url']
puts "---> Edit the comments/stats setting on the browser!"
permalink = "#{track['id']}-#{track['user']['permalink']}-#{track['permalink']}"
enclosure_url = "http://feeds.soundcloud.com/stream/#{permalink}.mp3"
puts "Enclosure URL: #{enclosure_url}"
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment