Remote MakeMKV

= CHECK OUT THE NEW VERSION W/ WEB UI – [[https://blog.laslabs.com/projects/remote-makemkv]] =

————-

//**Provides a GUI usable for a headless server with multiple drives. Can sling through a SOCKS proxy**//
[[[TOC]]]
——
**Requires [[http://www.makemkv.com/|MakeMKV]], [[http://qt-project.org/downloads|QT 4]], `mkisofs` (For ISO functionality), `Python 2.7` (have not tested other versions), `PyQt4` (on client), `socksipy-branch` (on server and client)**
——
=Downloads=
* [[https://remote-makemkv.googlecode.com/files/remote_makemkv_0.61.1.zip|0.61.1 Release]]
{{{
This release resolves KeyError that was brought about by the MakeMKV 1.8.3 update – https://dlasley.net/trac/projects/ticket/27
0.61 Release implements server side caching in a less buggy way
}}}
* [[https://remote-makemkv.googlecode.com/files/remote_makemkv_0.53.1.zip|0.53.1 Release (No Server Side Caching)]]
{{{
0.53 Release – Upgraded GUI, bugfixes, and new socket model. New package structure, offloaded settings. Overhauled efficiency. Added auto title selection. Hopefully now also Windows compatible.

0.53.1 – Bugfix https://dlasley.net/trac/projects/ticket/27
}}}
=Usage=
**Edit `remote_makemkv/settings.py`**
{|
! **Variable** !! **Description**
|-
| HOST || Server address
|-
| PORT || The port that everything runs on
|-
| PROXY_HOST || To forward through SOCKS Proxy
|-
| PROXY_PORT || SOCKS proxy port
|-
| OUT_PATH || Output directory on the server
|-
| DRIVE_NAME_MAPS || Name the disc drives. Key is drive location, value is name
|-
| OUTLIER_MODIFIER || If title size is below `disc_size_upper_quartile * OUTLIER_MODIFIER`, it will be red and unchecked
|}
**Default MakeMKV selection profile as defined in $MAKEMKVPATH/settings.conf will be used for track selections**

Server:
{{{
bash:~$ python server/remote_makemkv_server.py
}}}

Client (Has been tested from Windows 7 & 8):
{{{
cmd> python client/remote_makemkv_client.py
}}}

* On the client, click `Refresh Drives` to get information from disc drives (this would be equivalent to opening the makemkv gui to scan the drives, then one instance per drive for detailed disc information — runs `makemkvcon -r info`, then one thread per drive of `makemkvcon -r –noscan info dev:/dev/sr#` on server).
* Use the check boxes to select the track(s) to rip for each disc. Use the text area to rename the disc if necessary.
* Tracks are sorted by size
* Click `Rip` to rip the selected tracks from the associated disc, or the `Rip Selected` button to rip all selected tracks from all discs
* Click `To ISO` to decrypt the entire disc and save to an ISO image
* Once rip has completed, The status is output inline and the buttons become clickable again
———–
=Additional Features=
* Server side caching so that one client can pick up where another left off
* Automatic folder/file name normalization
* Semi-Auto Title Selection (If title size is 50% below the upper quartile of title sizes, it will be marked red and not checked)
* Can make full decrypted disc backups to ISO using `To ISO` button
* Safeguards to prevent multiple scans on the same drive at the same time
* Because I have multiple drives, I had the need to name them.. use the `DRIVE_NAME_MAPS` variable to change them – format is `’linux_drive_location’ : ‘name’`.
** Drives can be enumerated with `wodim –devices` or `sudo cat /var/log/dmesg | egrep ‘(CD|DVD|BD)’`
————
=Known Issues=
[[https://dlasley.net/trac/projects/query?status=awaiting_evidence&status=failed_testing&status=impossible&status=in_dev&status=new&status=passed_testing&status=pending_others&status=pending_push&status=reopened&status=reviewing&status=testing&component=%5ERemote-MakeMKV&group=owner&col=id&col=summary&col=status&col=type&col=priority&col=milestone&col=component&order=priority|Ticketing System]]

——–
=Screenshots=
[[image:remote-makemkv-0.5-client_side|center|large|link=source|caption]]
[[image:remote-makemkv-0.5-server_side|center|large|link=source|caption]]
————
=Mercurial Repo=
https://repo.dlasley.net/remote_makemkv/


Posted

in

by

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *