jasonmillward / autorippr Goto Github PK
View Code? Open in Web Editor NEWRip discs automatically using a blend of Python, MakeMKV and HandBrake
License: MIT License
Rip discs automatically using a blend of Python, MakeMKV and HandBrake
License: MIT License
Opening a new issue and closing #13 because I won't be using imdbpy or TMDB.
FileBot can do the following
So it will be replacing imdbpy as the default movie/tv database.
When attempting to clone the latest repo, following the docs, received the following error:
git clone [email protected]:JasonMillward/Autorippr.git
Cloning into 'Autorippr'...
Warning: Permanently added the RSA host key for IP address '192.30.252.129' to the list of known hosts.
Permission denied (publickey).
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
$ python compress.py
Encoding and compressing The Village.mkv
Traceback (most recent call last):
File "compress.py", line 79, in <module>
compress()
File "compress.py", line 63, in compress
if hb_api.convert(args=hb_cli, nice=hb_nice, output=hb_out):
File "/home/data/scripts/autorip/src/handbrake/handbrake.py", line 135, in convert
(nice, inMovie, outMovie, args, output))
TypeError: %d format: a number is required, not str
Firstly thanks for this script, works really well on another computer I have it on. Tried it on my laptop and seem to have a problem. After ripping I get the message "It took 16 minutes to complete the ripping of...." But then when I try to run the compress script it aborts with an error and I discover the folder where the mkv file was being created is now empty. Strange. I delete the now empty folder but when trying to empty the trash it says that the specified location is not mounted? BIt of a noob so don't really understand whats going on here! (v1.4 of script)
On the computer which is having problems I used the install script (very slightly changed to include checkinstall for installing makemkv) and on the computer where it works I already had makemkv and handbrake installed so didn't really have to do anything apart from rename settings.blank.cfg.
Any help appreciated
doing a "--rip --compress --debug", the process is still running. Started the compression at 22:31 and at 23:48 it is still running. Seemed to be taking a while. I tried running vlc against the compressed version of the file. It seems fine and the credits to the movie are there.
Had same problem with "--all". The movie is star trek into darkness
Test v1.2 before tagging release.
This is a clean, new install of a headless Ubuntu 14.04 instance with the --test running successfully. I am using makeMKV version 1.9.1 and I am getting the following error from the debug output:
2015-02-19 14:36:26 - Rip - DEBUG - Ripping initialised
2015-02-19 14:36:26 - Rip - DEBUG - Checking for DVDs
2015-02-19 14:36:30 - Rip - DEBUG - 1 DVDs found
2015-02-19 14:36:46 - Makemkv - DEBUG - MakeMKV found 1 titles
Traceback (most recent call last):
File "autorippr.py", line 317, in <module>
rip(config)
File "autorippr.py", line 155, in rip
database.update_movie(dbMovie, 3, mkv_api.get_savefile())
File "/home/chris/Autorippr/classes/makemkv.py", line 298, in get_savefile
return self.saveFile
AttributeError: 'makeMKV' object has no attribute 'saveFile'
MakeMKVcon seems to run fine when I do makemkvcon info disk:0
but I don't know enough to provide anymore with out guidance.
Let me know if you need something else to help track this down further.
Before release go though and tidy up all code, including classes.
The rip.py works fine, but when the the compress.py is executed I get the following error.
root@Guttenberg:/tmp/makeMkvAuto/makeMKV-Autoripper# python src/compress.py
Encoding and compressing Fellowship Of The Ring Ext Pt1.mkv
Could not read output file, no cleanup will be done
HandBrake did not complete successfully
root@Guttenberg:/tmp/makeMkvAuto/makeMKV-Autoripper# python src/compress.py
Queue does not exist or is empty
I have modified the default save_path, handbrake, and temp_output to point to mount points with more space. The save_path and temp_output paths gets populated.
Can you help?
This is a feature request if anything. be nice to update the rip.py to
support TV Shows. where the output is X number of files based on
how many episodes are on the disc
I'm new to the world of ripping my BD collection to my nas, so thanks for a really helpful tool! After my first rip (The Aviator), I noticed that the audio was saved as 2 channel mp3, instead of the dolby digital 5.1 that exists on the blu ray.
Did I do something wrong or is it not possible to retain the bd audio in the rips?
Config is stock from the example.
On OS X 10.8 with Python 2.7.2
$ python ./src/rip.py
Traceback (most recent call last):
File "./src/rip.py", line 59, in
if (MKVapi.findDisc(MKV_TEMP_OUTPUT)):
File "/Users/hal/code/makeMKV-Autoripper/src/makemkv/makemkv.py", line 165, in findDisc
if len(self.discIndex) is 0 or len(self.movieName) < 4:
TypeError: object of type 'int' has no len()
Just got the new code up and running, btw when's 1.6 coming out?
Anyways, after the rip.py the compress.py is returning:
HandBrake did not complete successfully
Running HB .9.9
Any Ideas?
Ripping the following blurays (so far) lay back pixelated. Is it possible that we need a diffent compression scheme.
Star Trek
Star Trek Into Darkness
Tropic Thunder
Will rerun without compress and verify the initial file is ok
I am running into an error that prevents Autorippr from compressing the video. The error mentioned in the debug logs doesn't appear to be fatal and it doesn't happen until the video has been completely ripped. There is an mkv file in the tmp directory that plays fine all the way through with VLC. I tried using MakeMKV separately and it handled the dvd perfectly fine. Any advice on how to 1) prevent the error or 2) allow Autorippr past the error so it can compress the video?
ยฑ python autorippr.py --all --debug
2014-10-25 14:46:06 - Rip - DEBUG - Ripping initialised
2014-10-25 14:46:06 - Rip - DEBUG - Checking for DVDs
2014-10-25 14:46:09 - Rip - DEBUG - 1 DVDs found
2014-10-25 14:46:21 - Makemkv - DEBUG - MakeMKV found 1 titles
2014-10-25 14:46:21 - Makemkv - DEBUG - Title number: 0
2014-10-25 14:46:21 - Makemkv - DEBUG - ['Test']
2014-10-25 15:35:10 - Makemkv - ERROR - Profile parsing error: default profile missing, using builtin default
2014-10-25 15:35:10 - Rip - INFO - MakeMKV did not did not complete successfully
2014-10-25 15:35:10 - Rip - INFO - See log for more details
2014-10-25 15:35:10 - Rip - DEBUG - Movie title: Test
2014-10-25 15:35:10 - Compress - DEBUG - Compressing initialised
2014-10-25 15:35:10 - Compress - DEBUG - Looking for movies to compress
2014-10-25 15:35:10 - Compress - INFO - Queue does not exist or is empty
2014-10-25 15:35:10 - Extras - INFO - No movies ready for filebot
No big problem, but for clarity maybe change "encode.py" to "compress.py" in README.md. Thanks for the code, it's nice.
As seen here, the makeMKV file was called "The_World's_End_t00.mkv":
Traceback (most recent call last):
File "src/rip.py", line 101, in <module>
rip()
File "src/rip.py", line 81, in rip
output=mkv_tmp_output):
File "/Users/IanDBird/Documents/Applications/makeMKV-Autoripper/src/makemkv/makemkv.py", line 170, in ripDisc
self._queueMovie()
File "/Users/IanDBird/Documents/Applications/makeMKV-Autoripper/src/makemkv/makemkv.py", line 64, in _queueMovie
db.insert(path, inMovie=movie, outMovie=outMovie)
File "/Users/IanDBird/Documents/Applications/makeMKV-Autoripper/src/database/dbcon.py", line 78, in insert
cur.execute(''.join(uSql))
sqlite3.OperationalError: near "s_End_t00": syntax error
It looks like the dbcon.py's insert needs to escape the path variable.
I've setup my cron job but ripping doesn't succeed. I've set the debug option and I get this:
2015-07-15 07:37:01 - Rip - DEBUG - Ripping initialised
2015-07-15 07:37:01 - Rip - DEBUG - Checking for DVDs
2015-07-15 07:37:07 - Rip - DEBUG - 1 DVDs found
2015-07-15 07:37:19 - Makemkv - DEBUG - MakeMKV found 4 titles
2015-07-15 07:37:19 - Makemkv - DEBUG - MakeMKV title info: Disc Title: ['Game Of Thrones Season 3 Disc 2'], Title No.: 1, Title: ['Game_Of_Thrones_Season_3_Disc_2_t01.mkv'],
2015-07-15 07:37:19 - Makemkv - DEBUG - MakeMKV title info: Disc Title: ['Game Of Thrones Season 3 Disc 2'], Title No.: 0, Title: ['Game_Of_Thrones_Season_3_Disc_2_t00.mkv'],
2015-07-15 07:37:19 - Makemkv - DEBUG - MakeMKV title info: Disc Title: ['Game Of Thrones Season 3 Disc 2'], Title No.: 3, Title: ['Game_Of_Thrones_Season_3_Disc_2_t03.mkv'],
2015-07-15 07:37:19 - Makemkv - DEBUG - MakeMKV title info: Disc Title: ['Game Of Thrones Season 3 Disc 2'], Title No.: 2, Title: ['Game_Of_Thrones_Season_3_Disc_2_t02.mkv'],
Traceback (most recent call last):
File "/usr/local/bin/Autorippr/autorippr.py", line 357, in
rip(config)
File "/usr/local/bin/Autorippr/autorippr.py", line 160, in rip
forceDisableFB
File "/usr/local/bin/Autorippr/classes/database.py", line 145, in insert_movie
lastupdated=datetime.now()
File "build/bdist.linux-x86_64/egg/peewee.py", line 3868, in create
File "build/bdist.linux-x86_64/egg/peewee.py", line 4004, in save
File "build/bdist.linux-x86_64/egg/peewee.py", line 2748, in execute
File "build/bdist.linux-x86_64/egg/peewee.py", line 2300, in _execute
File "build/bdist.linux-x86_64/egg/peewee.py", line 2960, in execute_sql
File "build/bdist.linux-x86_64/egg/peewee.py", line 2810, in exit
File "build/bdist.linux-x86_64/egg/peewee.py", line 2952, in execute_sql
peewee.OperationalError: table movies has no column named multititle
Any thoughts?
Jamie
Not sure why I am doing it. But I am re-ripping my blurays. I am about
half way through and I noticed something odd. As an example, the last time
I ripped a Bluray, I was seeing a compression resulting in 22G -> 6-7 Gigs
Now it seems they are averaging 12g. Any ideas on this?
Turns out the queue can to be read outside of src/ directory, which makes crontabs useless.
Currently using 1.7.0-test1.
I'm looking for a way to limit the script to only ripping/compressing the first title for Blu-ray movies. Currently, it will run makemkvcon on all titles > minLength, compress the 1st, then compress the 2nd, overwriting the first.
The larger problem is that the second tends to be a "special features" version of the movie. In the case of Inception, the 2nd title was the full movie with director commentary mixed in.
An alternate solution could be preventing the second encode from overwriting the first, so I could examine both and delete the wrong one.
Here's what the autorippr.log looks like in the case of multiple titles:
2015-03-21 02:55:53 - Rip - INFO - It took 30 minute(s) to complete the ripping of Inception_t01.mkv from Inception
2015-03-21 03:30:35 - Rip - INFO - It took 34 minute(s) to complete the ripping of Inception_t00.mkv from Inception
2015-03-21 03:30:35 - Compress - INFO - Compressing Inception
2015-03-21 07:44:10 - Compress - INFO - Movie was compressed and encoded successfully
2015-03-21 07:44:10 - Compress - INFO - It took 253 minutes to compress Inception
2015-03-21 07:44:11 - Extras - INFO - Attempting movie rename
2015-03-21 07:45:06 - Rip - INFO - Movie folder Inception already exists
2015-03-21 07:45:06 - Compress - INFO - Compressing Inception
2015-03-21 13:05:17 - Compress - INFO - Movie was compressed and encoded successfully
2015-03-21 13:05:17 - Compress - INFO - It took 320 minutes to compress Inception
2015-03-21 13:05:18 - Extras - INFO - Attempting movie rename
2015-03-21 13:10:06 - Rip - INFO - Movie folder Inception already exists
2015-03-21 13:10:06 - Compress - INFO - Queue does not exist or is empty
2015-03-21 13:10:06 - Extras - INFO - No movies ready for filebot
The end result was a single Inception.mkv where I'm not sure which title was the one saved.
'makemkvcon mkv disc:%s 0 "%s/%s" --cache=%d --noscan --minlength=%d'
%
(self.discIndex, self.path, self.movieName, cache, length))
return True
Is not enough, can't assume it works every time.
It seems to be a popular request.
Have you thought of packaging everything as a Kodi plugin? I want to use this on OpenELEC but I can not install the dependencies.
Hello, first let me say thank you I am testing 1.7 and it worked on first go. I have 2 questions.
I have tried editing settings adding options to set width and height.
Thanks for the help andbgreat program.
Fix up comments for makemkv.py and rip.py
Self explanatory title
Recloned the repo and I am receiving the following error
Traceback (most recent call last):
File "./autorippr.py", line 57, in
from classes import *
File "/home/choman/Autorippr/classes/database.py", line 162, in
db_integrity_check()
File "/home/choman/Autorippr/classes/database.py", line 160, in db_integrity_check
create_status_types()
File "/home/choman/Autorippr/classes/database.py", line 112, in create_status_types
Statustypes.create(statusid=sID, statustext=sType)
File "/usr/local/lib/python2.7/dist-packages/peewee.py", line 3038, in create
inst.save(force_insert=True)
File "/usr/local/lib/python2.7/dist-packages/peewee.py", line 3163, in save
pk_from_cursor = self.insert(*_field_dict).execute()
File "/usr/local/lib/python2.7/dist-packages/peewee.py", line 2247, in execute
return self.database.last_insert_id(self._execute(), self.model_class)
File "/usr/local/lib/python2.7/dist-packages/peewee.py", line 1838, in _execute
return self.database.execute_sql(sql, params, self.require_commit)
File "/usr/local/lib/python2.7/dist-packages/peewee.py", line 2414, in execute_sql
self.commit()
File "/usr/local/lib/python2.7/dist-packages/peewee.py", line 2283, in exit
reraise(new_type, new_type(_exc_value.args), traceback)
File "/usr/local/lib/python2.7/dist-packages/peewee.py", line 2406, in execute_sql
cursor.execute(sql, params or ())
peewee.IntegrityError: UNIQUE constraint failed: statusTypes.statusID
While trying to rip a DVD, Amazing Grace, the disc title is set to '"AMAZING_GRACE"', which leads to a folder titled "AMAZING_GRACE". However, when the function getTitle is called, it cleans the title up, so that it becomes Amazing_Grace. The change in caps and the removal of quotes leads to an error while trying to generate the MKV file due to a non-existant folder. I've tried a fix by moving line 82 above line 77 and then changing lines 77 and 78 to use movie_title instead of dvd["discTitle"] and it appears to work.
Here's a code block showing the diff:
diff --git a/src/rip.py b/src/rip.py
old mode 100644
new mode 100755
index 4b032f8..ce2bf4e
--- a/src/rip.py
+++ b/src/rip.py
@@ -74,12 +74,14 @@ def rip():
mkv_api.setTitle(dvd["discTitle"])
mkv_api.setIndex(dvd["discIndex"])
- if not os.path.exists('%s/%s' % (mkv_save_path, dvd["discTitle"])):
- os.makedirs('%s/%s' % (mkv_save_path, dvd["discTitle"]))
+ movie_title = mkv_api.getTitle()
+
+ if not os.path.exists('%s/%s' % (mkv_save_path, movie_title)):
+ os.makedirs('%s/%s' % (mkv_save_path, movie_title))
mkv_api.getDiscInfo()
- movie_title = mkv_api.getTitle()
+ #movie_title = mkv_api.getTitle()
stopwatch = Timer()
As a note, I'm running python 2.7.6 on ArchLinux.
๐
I used to use this program back when there were separate rip and compress commands and recently upgraded. The old setup had the nice benefit of being able to rip a bunch of movies right in a row and then have it queue the compression step. It seems things have been combined and due to the singleton, the script can only do one thing at a time. Is this intentional? It would be really nice to be able to let the compression run over night after reading in a bunch of DVDs during the day. SQLite supports multiple connections, so there shouldn't be an issue there. Perhaps using lockfile instead of tendo's singleton could accomplish this. Just lock around each call to rip, compress, and extra within autorippr.py
Thanks for all the work you put into this project. It really is great.
Python 2.7 (r27:82500, Aug 21 2010, 07:52:47)
[GCC 4.1.3 20070929 (prerelease) (Ubuntu 4.1.2-16ubuntu2)] on linux2
Type "help", "copyright", "credits" or "license" for more information.peewee (2.4.3)
When attempting to run Autorippr on my QNAP NAS, I get the following error:
>>> database.next_movie_to_compress()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "classes/database.py", line 116, in next_movie_to_compress
for movie in Movies.select().where((Movies.statusid == 4) & (Movies.filename != None)):
File "/share/CACHEDEV1_DATA/.qpkg/Python/lib/python2.7/site-packages/peewee.py", line 2483, in __iter__
return iter(self.execute())
File "/share/CACHEDEV1_DATA/.qpkg/Python/lib/python2.7/site-packages/peewee.py", line 2476, in execute
self._qr = ResultWrapper(model_class, self._execute(), query_meta)
File "/share/CACHEDEV1_DATA/.qpkg/Python/lib/python2.7/site-packages/peewee.py", line 2172, in _execute
return self.database.execute_sql(sql, params, self.require_commit)
File "/share/CACHEDEV1_DATA/.qpkg/Python/lib/python2.7/site-packages/peewee.py", line 2788, in execute_sql
self.commit()
File "/share/CACHEDEV1_DATA/.qpkg/Python/lib/python2.7/site-packages/peewee.py", line 2657, in __exit__
reraise(new_type, new_type(*exc_value.args), traceback)
File "/share/CACHEDEV1_DATA/.qpkg/Python/lib/python2.7/site-packages/peewee.py", line 2780, in execute_sql
cursor.execute(sql, params or ())
peewee.OperationalError: near "?": syntax error
After debugging a bit, it turns out the (peewee) error occurs when performing building the SQL for the the Movies.filename != None
and appears to due to the comparison with None
, e.g.
>>> database.Movies.select().where((database.Movies.statusid == 4))
<class 'classes.database.Movies'> SELECT "t1"."movieID", "t1"."moviename", "t1"."path", "t1"."filename", "t1"."filebot", "t1"."statusID", "t1"."lastUpdated" FROM "movies" AS t1 WHERE ("t1"."statusID" = ?) [4]
>>> for movie in database.Movies.select().where(database.Movies.filename != None):
... print movie.path
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/share/CACHEDEV1_DATA/.qpkg/Python/lib/python2.7/site-packages/peewee.py", line 2483, in __iter__
return iter(self.execute())
File "/share/CACHEDEV1_DATA/.qpkg/Python/lib/python2.7/site-packages/peewee.py", line 2476, in execute
self._qr = ResultWrapper(model_class, self._execute(), query_meta)
File "/share/CACHEDEV1_DATA/.qpkg/Python/lib/python2.7/site-packages/peewee.py", line 2172, in _execute
return self.database.execute_sql(sql, params, self.require_commit)
File "/share/CACHEDEV1_DATA/.qpkg/Python/lib/python2.7/site-packages/peewee.py", line 2788, in execute_sql
self.commit()
File "/share/CACHEDEV1_DATA/.qpkg/Python/lib/python2.7/site-packages/peewee.py", line 2657, in __exit__
reraise(new_type, new_type(*exc_value.args), traceback)
File "/share/CACHEDEV1_DATA/.qpkg/Python/lib/python2.7/site-packages/peewee.py", line 2780, in execute_sql
cursor.execute(sql, params or ())
peewee.OperationalError: near "?": syntax error
The workaround i've done locally is to always save the filename in the database as the string "None". It's not particularly nice but it does workaround this specific issue. I'm also assuming that i'd never have a file which has the exact filename "None" :) This does mean that I use the default of "None" inside insert_movie
so that when a Movie is initially created, it has been set.
I'm not sure if you'd like to include this workaround, but I thought best to document it here so that anyone else who has similar issues can see how to resolve it.
Notification system. Create a function or class that notifies when a (rip, compress, or extra) is complete. Use smtp library for email.
This might not be a bug, but the compress.py script seems to have few issues
It seems to take an extraordinary amount of time when compressing a BR movie,
as opposed to running handbrake directly and using the "MKV" defaults.
8+ hours vs 1 hour
When it seems to be finished, it won't stop running.
Kinda goes with #2, I have yet to see it move onto the next movie to compress
Wish I had more for ya to go on.
from tendo import singleton
me = singleton.SingleInstance()
Job done
Very limited linux user. This setup is working perfectly for movie backup, apart from only one drive is ripped at a time. If I have two drives with discs in, one will rip, eject, then the other will start. Is that what is implied with multiple drive support after your 1.5 release or should they both rip simultaneously?
Thanks for your awesome work :)
Movies with more than one title are considered TV series. Perhaps check to see if the title is greater than 1:15:00?
I am running XBMCbuntu and installed everything and changed the save_path to /home/xbmc/Movies/ but when I go and try to run the rip.py script I get a
File "/home/xbmc/makeMKV-Autoripper/src/rip.py", line 47, in
MKV_SAVE_PATH = config.get('MAKEMKV', 'save_path')
File "/usr/lib/python2.7/ConfigParser.py, Line 330, in get raise NoSectionError(section)
I have the compressor stuck on a the same movie the failed during a computer crash. I am guess it's referring the the database and was wondering how to purge it?
Any others that might need support?
Hi,
Have you considered using the TMDB python module, as opposed to IMDBpy? I belive it is officially supported, and it allows movie duration lookup ect, which could in-turn be used to better identify the correct Title to rip?
Just a thought :)
Im not sure if the problem is with my system or if the script just doesnt support it but when trying to use 2 drives in the same machine to rip movies (trying to archive my whole 1k+ disc collection) it seems to ignore the second drive entirely.
While trying to rip "Pineapple express - unrated edition" I received the following error
2014-08-20 06:59:21 - Rip - DEBUG - Ripping initialised
2014-08-20 06:59:21 - Rip - DEBUG - Checking for DVDs
2014-08-20 06:59:23 - Rip - DEBUG - 1 DVDs found
2014-08-20 07:07:43 - Makemkv - DEBUG - MakeMKV found 1 titles
2014-08-20 07:07:43 - Makemkv - DEBUG - Title number: 1
2014-08-20 07:07:43 - Makemkv - DEBUG - ['Pineapple Express']
2014-08-20 07:07:43 - Makemkv - DEBUG - Title number: 0
2014-08-20 07:07:43 - Makemkv - DEBUG - ['Pineapple Express']
2014-08-20 07:07:43 - Makemkv - DEBUG - Title number: 2
2014-08-20 07:07:43 - Makemkv - DEBUG - ['Pineapple Express']
2014-08-20 07:26:54 - Eject - DEBUG - Ejecting drive: "/dev/sr0"
2014-08-20 07:26:54 - Eject - DEBUG - Attempting OS detection
2014-08-20 07:26:54 - Eject - DEBUG - OS detected as Unix
2014-08-20 07:26:59 - Eject - DEBUG - eject: device name is /dev/sr0' 2014-08-20 07:26:59 - Eject - DEBUG - eject: expanded name is
/dev/sr0'
2014-08-20 07:26:59 - Eject - DEBUG - eject: /dev/sr0' is mounted at
/media/choman/<PINEAPPLE_EXP>'
2014-08-20 07:26:59 - Eject - DEBUG - eject: /dev/sr0' is not a multipartition device 2014-08-20 07:26:59 - Eject - DEBUG - eject: trying to eject
/dev/sr0' using CD-ROM eject command
2014-08-20 07:26:59 - Eject - DEBUG - eject: CD-ROM eject command failed
2014-08-20 07:26:59 - Eject - DEBUG - eject: trying to eject `/dev/sr0' using SCSI commands
2014-08-20 07:26:59 - Eject - DEBUG - eject: SCSI eject succeeded
2014-08-20 07:26:59 - Rip - INFO - It took 19 minute(s) to complete the ripping of Pineapple Exp #6818
2014-08-20 07:26:59 - Compress - DEBUG - Compressing initialised
2014-08-20 07:26:59 - Compress - DEBUG - Looking for movies to compress
2014-08-20 07:26:59 - HandBrake - DEBUG - /home/choman/Videos/Pineapple Exp #6818/Pineapple_Express_t02.mkv
2014-08-20 07:26:59 - HandBrake - ERROR - Input file no longer exists
Other Notes:
Trying to rip Futurama S1D1.
/makemkv/Autorippr$ python autorippr.py --rip/makemkv/Autorippr/classes/database.py", line 145, in insert_movie
Traceback (most recent call last):
File "autorippr.py", line 357, in
rip(config)
File "autorippr.py", line 160, in rip
forceDisableFB
File "
lastupdated=datetime.now()
File "/usr/local/lib/python2.7/dist-packages/peewee.py", line 4001, in create
inst.save(force_insert=True)
File "/usr/local/lib/python2.7/dist-packages/peewee.py", line 4148, in save
pk_from_cursor = self.insert(*_field_dict).execute()
File "/usr/local/lib/python2.7/dist-packages/peewee.py", line 2858, in execute
cursor = self._execute()
File "/usr/local/lib/python2.7/dist-packages/peewee.py", line 2371, in _execute
return self.database.execute_sql(sql, params, self.require_commit)
File "/usr/local/lib/python2.7/dist-packages/peewee.py", line 3073, in execute_sql
self.commit()
File "/usr/local/lib/python2.7/dist-packages/peewee.py", line 2922, in exit
reraise(new_type, new_type(_exc_value.args), traceback)
File "/usr/local/lib/python2.7/dist-packages/peewee.py", line 3065, in execute_sql
cursor.execute(sql, params or ())
peewee.OperationalError: table movies has no column named multititle
Hi
I am trying to use you script to work on flawless server http://flawless-server.com/ and I am not having much luck following your guide i have makemkv and handbrake etc installed but seem need a bit more of a dummies guide as I think a bit is taken for granted that most of you have linux knowledge ?
Any help would be awesome ?
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.