/automatic-ripping-machine

Automatic Ripping Machine (ARM) Scripts

Primary LanguagePythonMIT LicenseMIT

Automatic Ripping Machine (ARM)

CI Publish Docker Image Docker

GitHub forks GitHub stars GitHub issues GitHub pull requests GitHub contributors GitHub last commit

GitHub license

GitHub release (latest by date) GitHub release Date PyPI - Python Version

Wiki Discord

PyPI - Python Version

Overview

Insert an optical disc (Blu-ray, DVD, CD) and checks to see if it's audio, video (Movie or TV), or data, then rips it.

See: https://b3n.org/automatic-ripping-machine

Features

  • Detects insertion of disc using udev
  • Determines disc type...
    • If video (Blu-ray or DVD)
      • Retrieve title from disc or OMDb API to name the folder "Movie Title (Year)" so that Plex or Emby can pick it up
      • Determine if video is Movie or TV using OMDb API
      • Rip using MakeMKV or HandBrake (can rip all features or main feature)
      • Eject disc and queue up Handbrake transcoding when done
      • Transcoding jobs are asynchronously batched from ripping
      • Send notifications via IFTTT, Pushbullet, Slack, Discord, and many more!
    • If audio (CD) - rip using abcde (get disc-data and album art from musicbrainz)
    • If data (Blu-ray, DVD, or CD) - make an ISO backup
  • Headless, designed to be run from a server
  • Can rip from multiple-optical drives in parallel
  • Python Flask UI to interact with ripping jobs, view logs, update jobs, etc

Usage

  • Insert disc
  • Wait for disc to eject
  • Repeat

Requirements

  • A system capable of running Docker containers
  • One or more optical drives to rip Blu-rays, DVDs, and CDs
  • Lots of drive space (I suggest using a NAS) to store your movies

Install

For normal installation please see the wiki.

For docker installation please see here.

Troubleshooting

Please see the wiki for troubleshooting.

Contributing

Pull requests are welcome. Please see the Contributing Guide

If you set ARM up in a different environment (hardware/OS/virtual/etc.), please consider submitting a howto to the wiki.

License

MIT License