iTunes::Store::Transporter
<img src=“https://secure.travis-ci.org/sshaw/itunes_store_transporter.png”/> <img src=“https://codeclimate.com/badge.png”/>
Upload and manage your assets in the iTunes Store using the iTunes Store’s Transporter (iTMSTransporter
).
Overview
require "itunes/store/transporter"
itms = iTunes::Store::Transporter.new(:username => "CouchCaster",
:shortname => "bigtimer",
:password => "w3c@llYoU!")
itms.upload("/path/to/yourpackage.itmsp")
= itms.lookup(:apple_id => "yourpackage")
begin
itms.verify("/path/to/package2.itmsp", :verify_asssets => false)
rescue iTunes::Store::Transporter::ExecutionError => e
puts "Exited with #{e.exitstatus}"
e.errors.each do |error|
puts "#{error.} - #{error.code}"
puts "Basically, you have some faulty metadata" if error.missing_data?
end
end
Description
iTunes::Store::Transporter is a wrapper around Apple’s iTMSTransporter
program. It currently supports the following operations:
-
Upload packages
-
Validate packages
-
Retrieve status information
-
Lookup package metadata
-
List providers
-
Retrieve iTunes metadata schemas
It also includes itms
, an executable that’s sorta like using iTMSTransporter
directly except that it can send email notifications and allows one to set global/per-command defaults via $HOME/.itms
.
Requirements
-
Optout v0.0.2 (
gem install optout
) -
iTunes Store Transporter (www.apple.com/itunes/sellcontent)
Running on Windows
On Windows iTMSTransporter
is called via the iTMSTransporter.CMD
batch file. This file does not handle the iTMSTransporter
‘s exit status correctly, causing iTunes::Store::Transporter
to report everything as a success.
This can be fixed by modifying iTMSTransporter.CMD
(note that the following does not mimic the batch file exactly):
...
call iTMSTransporter\iTMSTransporter %*
REM Add this line:
set exited=%errorlevel%
cd %olddir%
REM Add this line too:
exit /b %exited%
Using itms
itms COMMAND [OPTIONS]
-
COMMAND
- The command (iTunes::Store::Transporter
method) to run -
OPTIONS
- These are quivalent to the givenCOMMAND
‘s options except they must be given in long option format. For example:apple_id => "X123"
would be--apple-id=X123
. Boolean options can be negated with the--no-
prefix.
Config file
Default options and email notifications can be placed in a YAML file at $HOME/.itms
. To skip loading the config file use the --no-config
option.
# Global command defaults
path: /usr/bin
username: sshaw
password: Pa55W0rd!
# Global email defaults
email:
to: [email protected]
from: [email protected]
host: smtp.example.com
# Verify command
verify:
shortname: lUzer
# Upload command
upload:
shortname: enc0d3rz
transport: Aspera
rate: 750000
# Email notifications for the upload command
email:
success:
cc: [email protected]
subject: iTunes Upload <%= @apple_id %>
message: |
<%= @username %> uploaded it using <%= @transport %>
Bye!
failure:
to: [email protected]
subject: Upload Failed!
message: |
Here's the problem:
<%= @error %>
Fix it!
As you can see, command options are turned into template variables.
More Info
-
Docs: ruby-doc.org/gems/docs/i/itunes_store_transporter-0.0.2/README_rdoc.html
-
Source Code: github.com/sshaw/itunes_store_transporter
-
Web Based GUI: github.com/sshaw/itunes_store_transporter_web
Author
Skye Shaw [sshaw AT lucas.cis.temple.edu]
License
Released under the MIT License: www.opensource.org/licenses/MIT