ame-watcher
REST API to retrieve Adobe Media Encoder's status
APIs
Method | Path | Description | Request Params | Query Strings | Response JSON Format |
---|
GET | /api/queue | Returns the number of files in watch-folder | - | - | {num: number of files } |
GET | /api/logs/:num | Returns the last {num } log entries in reverse chronological order | num must be an integer between 1 to 128 | - | [{state: "started"/"stopped"/"paused"/"resumed"/"success"/"failed" , date: datetime of the log entry }] |
GET | /api/encode/:file-name | Moves one file in master-folder to watch-folder | file-name cannot contain '/' | copy : Set true if you want to copy the master file rather than move (default=false ) | - |
GET | /api/rename | Rename the output files based on the renameRules defined in the config file and move the files to the outputFolder if defined | - | - | - |
- watch-folder must be registered as AME's watch folder
- master-folder must be on the same file system with watch-folder
Install
- Install Node.js
- Clone source code and install dependencies
$ git clone git@github.com:kuu/ame-watcher.git
$ cd ame-watcher
$ npm install
Configure
- Put config file(s) in your work directory.
$ mkdir config
$ vi config/default.json
{
"path": {
"masterFolder": "/path/to/master-folder",
"watchFolder": "/path/to/watch-folder",
"logFile": "/path/to/log-file",
"outputFolder": "/path/to/output-folder"
},
"log": {
"lang": "ja"
},
"renameRules": [
"${filename}_1.${extension}",
"${filename}_2.${extension}",
"${filename}_3.${extension}"
]
}
- Supported log file languages are "en" and "ja" (default = "en")
- You can rename the output
Run
- Start the server with specifying port number (the default port is 3000)
$ PORT={port number} npm start
- Now you can access the APIs
$ curl http://localhost:3000/api/queue
{"num":0}
$ curl http://localhost:3000/api/logs/3
[
{"state": "success", date: "2017-09-06T08:24:05.000Z"},
{"state": "started", date: "2017-09-06T08:23:43.000Z"},
{"state": "failed", date: "2017-09-06T08:22:30.000Z"}
]
$ curl http://localhost:3000/api/encode/ame%20test.mp4
- Timezone is UTC
- Use DEBUG environ variable for detail logs
$ DEBUG=ame-watcher npm start
Stop
- Stop the server (not AME) by the following command in the same directory you did
npm start
$ npm stop