Created
February 26, 2016 06:28
-
-
Save ScorpiusZ/da2e27ac838e0711f594 to your computer and use it in GitHub Desktop.
upload video from youku to qiniu
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
require 'qiniu' | |
require 'csv' | |
SOURCE_FILENAME = 'topics_data.csv' | |
TARGET_FILENAME = 'uploaded_data.csv' | |
REMOTE_PREFIX = 'video/topic' | |
`mkdir -p video` | |
#qiniu init | |
Qiniu.establish_connection! :access_key => 'access_key', | |
:secret_key => 'secret_key' | |
def get_video_format url | |
result = `you-get -i #{url}` | |
formats = result.scan(/format: *(\w+)/).flatten | |
containers = result.scan(/container: *(\w+)/).flatten | |
formats.include?('mp4') ? ['mp4','mp4'] : formats.zip(containers).first | |
end | |
def download_and_upload_youku topic_id,index,youku_url | |
format,container = get_video_format youku_url | |
file_name = "#{topic_id}_#{index}.#{container}" | |
cmd = "you-get -o video -O #{file_name} --format=#{format} #{youku_url}" | |
p cmd | |
system(cmd) | |
put_policy = Qiniu::Auth::PutPolicy.new( | |
'gpk-videos', # 存储空间 | |
"#{REMOTE_PREFIX}/#{file_name}", # 最终资源名,可省略,即缺省为“创建”语义 | |
) | |
code, result, response_headers = Qiniu::Storage.upload_with_put_policy( | |
put_policy, # 上传策略 | |
"video/#{file_name}", # 本地文件名 | |
) | |
return code,"https://o2zv1sx7h.qnssl.com/#{REMOTE_PREFIX}/#{file_name}" | |
end | |
CSV.open(TARGET_FILENAME,'w') do |uploaded| | |
CSV.foreach(SOURCE_FILENAME) do |data| | |
topic_id, index, youku_url = data | |
code,remote_url = download_and_upload_youku(topic_id,index,youku_url) | |
p "topic : #{topic_id}, code : #{code}, remote_url : #{remote_url}" | |
uploaded << [topic_id,youku_url,remote_url] if code == 200 | |
end | |
end | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment