From 032b461e84ff51ac4a2d5edf511fc393332c74b9 Mon Sep 17 00:00:00 2001 From: Benjamin Bryan Date: Fri, 2 Dec 2016 20:40:30 -0800 Subject: [PATCH] Python requirements (#17) Python Requirements Changelog Readme Change GET_VIDEO_TITLE to true in config sample --- CHANGELOG | 0 CHANGELOG.md | 35 ++++++++++++++++++++++++ README.md | 71 ++++++++++++++++++++++++++++++++++++++++++++++-- config.sample | 2 +- requirements.txt | 5 ++++ 5 files changed, 110 insertions(+), 3 deletions(-) delete mode 100644 CHANGELOG create mode 100644 CHANGELOG.md create mode 100644 requirements.txt diff --git a/CHANGELOG b/CHANGELOG deleted file mode 100644 index e69de29..0000000 diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..ae32f06 --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,35 @@ +# Changelog + +## 1.3.0 + - Get Title for DVD and Blu-Rays so that media servesr can identify them easily. + - Determine if video is Movie or TV-Show from OMDB API query so that different actions can be taken (TV shows usually require manual episode identification) + - Option for MakeMKV to rip using backup method. + - Option to rip only main feature if so desired. + +## v1.2.0 +- Distinguish UDF data from UDF video discs + +## v1.1.1 + +- Added devname to abcde command +- Added logging stats (timers). "grep STAT" to see parse them out. + +## v1.1.0 + +- Added ability to rip from multiple drives at the same time +- Added a config file for parameters +- Changed logging + - Log name is based on ID_FS_LABEL (dvd name) variable set by udev in order to isolate logging from multiple process running simultaneously + - Log file name and path set in config file + - Log file cleanup based on parameter set in config file +- Added phone notification options for Pushbullet and IFTTT +- Remove MakeMKV destination directory after HandBrake finishes transcoding +- Misc stuff + +## v1.0.1 + +- Fix ripping "Audio CDs" in ISO9660 format like LOTR. + +## v1.0.0 + +- Initial Release \ No newline at end of file diff --git a/README.md b/README.md index 4737ac4..df091ee 100644 --- a/README.md +++ b/README.md @@ -1,8 +1,75 @@ -Automatic Ripping Machine (ARM) +# Automatic Ripping Machine (ARM) [![Build Status](https://travis-ci.org/ahnooie/automatic-ripping-machine.svg?branch=master)](https://travis-ci.org/ahnooie/automatic-ripping-machine) -For more details and install instructions see: https://b3n.org/automatic-ripping-machine +## 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 Windows Media MetaServices 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 (can rip all features or main feature) + - Eject disc and queue up Handbrake transcoding when done + - Transcoding jobs are asynchronusly batched from ripping + - Send notification when done via IFTTT or Pushbullet + - If audio (CD) - rip using abcde + - 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 + + +## Requirements + +- Ubuntu Server 16.04 (should work with other Linux distros) +- One or more optical drives to rip Blu-Rays, DVDs, and CDs +- Lots of drive space (I suggest using a NAS like FreeNAS) to store your movies + +## Install + + sudo su + add-apt-repository ppa:heyarje/makemkv-beta + add-apt-repository ppa:stebbins/handbrake-releases + add-apt-repository ppa:mc3man/xerus-media + apt update + apt install makemkv-bin makemkv-oss + apt install handbrake-cli libavcodec-extra + apt install abcde flac imagemagick glyrc cdparanoia + apt install at + apt install python3 python3-pip + cd /opt + git clone https://github.com/ahnooie/automatic-ripping-machine.git arm + cd arm + pip3 install -r requirements.txt + ln -s /opt/arm/51-automedia.rules /lib/udev/rules.d/ + ln -s /opt/arm/.abcde.conf /root/ + cp config.sample config + +Edit your "config" file to determine what options you'd like to use. + +Optionally if you want something more stable than master you can download the latest release from the releases page. + +## Usage + +- Insert disc +- Wait for disc to eject +- Repeat + +## Troubleshooting + +Check /opt/arm/log to see if you can find where the script failed. If you need any help feel free to open an issue. + +## Contributing + +Pull requests are welcome + +## License + +[MIT License](LICENSE) diff --git a/config.sample b/config.sample index 6e066e4..4e099ab 100644 --- a/config.sample +++ b/config.sample @@ -9,7 +9,7 @@ ARM_CHECK_UDF=true # When enabled if the disc is a DVD use dvdid to calculate a crc64 and query Windows Media Meta Services for the Movie Title. # For BluRays attempts to extract the title from an XML file on the disc -GET_VIDEO_TITLE=false +GET_VIDEO_TITLE=true ##################### ## Directory setup ## diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000..baeddba --- /dev/null +++ b/requirements.txt @@ -0,0 +1,5 @@ +pycurl>=7.43.0 +pydvdid>=1.0 +requests>=2.9.1 +urllib3>=1.13.1 +xmltodict>=0.10.2