Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

arrivals-osx

Package Overview
Dependencies
Maintainers
1
Versions
71
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

arrivals-osx

Watch a folder for audio and video arrivals and convert them to Apple-friendly formats.

  • 1.8.6
  • Source
  • npm
  • Socket score

Version published
Maintainers
1
Created
Source

Arrivals (OSX)

npm release

Arrivals will watch a directory and convert or copy a variety of incoming audio or video files for you then place them somewhere you choose. This only works with OSX and the primary use-case is incoming torrents in flac or mkv formats that you'd like to play nice in an Apple ecosystem.

Requires node.js 4.0.0 or greater!

Features

  • Watch many directories
  • Register as launchdaemon
  • Converts 'flac', 'mp3', 'mp4', 'm4a', 'm4v', 'mkv', 'mov' that are well-formed into ALAC/M4A, or M4V (with video passthrough, AAC safety track, original audio, and subtitles)
  • Easy usage
  • Status visibility through Finder tagging of source files

Installaion

npm install arrivals-osx -g

Use

Simplest:

$ cd ~/Downloads
$ arrivals --watch=incoming --destination=converted

More complex (watch multiple dirs as comma-delimited list, custom log level):

$ cd ~/Downloads
$ arrivals --watch="/Volumes/foo/Incoming Movies",/Volumes/bar/incoming-music --audio-destination=converted-audio --video-destination=converted-video --log-level=debug

Install as a system daemon and control

$ cd ~/Downloads
$ arrivals install --watch=incoming --destination=converted
$ arrivals restart|stop|uninstall

Reset the existing files database, tmp files and log

$ arrivals reset

Dependencies

There are a number of system dependencies. For audio, only FFmpeg is required. For video I suggest using my fork of mkvtomp4 via homebrew. It will install all the dependencies you need.

$ brew tap mshick/personal
$ brew install mshick/personal/mkvtomp4

The paths for these need to be defined absolutely, so if you don't use a standard homebrew installation path, or you use different versions of these you may need to pass additional command-line options, e.g.:

$ arrivals --watch=incoming --destination=converted --ffmpeg=/usr/local/bin/ffmpeg --mkvextract=/usr/local/bin/mkvextract

Required system libraries

  • node.js >= 4.0.0
  • ffmpeg (with libfdk_aac)
  • mkvextract (mkvtoolnix)
  • mp4box (gpac)
  • mkvinfo (mkvtoolnix)
  • mkvtomp4

Full command list

$ arrivals [command] [--flag=val]

(All are optional, run is the default)

CommandDescription
runDefault value, simply runs the process.
installInstall as a system daemon
restartRestarts an installed system daemon
stopStops an installed system daemon
uninstallUninstalls an installed system daemon.
resetReset the existing files database, tmp dir and log file. Obeys custom paths for all of those.
FlagPossible ValuesRequiredDescription
watchValid, existing directory pathnoPass a relative (resolved relative to cwd) or absolute path. Accepts a comma-delimited list of multiple watch paths
destinationValid, existing directory pathyes*Pass a relative or absolute path
video-destinationValid, existing directory pathyes*(or a single destination above)
audio-destinationValid, existing directory pathyes*(or a single destination above)
tmpValid, existing directory pathnoPath to store temp conversion files. Defaults to ~/.arrivals/tmp
dbValid, existing directory pathnoPath to store existing files db. Defaults to ~/.arrivals/db
log-levelinfo, debug, errornoLogging level
log-typefile, consolenoHow to log. Daemon defaults to console, which gets written in your Library/Logs folder. Command-line invocation default to a file in the ~/.arrivals directory
ffmpegpath to ffmpeg binnoDefaults to /usr/local/bin/ffmpeg
mkvextractpath to mkvextract binnoDefaults to /usr/local/bin/mkvextract
mkvinfopath to mkvinfo binnoDefaults to /usr/local/bin/mkvinfo
mp4boxpath to mp4box binnoDefaults to /usr/local/bin/mp4box
mkvtomp4path to mkvtomp4 binnoDefaults to /usr/local/bin/mkvtomp4
run-as-roottruenoinstall the daemon as root, rather than current user
cwdValid pathnoSets the cwd for all path resolution

How it works

  1. Launches watcher for a directory
  2. Builds existing paths database
  3. When events occur, evaluate against criterion
    • is correct event
    • is proper extension
    • is not in existing paths db
  4. Push to work queue
  5. Add a Yellow "pending" tag for Finder
  6. Do work, either mkvtomp4 or ffmpeg
  7. Add a Green tag for "finished" or a Red tag for "error" in Finder

TODO

  • rewrite to not require mkvtomp4 (big job) and maybe use ffprobe

Keywords

FAQs

Package last updated on 21 Nov 2017

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc