Automatic Video Library Manager for TV Shows. It watches for new episodes of your favorite shows, and when they are posted it does its magic.

Overview

Average time to resolve an issue Percentage of issues still open
codebeat badge XO code style codecov

Automatic Video Library Manager for TV Shows. It watches for new episodes of your favorite shows, and when they are posted it does its magic.

Exclusive features

  • Supports TVMaze and TMDB indexers
  • Manual search episodes (you choose what to snatch based on all kind of info: provider, seeds, release group)
  • Manual search for subtitles (useful when subtitle has low score because of typo in filename or alternative title)
  • Support for Python 3
  • Uses 'guessit' library to parse and enrich existing info (more precise than regexes)
  • Improved Anime shows support
  • Faster DailySearcher|Backlog|Find propers as we only process new items. Already processed items are discarded.
  • Option to clean Kodi library when replacing existing files
  • Better quality explanations and consistent quality code in all threads
  • See on the fly if your backlogged episodes will be increased/reduced while changing qualities
  • Postpone Post Processing until Medusa downloads wanted subtitle (useful to only show media if subtitle available)
  • Clean up any leftover files/folders if media file is deleted
  • Nightly showupdater updates only the season of the show, which has been updated by the indexer, for tvdb and tmdb.

Features

  • Kodi/XBMC library updates, poster/banner/fanart downloads, and NFO/TBN generation
  • Sync your shows with Trakt. Keep shows/episode updated in Trakt watchlist
  • Configurable automatic episode renaming, sorting, and other processing
  • Easily see what episodes you're missing, are airing soon, and more
  • Automatic torrent/nzb searching, downloading, and processing at the qualities you want
  • Largest list of supported torrent and nzb providers, both public and private
  • Can notify Kodi, XBMC, Growl, Trakt, Twitter, and more when new episodes are available
  • Searches TheTVDB.com and AniDB.net for shows, seasons, episodes, and metadata
  • Episode status management allows for mass failing seasons/episodes to force retrying
  • DVD Order numbering for returning the results in DVD order instead of Air-By-Date order
  • Allows you to choose which indexer to have Medusa search its show info from when importing
  • Automatic XEM Scene Numbering/Naming for seasons/episodes
  • Available for any platform, uses a simple HTTP interface
  • Specials and multi-episode torrent/nzb support
  • Automatic subtitles matching and downloading
  • Improved failed download handling
  • DupeKey/DupeScore for NZBGet 12+
  • Real SSL certificate validation

Dependencies

To run Medusa from source you will need one of these Python versions:

  • Python 3 – 3.6.0 and newer

Installation - direct

Start here to read the installation guides for different setups.

Installation - Docker

There's a direct build available on Dockerhub which is updated directly from this repo on every commit to master.

For alternate architectures, the linuxserver.io team have kindly produced docker images for X86, armhf and aarch64 platforms. This is built from an older intermediary Dockerfile.

Feature Requests

Medusa Issue Tracker
FAQ
Wiki
Discord

Important

Before using this with your existing database (sickbeard.db) please make a backup copy of it and delete any other database files such as cache.db and failed.db if present
We HIGHLY recommend starting out with no database files at all to make this a fresh start but the choice is at your own risk.

Supported providers

A partial list can be found here. Jackett is supported, however it must be configured as follows.

Special Thanks to:

RARBG RARBG  ·  NZB.cat NZB.cat  ·  NZBGeek NZBGeek  ·  DOGnzb DOGnzb  ·  DanishBits DanishBits

Browsers support made by godban

IE / Edge
IE / Edge
Firefox
Firefox
Chrome
Chrome
Safari
Safari
Edge last 2 versions last 2 versions last 2 versions

News and Changelog

news.md has moved to a separate repo, click here

The changelog can be found here The changelog for versions prior to v0.2.7 can be found here

External dependencies

This product uses MediaInfo library, Copyright (c) 2002-2016 MediaArea.net SARL

Binaries for Windows and MacOS are included. Linux distributions need to manually install MediaInfo. MediaInfo is optional, but highly recommended since it increases the number of supported formats for video metadata extraction. Basic MKV metadata is supported when MediaInfo is not installed.

Comments
  • Ui changes

    Ui changes

    • [x] PR is based on the DEVELOP branch
    • [x] Don't send big changes all at once. Split up big PRs into multiple smaller PRs that are easier to manage and review
    • [x] Read the contribution guide

    image

    Concluded Feature request 
    opened by Thraxis 124
  • [APP SUBMITTED]: ====================================================================

    [APP SUBMITTED]: ====================================================================

    INFO

    Python Version: 2.7.13 (default, Dec 19 2016, 02:32:04) [GCC 4.7.3 20130102 (prerelease)] Operating System: Linux-3.10.102-x86_64-with-glibc2.2.5 Locale: UTF-8 Branch: master Database: 44.8 Commit: pymedusa/Medusa@7b9111eef5836a6846499ef257ffff3f1f35df8f Link to Log: https://gist.github.com/370cda36b8e1c047c4ca60a9ef088e25

    ERROR

    2018-01-04 18:25:43 ERROR    SEARCHQUEUE-DAILY-SEARCH :: [Yggtorrent] :: [7b9111e] DailySearchQueueItem Exception, error: An internal error has occured in guessit.
    ===================== Guessit Exception Report =====================
    version=2.1.4
    string=VU.2017,.la.rétrospective.de.l’année.vue.par.VU
    options={'allowed_languages': set(['ru', 'fr', 'en', 'nl', 'sv', 'pt', 'ca', 'de', 'jp', 'it', 'hu', 'und', 'pl', 'uk', 'mul', 'ro', 'es', 'he']), 'expected_group': ['TV2LAX9', 'DHD', '20-40'], 'expected_title': ['Sense8', 'The 100', '12 Monkeys', 'Star Blazers 2199', '11.22.63', 'Dimension 404', '3%'], 'allowed_countries': set(['gb', 'us']), 'episode_prefer_number': False, 'show_type': None, 'type': 'episode', 'implicit': True}
    --------------------------------------------------------------------
    Traceback (most recent call last):
      File "/volume1/@appstore/sickbeard-custom/var/SickBeard/ext/guessit/api.py", line 124, in guessit
        match.value = match.value.decode("utf-8")
      File "/usr/local/sickbeard-custom/env/lib/python2.7/encodings/utf_8.py", line 16, in decode
        return codecs.utf_8_decode(input, errors, True)
    UnicodeDecodeError: 'utf8' codec can't decode bytes in position 1-2: unexpected end of data
    --------------------------------------------------------------------
    Please report at https://github.com/guessit-io/guessit/issues.
    ====================================================================
    Traceback (most recent call last):
      File "/volume1/@appstore/sickbeard-custom/var/SickBeard/medusa/search/queue.py", line 262, in run
        found_results = search_for_needed_episodes(force=self.force)
      File "/volume1/@appstore/sickbeard-custom/var/SickBeard/medusa/search/core.py", line 454, in search_for_needed_episodes
        cur_provider.cache.update_cache()
      File "/volume1/@appstore/sickbeard-custom/var/SickBeard/medusa/tv/cache.py", line 225, in update_cache
        result = self._parse_item(item)
      File "/volume1/@appstore/sickbeard-custom/var/SickBeard/medusa/tv/cache.py", line 304, in _parse_item
        leechers, size, pubdate)
      File "/volume1/@appstore/sickbeard-custom/var/SickBeard/medusa/tv/cache.py", line 373, in add_cache_entry
        parse_result = parsed_result or NameParser().parse(name)
      File "/volume1/@appstore/sickbeard-custom/var/SickBeard/medusa/name_parser/parser.py", line 296, in parse
        result = self._parse_string(name)
      File "/volume1/@appstore/sickbeard-custom/var/SickBeard/medusa/name_parser/parser.py", line 61, in _parse_string
        guess = guessit.guessit(name, dict(show_type=self.show_type))
      File "/volume1/@appstore/sickbeard-custom/var/SickBeard/medusa/name_parser/guessit_parser.py", line 76, in guessit
        result = default_api.guessit(name, options=final_options)
      File "/volume1/@appstore/sickbeard-custom/var/SickBeard/ext/guessit/api.py", line 132, in guessit
        raise GuessitException(string, options)
    GuessitException: An internal error has occured in guessit.
    ===================== Guessit Exception Report =====================
    version=2.1.4
    string=VU.2017,.la.rétrospective.de.l’année.vue.par.VU
    options={'allowed_languages': set(['ru', 'fr', 'en', 'nl', 'sv', 'pt', 'ca', 'de', 'jp', 'it', 'hu', 'und', 'pl', 'uk', 'mul', 'ro', 'es', 'he']), 'expected_group': ['TV2LAX9', 'DHD', '20-40'], 'expected_title': ['Sense8', 'The 100', '12 Monkeys', 'Star Blazers 2199', '11.22.63', 'Dimension 404', '3%'], 'allowed_countries': set(['gb', 'us']), 'episode_prefer_number': False, 'show_type': None, 'type': 'episode', 'implicit': True}
    --------------------------------------------------------------------
    Traceback (most recent call last):
      File "/volume1/@appstore/sickbeard-custom/var/SickBeard/ext/guessit/api.py", line 124, in guessit
        match.value = match.value.decode("utf-8")
      File "/usr/local/sickbeard-custom/env/lib/python2.7/encodings/utf_8.py", line 16, in decode
        return codecs.utf_8_decode(input, errors, True)
    UnicodeDecodeError: 'utf8' codec can't decode bytes in position 1-2: unexpected end of data
    --------------------------------------------------------------------
    Please report at https://github.com/guessit-io/guessit/issues.
    ====================================================================
    

    STAFF NOTIFIED: @pymedusa/support @pymedusa/moderators

    Fixed Guessit 
    opened by scott451 115
  • [APP SUBMITTED]: AttributeError: 'NoneType' object has no attribute 'raise_for_status'

    [APP SUBMITTED]: AttributeError: 'NoneType' object has no attribute 'raise_for_status'

    INFO

    Python Version: 3.7.3 (v3.7.3:ef4ec6ed12, Mar 25 2019, 22:22:05) [MSC v.1916 64 bit (AMD64)] Operating System: Windows-10-10.0.19041-SP0 Locale: cp1252 Branch: master Database: 44.17 Commit: pymedusa/Medusa@d45caa6b010ad704f4fa84ad120ef4e0b8402e30 Link to Log: No Log available

    ERROR

    2020-12-19 06:01:05 ERROR    SHOWUPDATER :: [d45caa6] Problem running show_updater, Indexer TVDBv2 seems to be having issues while trying to get updates for show Ratched. Cause: AttributeError("'NoneType' object has no attribute 'raise_for_status'").
    Traceback (most recent call last):
      File "C:\Medusa\Medusa\medusa\schedulers\show_updater.py", line 78, in run
        last_updates[indexer_name], update_max_weeks
      File "C:\Medusa\Medusa\medusa\indexers\tvdbv2\fallback.py", line 132, in __call__
        return self.func(*args, **kwargs)
      File "C:\Medusa\Medusa\medusa\indexers\tvdbv2\api.py", line 599, in get_last_updated_series
        updates = self.config['session'].updates_api.updated_query_get(from_time).data
      File "C:\Medusa\Medusa\ext\tvdbapiv2\apis\updates_api.py", line 130, in updated_query_get
        callback=params.get('callback'))
      File "C:\Medusa\Medusa\ext\tvdbapiv2\api_client.py", line 295, in call_api
        response_type, auth_settings, callback)
      File "C:\Medusa\Medusa\ext\tvdbapiv2\api_client.py", line 122, in __call_api
        post_params=post_params, body=body)
      File "C:\Medusa\Medusa\ext\tvdbapiv2\api_client.py", line 315, in request
        headers=headers)
      File "C:\Medusa\Medusa\ext\tvdbapiv2\rest.py", line 70, in get
        query_params=query_params)
      File "C:\Medusa\Medusa\ext\tvdbapiv2\rest.py", line 54, in request
        r.raise_for_status()
    AttributeError: 'NoneType' object has no attribute 'raise_for_status'
    

    STAFF NOTIFIED: @pymedusa/support @pymedusa/moderators

    opened by ledderi 84
  • [APP SUBMITTED]: TypeError: int() argument must be a string or a number, not 'NoneType'

    [APP SUBMITTED]: TypeError: int() argument must be a string or a number, not 'NoneType'

    INFO

    Python Version: 2.7.9 (default, Aug 13 2016, 17:56:53) [GCC 4.9.2] Operating System: Linux-4.9.29-10-osmc-armv7l-with-debian-8.9 Locale: None Branch: master Database: 44.8 Commit: pymedusa/Medusa@1a8dc66c7ec9231be0d3444710e476437c9ae1c8 Link to Log: https://gist.github.com/965957a628ee04b1d9c8ae8564ad3daf

    ERROR

    2017-12-11 21:30:50 ERROR    Thread-19 :: [1a8dc66] Exception generated: int() argument must be a string or a number, not 'NoneType'
    Traceback (most recent call last):
      File "/home/**********/medusa/medusa/server/web/core/base.py", line 263, in async_call
        result = function(**kwargs)
      File "/home/**********/medusa/medusa/server/web/home/post_process.py", line 50, in processEpisode
        ignore_subs=argToBool(ignore_subs)
      File "/home/**********/medusa/medusa/process_tv.py", line 146, in process
        ignore_subs=ignore_subs)
      File "/home/**********/medusa/medusa/process_tv.py", line 335, in process_files
        self.process_media(path, self.video_files, force, is_priority, ignore_subs)
      File "/home/**********/medusa/medusa/process_tv.py", line 536, in process_media
        self.result = processor.process()
      File "/home/**********/medusa/medusa/post_processor.py", line 1068, in process
        if int(ep_obj.season) > int(max_season[0][0]):
    TypeError: int() argument must be a string or a number, not 'NoneType'
    

    STAFF NOTIFIED: @pymedusa/support @pymedusa/moderators

    Bug Fixed 
    opened by Sylanorr 78
  • [Help] Error while sending torrent: <Fault -506:

    [Help] Error while sending torrent:

    Hi team,

    I create a issue because i'm stuck with my problem and i can't find any solution. After a raid crash on my Synology, i reinstall Medusa and i was unable to send torrent to my seedbox :(. I have this message :

    rTorrent: Unable to send Torrent
    Error while sending torrent: <Fault -506: "Method 'load_raw' not defined">
    

    Before the crash everything worked correctly. Currently, i have no problem with Radarr & Sonarr. And i don't find error on my seedbox.

    I need You ! 👍

    Branch/Commit: master /  b16e0e5eb4ded727eebd2ab2cd9683ab597662f5

    OS: Linux-3.10.105-x86_64-with-glibc2.2.5 (Synology)

    Seedbox :

    Debian 9 LIBTORRENT 0.13.6 RTORRENT 0.9.6

    What you did: Manual and automatic research for series

    What happened: unable to send torrent to my seedbox

    What you expected: torrent send to my seedbox

    Logs:

    2017-11-03 12:48:44 WARNING  SNATCHQUEUE-MANUALSNATCH-289590 :: [b16e0e5] rTorrent: Unable to send Torrent
    2017-11-03 12:48:44 WARNING  SNATCHQUEUE-MANUALSNATCH-289590 :: [b16e0e5] Error while sending torrent: <Fault -506: "Method 'load_raw' not defined">
    2017-11-03 12:48:41 DEBUG    SNATCHQUEUE-MANUALSNATCH-289590 :: [b16e0e5] Calling rTorrent Client
    2017-11-03 12:48:41 DEBUG    SNATCHQUEUE-MANUALSNATCH-289590 :: [b16e0e5] User-Agent: Medusa/0.0.1 (Linux; 3.10.105; e2073a3a-bfec-11e7-b02a-0242fa8202c5)
    2017-11-03 12:48:41 DEBUG    SNATCHQUEUE-MANUALSNATCH-289590 :: [b16e0e5] GET URL: https://yggtorrent.com/engine/download_torrent?id=103013 [Status: 200]
    2017-11-03 12:48:41 DEBUG    SNATCHQUEUE-MANUALSNATCH-289590 :: [b16e0e5] User-Agent: Medusa/0.0.1 (Linux; 3.10.105; e2073a3a-bfec-11e7-b02a-0242fa8202c5)
    2017-11-03 12:48:41 DEBUG    SNATCHQUEUE-MANUALSNATCH-289590 :: [b16e0e5] GET URL: https://yggtorrent.com/ [Status: 200]
    2017-11-03 12:48:40 DEBUG    SNATCHQUEUE-MANUALSNATCH-289590 :: [b16e0e5] With post data: id=**********&submit=&pass=**********
    2017-11-03 12:48:40 DEBUG    SNATCHQUEUE-MANUALSNATCH-289590 :: [b16e0e5] User-Agent: Medusa/0.0.1 (Linux; 3.10.105; e2073a3a-bfec-11e7-b02a-0242fa8202c5)
    2017-11-03 12:48:40 DEBUG    SNATCHQUEUE-MANUALSNATCH-289590 :: [b16e0e5] POST URL: https://yggtorrent.com/user/login [Status: 200]
    2017-11-03 12:48:40 INFO     SNATCHQUEUE-MANUALSNATCH-289590 :: [b16e0e5] Downloading Mr.Robot.S03E01.SUBFRENCH.720p.WEB-DL.x264-FDS.mkv with 154 seeders and 0 leechers and size 866.21 MB from Yggtorrent
    2017-11-03 12:48:40 INFO     SNATCHQUEUE-MANUALSNATCH-289590 :: [b16e0e5] Beginning to manual snatch release: Mr.Robot.S03E01.SUBFRENCH.720p.WEB-DL.x264-FDS.mkv
    
    In progress 
    opened by therealcorwin 75
  • [APP SUBMITTED]: AttributeError: 'NoneType' object has no attribute 'findall'

    [APP SUBMITTED]: AttributeError: 'NoneType' object has no attribute 'findall'

    INFO

    Python Version: 2.7.15 (default, May 26 2018, 01:11:09) [GCC 4.2.1 Compatible FreeBSD Clang 4.0.0 (tags/RELEASE_400/final 297347)] Operating System: FreeBSD-11.2-STABLE-amd64-64bit-ELF Locale: UTF-8 Branch: master Database: 44.12 Commit: pymedusa/Medusa@918cfe7ce01808499585ffe6c1356fd5ed369f76 Link to Log: No Log available

    ERROR

    2019-01-27 10:27:34 ERROR    SEARCHQUEUE-BACKLOG-83996 :: [918cfe7] Checking AniDB scene exceptions update failed for The Ancient Magus' Bride. Error: 'NoneType' object has no attribute 'findall'
    Traceback (most recent call last):
      File "/usr/local/medusa/medusa/scene_exceptions.py", line 421, in _get_anidb_exceptions
        cache_path=join(app.CACHE_DIR, 'adba')
      File "/usr/local/medusa/ext/adba/aniDBAbstracter.py", line 122, in __init__
        self.aid = self.tvDBMap.get_anidb_for_tvdb(self.tvdb_id)
      File "/usr/local/medusa/ext/adba/aniDBtvDBmaper.py", line 30, in get_anidb_for_tvdb
        return self._get_x_for_y(tvdb_id, "tvdbid", "anidbid")
      File "/usr/local/medusa/ext/adba/aniDBtvDBmaper.py", line 35, in _get_x_for_y
        for anime in self.xmlMap.findall("anime"):
    AttributeError: 'NoneType' object has no attribute 'findall'
    

    STAFF NOTIFIED: @pymedusa/support @pymedusa/moderators

    triage 
    opened by Aethrios 73
  • Status page won't open

    Status page won't open

    Click on the link to go to the server status A blank page appears

    Medusa: OS: Synology - Linux-3.2.40-armv7l-with-glibc2.4 Branch: master Commit: 918cfe7

    Logs:

    2018-12-29 15:56:19 ERROR    Thread_1 :: [918cfe7] Exception generated: 'ascii' codec can't encode character u'\xe9' in position 16: ordinal not in range(128)
    Traceback (most recent call last):
      File "/volume1/@appstore/sickbeard-custom/var/SickBeard/medusa/server/web/core/base.py", line 258, in async_call
        result = function(**kwargs)
      File "/volume1/@appstore/sickbeard-custom/var/SickBeard/medusa/server/web/home/handler.py", line 663, in status
        root_dir[subject] = helpers.get_disk_space_usage(subject)
      File "/volume1/@appstore/sickbeard-custom/var/SickBeard/medusa/helpers/__init__.py", line 1451, in get_disk_space_usage
        st = os.statvfs(disk_path)
      File "/volume1/@appstore/sickbeard-custom/var/SickBeard/medusa/init/filesystem.py", line 112, in patched_output
        return handle_output(f(*args, **kwargs))
    UnicodeEncodeError: 'ascii' codec can't encode character u'\xe9' in position 16: ordinal not in range(128)
    
    Support 
    opened by neojoe666 69
  • setting eps to downloaded uses wrong quality

    setting eps to downloaded uses wrong quality

    Medusa Info:
    Branch: master
    Commit: c65ca2607fae74405dcceaaf8c02f3d29d0313ea
    Version: v0.2.5
    Database: 44.9
    Python Version: 2.7.14 (default, May 28 2018, 14:47:18) [GCC 4.7.3 20130102 (prerelease)]
    

    after upgrade to latest version medusa started to re-download a previous d/l'ed shows setting all ep's to snatched. i stopped the d/ls and set the status in medusa back to downloaded.

    now all ep's are suddenly marked "sd" from "720-web-dl" before. show was/is set to HD720p. i cannot set the quality back to 720p on the ep's and medusa is redownload all ep's again and again. how can i set the quality of files back to their correct value?

    Discussion 
    opened by udochrist 67
  • Not finding torrent

    Not finding torrent

    Describe the bug Taking example in the TV series "Arrow", medusa refuses to find "Arrow.S07E02.Custom.DKsubs.720p.WEB-DL.H.264-SUBSTANCE" Where required word "Substance" is the only criteria for medusa. It easily find others (look below in log section)

    This happends to all releases from "Substance" (Tracker: DanishBits) and "YesWeAre" (Tracker: NordicBits)

    To Reproduce Steps to reproduce the behavior: Setup Medusa to do a search for "Arrow" with required word "Substance" on tracker DanishBits or "Supernatural" with required word "YesWeAre" on tracker NordicBits

    I will gladly have you take a look from within my pc remotely, debug log says nothing else than normal log.

    Expected behavior Expected behavior is it should download and find this "Substance" and "YesWeAre" releases. Been trying to fix this for days now. Please help :)

    Screenshots None that would help better.

    Medusa (please complete the following information):

    • OS: Linux Synology running SickBeard with Medusa set as master Branch
    • Branch: master
    • Commit: Not sure what is needed here?

    Logs: Not finding "Substance" Arrow episode on DanishBits.

    2018-11-01 12:27:07 INFO     SEARCHQUEUE-FORCED-257655 :: [0c0a735] Unable to find forced results for: Arrow - S07E02 - The Longbow Hunters
    2018-11-01 12:27:07 INFO     SEARCHQUEUE-FORCED-257655 :: [Danishbits] :: [0c0a735] Ignoring Arrow.S07E02.1080p.HEVC.x265-MeGusta based on required words filter: [u'SUBSTANCE']
    2018-11-01 12:27:07 INFO     SEARCHQUEUE-FORCED-257655 :: [Danishbits] :: [0c0a735] Quality of Arrow.S07E02.1080p.HEVC.x265-MeGusta is 1080p HDTV
    2018-11-01 12:27:07 INFO     SEARCHQUEUE-FORCED-257655 :: [Danishbits] :: [0c0a735] Ignoring Arrow.S07E02.HDTV.x264-SVA based on required words filter: [u'SUBSTANCE']
    2018-11-01 12:27:07 INFO     SEARCHQUEUE-FORCED-257655 :: [Danishbits] :: [0c0a735] Quality of Arrow.S07E02.HDTV.x264-SVA is SDTV
    2018-11-01 12:27:07 INFO     SEARCHQUEUE-FORCED-257655 :: [Danishbits] :: [0c0a735] Ignoring Arrow.S07E02.iNTERNAL.720p.WEB.h264-BAMBOOZLE based on required words filter: [u'SUBSTANCE']
    2018-11-01 12:27:07 INFO     SEARCHQUEUE-FORCED-257655 :: [Danishbits] :: [0c0a735] Quality of Arrow.S07E02.iNTERNAL.720p.WEB.h264-BAMBOOZLE is 720p WEB-DL
    2018-11-01 12:27:07 INFO     SEARCHQUEUE-FORCED-257655 :: [Danishbits] :: [0c0a735] Ignoring Arrow.S07E02.1080p.WEB.h264-TBS based on required words filter: [u'SUBSTANCE']
    2018-11-01 12:27:07 INFO     SEARCHQUEUE-FORCED-257655 :: [Danishbits] :: [0c0a735] Quality of Arrow.S07E02.1080p.WEB.h264-TBS is 1080p WEB-DL
    2018-11-01 12:27:07 INFO     SEARCHQUEUE-FORCED-257655 :: [Danishbits] :: [0c0a735] Ignoring Arrow.S07E02.720p.HDTV.x264-SVA based on required words filter: [u'SUBSTANCE']
    2018-11-01 12:27:07 INFO     SEARCHQUEUE-FORCED-257655 :: [Danishbits] :: [0c0a735] Quality of Arrow.S07E02.720p.HDTV.x264-SVA is 720p HDTV
    2018-11-01 12:27:07 INFO     SEARCHQUEUE-FORCED-257655 :: [Danishbits] :: [0c0a735] Performing episode search for Arrow
    

    Additional context Dont have more details.

    Support 
    opened by Masterditto 61
  • [APP SUBMITTED]: UnicodeDecodeError: 'utf8' codec can't decode byte 0x92 in position 26: invalid start byte

    [APP SUBMITTED]: UnicodeDecodeError: 'utf8' codec can't decode byte 0x92 in position 26: invalid start byte

    INFO

    Python Version: 2.7.14 (default, May 28 2018, 14:47:18) [GCC 4.7.3 20130102 (prerelease)] Operating System: Linux-3.10.105-x86_64-with-glibc2.2.5 Locale: None Branch: master Database: 44.12 Commit: pymedusa/Medusa@4614efc77151ded92ef458a09dec39f8bd5acfc6 Link to Log: https://gist.github.com/947b7d49694fec89492cbf1bfa870df8

    ERROR

    2018-10-20 09:12:08 ERROR    SHOWQUEUE-ADD :: [4614efc] Error searching dir for episodes: 'utf8' codec can't decode byte 0x92 in position 26: invalid start byte
    Traceback (most recent call last):
      File "/volume1/@appstore/sickbeard-custom/var/SickBeard/medusa/show_queue.py", line 617, in run
        self.show.load_episodes_from_dir()
      File "/volume1/@appstore/sickbeard-custom/var/SickBeard/medusa/tv/series.py", line 985, in load_episodes_from_dir
        media_files = helpers.list_media_files(self.location)
      File "/volume1/@appstore/sickbeard-custom/var/SickBeard/medusa/helpers/__init__.py", line 262, in list_media_files
        files += list_media_files(full_cur_file)
      File "/volume1/@appstore/sickbeard-custom/var/SickBeard/medusa/helpers/__init__.py", line 257, in list_media_files
        for cur_file in os.listdir(path):
      File "/volume1/@appstore/sickbeard-custom/var/SickBeard/medusa/init/filesystem.py", line 113, in patched_output
        return handle_output(f(*args, **kwargs))
      File "/volume1/@appstore/sickbeard-custom/var/SickBeard/medusa/init/filesystem.py", line 50, in _handle_output_u
        return list(map(_handle_output_u, result))
      File "/volume1/@appstore/sickbeard-custom/var/SickBeard/medusa/init/filesystem.py", line 47, in _handle_output_u
        return decode(result)
      File "/volume1/@appstore/sickbeard-custom/var/SickBeard/medusa/init/filesystem.py", line 32, in decode
        return text_type(value, 'utf-8' if os.name != 'nt' else fs_encoding)
    UnicodeDecodeError: 'utf8' codec can't decode byte 0x92 in position 26: invalid start byte
    

    STAFF NOTIFIED: @pymedusa/support @pymedusa/moderators

    Bug Confirmed 
    opened by mcmikev 57
  • [APP SUBMITTED]: ValueError: invalid literal for int() with base 10: ''

    [APP SUBMITTED]: ValueError: invalid literal for int() with base 10: ''

    INFO

    Python Version: 2.7.9 (default, Sep 17 2016, 20:26:04) [GCC 4.9.2] Operating System: Linux-4.9.35-v7+-armv7l-with-debian-8.0 Locale: UTF-8 Branch: develop Database: 44.8 Commit: pymedusa/Medusa@f971a8ce45008e3c3ddc6ede4a602b16db123cbf Link to Log: https://gist.github.com/38875ed7ff1eb6d81f0bed33db949c7d

    ERROR

    2017-09-24 20:44:18 ERROR    Thread-18 :: [f971a8c] Exception generated: invalid literal for int() with base 10: ''
    Traceback (most recent call last):
      File "/home/pi/Medusa/medusa/server/web/core/base.py", line 258, in async_call
        result = function(**kwargs)
      File "/home/pi/Medusa/medusa/server/web/home/handler.py", line 1036, in pickManualSearch
        ep_objs.append(show_obj.get_episode(int(cached_result[b'season']), int(episode)))
    ValueError: invalid literal for int() with base 10: ''
    

    STAFF NOTIFIED: @pymedusa/support @pymedusa/moderators

    Bug Duplicate Fixed 
    opened by duramato 55
  • [APP SUBMITTED]: KeyError: 'streams'

    [APP SUBMITTED]: KeyError: 'streams'

    INFO

    Python Version: 3.10.4 (main, Apr 20 2022, 01:09:52) [GCC 10.3.1 20211027] Operating System: Linux-4.4.59+-x86_64-with Locale: UTF-8 Branch: master Database: 44.19 Commit: pymedusa/Medusa@552f1199853dfce905f9ba6e27194da67070ea6a Link to Log: https://gist.github.com/dc45b9450c04be5a871c3e9bafb1bcea

    ERROR

    2023-01-06 16:00:05 ERROR    Thread_0 :: [552f119] Exception generated: 'streams'
    Traceback (most recent call last):
      File "/app/medusa/medusa/server/web/core/base.py", line 252, in async_call
        result = function(**kwargs)
      File "/app/medusa/medusa/server/web/home/post_process.py", line 101, in processEpisode
        result = app.post_processor_scheduler.action.run(
      File "/app/medusa/medusa/process_tv.py", line 240, in run
        process_results.process(force=force, **kwargs)
      File "/app/medusa/medusa/process_tv.py", line 399, in process
        self.process_files(dir_path, force=force, is_priority=is_priority,
      File "/app/medusa/medusa/process_tv.py", line 665, in process_files
        self.process_media(path, self.video_files, force, is_priority, ignore_subs)
      File "/app/medusa/medusa/process_tv.py", line 890, in process_media
        self.result = processor.process()
      File "/app/medusa/medusa/post_processor.py", line 1050, in process
        result = FfMpeg().check_for_video_and_audio_streams(self.file_path)
      File "/app/medusa/medusa/helpers/ffmpeg.py", line 62, in check_for_video_and_audio_streams
        video_streams = [item for item in video_details['streams'] if item['codec_type'] == 'video']
    KeyError: 'streams'
    

    STAFF NOTIFIED: @pymedusa/support @pymedusa/moderators

    opened by mooneye14 0
  • Medusa using scene numbering when detecting already existing files

    Medusa using scene numbering when detecting already existing files

    Describe the bug If you try to add an already existing show and it has scene numberings then medusa will use those numberings to detect the already existing files, which should already be using the indexer numbering and not the scene one. I believe this is what was breaking Bleach since the first 16 tvdb seasons are mapped to scene season 1 while tvdb season 17 is mapped to scene season 2 (https://thexem.info/xem/show/5476). Since medusa is detecting those using scene mappings, tvdb season 2(aka one of the seasons from the 16 that are matched to scene season 1) is being detected as scene season 2 and scene season 2 is matched to tvdb season 17 so it end ups putting them in tvdb s17. I initially tried to mark all previous seasons as archived, season 17 as wanted and deleted from the database the path of the files it incorrectly detected as season 17 so it didn't replace those files when downloading new episodes but seems like medusa ends up detecting already existing files even if I didn't ask it to so it ended up not working. I managed to workaround it by making 15 extra dummy seasons in my custom xem server making each tvdb season match a single scene season.

    Expected behavior Medusa should detect already existing files using indexer numbering instead of scene numbering because those files are already supposed to be using the indexer structure

    Screenshots I didn't make any screenshot when this happened with Bleach but it's happening again with another show that currently airing(Bungou Stray Dogs S4), scene season 1 and scene season 2 are matched both to tvdb season 1 meaning that it's detecting tvdb season 2(which is scene season 3) as scene season 2 and matching it to the second half of tvdb season 1: example This is what it should detect as Season 1 example2

    Medusa (please complete the following information):

    Debug logs (at least 50 lines): I don't have a debug since the show was added a few weeks ago and only noticed it was wrongly mapped now that I started watching it. I do have a small snippet I saved weeks ago when I was trying to fix the Bleach issue

    2022-12-06 18:02:19 DEBUG SHOWQUEUE-REFRESH :: [e4b480c] Parsed Bleach - S02E12 into title: Bleach, season: 17, episode: [12], type: episode, parsing_time: 0.010959625244140625, absolute_episode: [378], quality: Unknown, total_time: 0.013970613479614258 and added to cache

    2022-12-06 18:02:19 DEBUG SHOWQUEUE-REFRESH :: [e4b480c] Matched release Bleach - S02E12 to a series in your database: Bleach using guessit title: Bleach

    2022-12-06 18:02:19 DEBUG SHOWQUEUE-REFRESH :: [e4b480c] Converted parsed result Bleach - S02E12 into title: Bleach, season: 17, episode: [12], type: episode, parsing_time: 0.010959625244140625, absolute_episode: [378], quality: Unknown, total_time: None

    2022-12-06 18:02:19 DEBUG SHOWQUEUE-REFRESH :: [e4b480c] New guessit parse for item Bleach - S02E12

    2022-12-06 18:02:19 DEBUG SHOWQUEUE-REFRESH :: [e4b480c] Trying guessit cache for item Bleach - S02E12

    2022-12-06 18:02:19 DEBUG SHOWQUEUE-REFRESH :: [e4b480c] Bleach: Not changing current status 'Archived' or quality 'SDTV' based on file: H:\General\Multimedia\Anime\Bleach\Season 2\Bleach - S02E12.avi

    2022-12-06 18:02:19 DEBUG SHOWQUEUE-REFRESH :: [e4b480c] 74796: H:\General\Multimedia\Anime\Bleach\Season 2\Bleach - S02E12.avi parsed to Bleach S17E12

    2022-12-06 18:02:19 DEBUG SHOWQUEUE-REFRESH :: [e4b480c] Parsed H:\General\Multimedia\Anime\Bleach\Season 2\Bleach - S02E12.avi into title: Bleach, season: 17, episode: [12], container: avi, mimetype: video/avi, type: episode, parsing_time: 0.017675161361694336, absolute_episode: [378], quality: Unknown, total_time: 0.020659208297729492 and added to cache

    2022-12-06 18:02:19 DEBUG SHOWQUEUE-REFRESH :: [e4b480c] Matched release H:\General\Multimedia\Anime\Bleach\Season 2\Bleach - S02E12.avi to a series in your database: Bleach using guessit title: Bleach

    2022-12-06 18:02:19 DEBUG SHOWQUEUE-REFRESH :: [e4b480c] Converted parsed result H:\General\Multimedia\Anime\Bleach\Season 2\Bleach - S02E12.avi into title: Bleach, season: 17, episode: [12], container: avi, mimetype: video/avi, type: episode, parsing_time: 0.017675161361694336, absolute_episode: [378], quality: Unknown, total_time: None

    2022-12-06 18:02:19 DEBUG SHOWQUEUE-REFRESH :: [e4b480c] New guessit parse for item H:\General\Multimedia\Anime\Bleach\Season 2\Bleach - S02E12.avi

    2022-12-06 18:02:19 DEBUG SHOWQUEUE-REFRESH :: [e4b480c] Trying guessit cache for item H:\General\Multimedia\Anime\Bleach\Season 2\Bleach - S02E12.avi

    2022-12-06 18:02:19 DEBUG SHOWQUEUE-REFRESH :: [e4b480c] 74796: Creating episode object from H:\General\Multimedia\Anime\Bleach\Season 2\Bleach - S02E12.avi

    2022-12-06 18:02:19 DEBUG SHOWQUEUE-REFRESH :: [e4b480c] 74796: Creating episode from: H:\General\Multimedia\Anime\Bleach\Season 2\Bleach - S02E12.avi

    opened by Guslletas 0
  • [APP SUBMITTED]: Missing time zone for network: AXN Polska

    [APP SUBMITTED]: Missing time zone for network: AXN Polska

    INFO

    Python Version: 3.7.3 (v3.7.3:ef4ec6ed12, Mar 25 2019, 22:22:05) [MSC v.1916 64 bit (AMD64)] Operating System: Windows-10-10.0.22621-SP0 Locale: cp1255 Branch: Database: 44.18 Commit: pymedusa/Medusa@729ab4f066034709137edb43440dba7c84959626 Link to Log: No Log available

    ERROR

    2023-01-04 06:44:40 ERROR    MAIN :: [729ab4f] Missing time zone for network: AXN Polska
    

    STAFF NOTIFIED: @pymedusa/support @pymedusa/moderators

    opened by ledderi 2
  • Object of type Episode is not JSON serializable

    Object of type Episode is not JSON serializable

    Describe the bug Getting this error frequently but haven't had time to post it.

    To Reproduce Truly haven't nailed down a definitive pattern. May be related to a few children's shows but unsure. This most recent error appeared as I was switching Paw Patrol from TMDB to TheTVDB so I had deleted the show and readded it. It repeated this error for about 2000 lines.

    Expected behavior No error.

    Screenshots Attaching log.

    Medusa (please complete the following information):

    • OS: Linux-5.19.17-Unraid-x86_64-with-glibc2.36
    • Branch: master
    • Commit: [a1d899bc882da047b3d6ff936e8b78b62b169b05]
    • Python version: 3.10.8 (main, Nov 1 2022, 14:18:21) [GCC 12.2.0]
    • Database version: 44.19

    Debug logs (at least 50 lines): General > Advanced Settings > Enable debug

    2023-01-03 00:16:49 WARNING	SHOWQUEUE-REFRESH :: [a1d899b] Unhashable type encountered. Please report this warning to the developers.
    TypeError('Object of type Episode is not JSON serializable')
    Traceback (most recent call last):
      File "/opt/medusa/medusa/ws/__init__.py", line 41, in json
        return json.dumps(self.content)
      File "/usr/lib/python3.10/json/__init__.py", line 231, in dumps
        return _default_encoder.encode(obj)
      File "/usr/lib/python3.10/json/encoder.py", line 199, in encode
        chunks = self.iterencode(o, _one_shot=True)
      File "/usr/lib/python3.10/json/encoder.py", line 257, in iterencode
        return _iterencode(o, 0)
      File "/usr/lib/python3.10/json/encoder.py", line 179, in default
        raise TypeError(f'Object of type {o.__class__.__name__} '
    TypeError: Object of type Episode is not JSON serializable
    2023-01-03 00:16:48 WARNING	SHOWQUEUE-REFRESH :: [a1d899b] Unhashable type encountered. Please report this warning to the developers.
    TypeError('Object of type Episode is not JSON serializable')
    Traceback (most recent call last):
      File "/opt/medusa/medusa/ws/__init__.py", line 41, in json
        return json.dumps(self.content)
      File "/usr/lib/python3.10/json/__init__.py", line 231, in dumps
        return _default_encoder.encode(obj)
      File "/usr/lib/python3.10/json/encoder.py", line 199, in encode
        chunks = self.iterencode(o, _one_shot=True)
      File "/usr/lib/python3.10/json/encoder.py", line 257, in iterencode
        return _iterencode(o, 0)
      File "/usr/lib/python3.10/json/encoder.py", line 179, in default
        raise TypeError(f'Object of type {o.__class__.__name__} '
    TypeError: Object of type Episode is not JSON serializable
    2023-01-03 00:16:47 WARNING	SHOWQUEUE-REFRESH :: [a1d899b] Unhashable type encountered. Please report this warning to the developers.
    TypeError('Object of type Episode is not JSON serializable')
    Traceback (most recent call last):
      File "/opt/medusa/medusa/ws/__init__.py", line 41, in json
        return json.dumps(self.content)
      File "/usr/lib/python3.10/json/__init__.py", line 231, in dumps
        return _default_encoder.encode(obj)
      File "/usr/lib/python3.10/json/encoder.py", line 199, in encode
        chunks = self.iterencode(o, _one_shot=True)
      File "/usr/lib/python3.10/json/encoder.py", line 257, in iterencode
        return _iterencode(o, 0)
      File "/usr/lib/python3.10/json/encoder.py", line 179, in default
        raise TypeError(f'Object of type {o.__class__.__name__} '
    TypeError: Object of type Episode is not JSON serializable
    2023-01-03 00:16:46 INFO	SHOWQUEUE-REFRESH :: [a1d899b] 272472: Performing refresh on Paw Patrol
    2023-01-03 00:16:43 INFO	SHOWQUEUE-ADD :: [a1d899b] Starting to add show by show_dir: /Kid Shows/Paw Patrol
    2023-01-03 00:16:42 INFO	SHOWQUEUE-ADD :: [a1d899b] Finished processing 0 scene exceptions.
    2023-01-03 00:16:42 INFO	SHOWQUEUE-ADD :: [a1d899b] Updating exception_cache and exception_season_cache
    2023-01-03 00:16:42 INFO	SHOWQUEUE-ADD :: [a1d899b] Building internal name cache for Paw Patrol
    2023-01-03 00:16:42 INFO	SHOWQUEUE-ADD :: [a1d899b] Finished processing 4253 scene exceptions.
    2023-01-03 00:16:42 INFO	SHOWQUEUE-ADD :: [a1d899b] Updating exception_cache and exception_season_cache
    2023-01-03 00:16:42 INFO	SHOWQUEUE-ADD :: [a1d899b] Cache check completed
    2023-01-03 00:16:42 INFO	SHOWQUEUE-ADD :: [a1d899b] 272472: Updating NFOs for show with new indexer info
    2023-01-03 00:16:19 INFO	SHOWQUEUE-ADD :: [a1d899b] Setting all previously aired episodes to the specified status: Skipped
    2023-01-03 00:16:02 INFO	SHOWQUEUE-ADD :: [a1d899b] Finished processing 0 scene exceptions.
    2023-01-03 00:16:02 INFO	SHOWQUEUE-ADD :: [a1d899b] Updating exception_cache and exception_season_cache
    2023-01-03 00:16:02 INFO	SHOWQUEUE-ADD :: [a1d899b] 272472: We could not determin a specific `airs_dayofweek` or `airs_time` for the show: Paw Patrol
     We might start searching early for episodes.
    2023-01-03 00:15:19 INFO	SHOWQUEUE-ADD :: [a1d899b] Starting to add show by show_dir: /Kid Shows/Paw Patrol
    2023-01-03 00:13:28 INFO	MAIN :: [a1d899b] Building internal name cache for all shows
    

    Additional context Had this error for quite a while but just unable to commit to posting about it.

    opened by TBoneStaek 0
  • [APP SUBMITTED]: ssl.SSLEOFError: EOF occurred in violation of protocol (_ssl.c:1131)

    [APP SUBMITTED]: ssl.SSLEOFError: EOF occurred in violation of protocol (_ssl.c:1131)

    INFO

    Python Version: 3.8.13 (default, Jul 10 2022, 21:54:50) [GCC 7.5.0] Operating System: Linux-3.10.108-armv7l-with-glibc2.4 Locale: UTF-8 Branch: master Database: 44.19 Commit: pymedusa/Medusa@0b9b58d184ae4fc5467f3474d452f888dfbaac10 Link to Log: https://gist.github.com/9c58030dbe7cf94521b0874560cd8644

    ERROR

    2022-12-30 18:55:06 ERROR    POSTPROCESSOR :: [0b9b58d] Environment error: EOF occurred in violation of protocol (_ssl.c:1131)
    Traceback (most recent call last):
      File "/volume1/@appstore/medusa/src/medusa/schedulers/scheduler.py", line 78, in run
        self.action.run(self.force)
      File "/volume1/@appstore/medusa/src/medusa/process_tv.py", line 240, in run
        process_results.process(force=force, **kwargs)
      File "/volume1/@appstore/medusa/src/medusa/process_tv.py", line 399, in process
        self.process_files(dir_path, force=force, is_priority=is_priority,
      File "/volume1/@appstore/medusa/src/medusa/process_tv.py", line 665, in process_files
        self.process_media(path, self.video_files, force, is_priority, ignore_subs)
      File "/volume1/@appstore/medusa/src/medusa/process_tv.py", line 890, in process_media
        self.result = processor.process()
      File "/volume1/@appstore/medusa/src/medusa/post_processor.py", line 1323, in process
        notifiers.notify_download(ep_obj)
      File "/volume1/@appstore/medusa/src/medusa/notifiers/__init__.py", line 103, in notify_download
        n.notify_download(ep_obj)
      File "/volume1/@appstore/medusa/src/medusa/notifiers/pushover.py", line 152, in notify_download
        self._notify_pushover(title, ep_obj.pretty_name_with_quality())
      File "/volume1/@appstore/medusa/src/medusa/notifiers/pushover.py", line 205, in _notify_pushover
        return self._send_pushover(message, title, sound=sound, user_key=user_key, api_key=api_key, priority=priority)
      File "/volume1/@appstore/medusa/src/medusa/notifiers/pushover.py", line 96, in _send_pushover
        conn.request('POST', '/1/messages.json',
      File "/var/packages/python38/target/lib/python3.8/http/client.py", line 1256, in request
        self._send_request(method, url, body, headers, encode_chunked)
      File "/var/packages/python38/target/lib/python3.8/http/client.py", line 1302, in _send_request
        self.endheaders(body, encode_chunked=encode_chunked)
      File "/var/packages/python38/target/lib/python3.8/http/client.py", line 1251, in endheaders
        self._send_output(message_body, encode_chunked=encode_chunked)
      File "/var/packages/python38/target/lib/python3.8/http/client.py", line 1011, in _send_output
        self.send(msg)
      File "/var/packages/python38/target/lib/python3.8/http/client.py", line 951, in send
        self.connect()
      File "/var/packages/python38/target/lib/python3.8/http/client.py", line 1425, in connect
        self.sock = self._context.wrap_socket(self.sock,
      File "/var/packages/python38/target/lib/python3.8/ssl.py", line 500, in wrap_socket
        return self.sslsocket_class._create(
      File "/var/packages/python38/target/lib/python3.8/ssl.py", line 1040, in _create
        self.do_handshake()
      File "/var/packages/python38/target/lib/python3.8/ssl.py", line 1309, in do_handshake
        self._sslobj.do_handshake()
    ssl.SSLEOFError: EOF occurred in violation of protocol (_ssl.c:1131)
    

    STAFF NOTIFIED: @pymedusa/support @pymedusa/moderators

    opened by sendas 0
Releases(v1.0.10)
  • v1.0.10(Dec 15, 2022)

    Improvements

    • Add TVNZ 1 logo
    • Add compatibility to Python 3.11
    • Allow to add scene exception to force exact show title match

    Fixes

    • Set english language in requests header for Addic7ed subs provider
    • Avoid error when post-processing path is None
    • Fix error log when ffmpeg doesn't detect audio or video
    Source code(tar.gz)
    Source code(zip)
  • v1.0.9(Oct 11, 2022)

    Improvements

    • Always get current version on startup (10925)
    • Remove copy fallback when hardlink failed (10952)
    • Change log level to info for episodes not in DVD order (10872)
    • Update M-net logo (10937)

    Fixes

    • Normalize the imdb_id (10923)
    • Replace non-UTF8 chars instead of error for Plexmatch file (10948)
    • Fix Download Handler log filter (10953)
    Source code(tar.gz)
    Source code(zip)
  • v1.0.8(Sep 6, 2022)

  • v1.0.7(Aug 26, 2022)

    Improvements

    • Add ffmpeg to docker build for postprocessing

    Fixes

    • Add encoding when working with plexmatch file
    • Fix anidb cache key causing exceptions
    • Various smaller fixes
    Source code(tar.gz)
    Source code(zip)
  • v1.0.6(Jul 25, 2022)

    Improvements

    • Remove the Download field from the display-show table. Isn't used anymore. (10813)

    Fixes

    • Fixed borders in tables where display: flex is used on a table cell. (10813)
    • Fix keys for caching recommended shows in recommended.dbm. (10827)
    • Fix using download handler with deluge / deluged. (10828)
    • History page: Fix filtering by multiple fields (10832)
    • Fix error when parsing files without subs (10837)
    Source code(tar.gz)
    Source code(zip)
  • v1.0.5(Jul 6, 2022)

  • v1.0.4(Jul 5, 2022)

    Improvements

    • Added connection (lost) indicator on the Medusa log (10774)
    • Extend subtitle file parsing to allow for titles with language name. (10782)
    • Auto change status episode to Wanted, when running a forced search for the episode. 10796)

    Fixes

    • Homepage: Fix loading shows from localCache (10779)
    • Fix Erai-raws formatted anime release guessit parsing (10791)
    • Fix switching branch (10798)
    Source code(tar.gz)
    Source code(zip)
  • v1.0.3(Jun 10, 2022)

    Improvements

    • Change log to debug when metadata image can't be retrieved
    • Update MediaInfo for Windows and MacOSX
    • Update Docker image to Python version 3.10

    Fixes

    • Fix NullReferenceError on testRename page when postprocessing method is symlink
    • Fix a specific guessit test
    Source code(tar.gz)
    Source code(zip)
  • v1.0.2(May 31, 2022)

  • v1.0.1(May 31, 2022)

  • v1.0.0(May 31, 2022)

    New Features

    • Add option to mass-update the info language (10516)

    Improvements

    • Multiple UI fixes / enhancements (10566)
    • Add config setting to allow overriding xem url (10541)
    • Increase addic7ed http request timeout (10565)
    • Improve anime title parsing for Title Season 2 - 01 (10534)
    • Improve detection of commit / branch when run in docker (10531)
    • Improve guessit parsing for shows with numbers in them like 9-1-1 (10493)
    • Bump Knowit + pymediainfo to version 0.4.0 and 5.1.0 (10564)

    Fixes

    • Fix malformed imdb id's when imdb id not available (10669)
    • Fix shows being searched 2 days early for tvmaze shows (10668)
    • Disable guessit cache for postprocessing (10532)
    • Fix .plexmatch file misread as xml causing warnings (10510)
    Source code(tar.gz)
    Source code(zip)
  • v0.5.29(Apr 11, 2022)

    New Features

    • Support for Plex metadata (.plexmatch) (10466)

    Improvements

    • Make the cache db and cache files optional for inclusion in the backup (10475)

    Fixes

    • Fix joining segments in log for failed episodes (10472)
    Source code(tar.gz)
    Source code(zip)
  • v0.5.28(Apr 1, 2022)

  • v0.5.27(Mar 29, 2022)

  • v0.5.26(Mar 28, 2022)

  • v0.5.25(Mar 8, 2022)

    New Features

    • New indexer: Added support for adding shows from Imdb. (3603)

    Improvements

    • Enhanced test guessit tool (10357)
    • Discord notifier: added ability to override avatar (10351)
    • Purge recommended shows cache after x days (10352)
    • Added a "load more" button to recommended shows (10380)
    • Improve menu layout on mobile (10386)

    Fixes

    • Fix saving specific post-processing method (10350)
    • Fix pasing torrent size when using torznab provider that have torrent_size available in the attrs. (10365)
    • Fix provider MoreThenTv (10391)
    • Fix Manage mass-update: Starting the refresh action (10377)
    Source code(tar.gz)
    Source code(zip)
  • v0.5.24(Feb 15, 2022)

    Improvements

    • Improve show updates. Update the complete show when marked updated by indexer, without an indication to update a season. (10330)

    Fixes

    • Fix searching for season packs. (10345)
    Source code(tar.gz)
    Source code(zip)
  • v0.5.23(Feb 11, 2022)

    New Features

    • Add support for banner and background images to indexer tvmaze (10234)
    • Add option for using ffprobe to validate postprocessed media (10132)
    • Add change indexer page to change the current indexer for shows in bulk (9862)
    • Add search templates feature. (3732)

    Improvements

    • Add column sorting for the add new show page search results (10217)
    • Add series start year as a renaming option (10183)
    • Remove git username/password authentication. No longer supported by github. (10144)
    • Add option to allow for overwriting nfo files. (10237)
    • Improve kodi nfo file creation. (10237)
    • Add filter options to the manual search results table. (10252)

    Fixes

    • Fix displayShow search subtitle button (10214)
    • Prevent failedDownloads from errorring, when a provider has been deleted (10214)
    • Fix mass update status page, start a new snatch when changing status to failed. (10213)
    • Fix changing process method in manual postprocessing. (10220)
    • Fix saving season posters / banners when using tvdb (10251)
    • Fix Addic7ed.com subtitle provider (10312)
    Source code(tar.gz)
    Source code(zip)
  • v0.5.22(Dec 23, 2021)

  • v0.5.21(Dec 20, 2021)

    New Features

    • Add official Python 3.10 support

    Improvements

    • Catch AttributeError for TVMaze API
    • Separate recommended lists calls
    • Add rule for parsing shows that begin with a number as title
    • Add anime category for TorrentDay

    Fixes

    • Fix Plex Server library update from /manage/plex
    • Fix TorrentDay generating a JSONDecodeError
    • Fix update Kodi library
    • Fix provider Morethantv
    • Prevent dropdowns from closing when using touch navigation
    Source code(tar.gz)
    Source code(zip)
  • v0.5.20(Nov 2, 2021)

  • v0.5.19(Oct 31, 2021)

    New Features

    • Added separate configs for the process methods (copy, move, etc) for torrent and nzb. (only usuable with the download handler) (9932)
    • Added setting for the default client path that will be protected (can't be deleted) during post-processing (9954)

    Fixes

    • Correctly delete folders with files for move method or if explicitly wanted (9950)
    • Fixed link to the overview of snatched episodes at the bottom of the pages (9954)
    • Prevent duplicate searches for Torznab
    • Catch exceptions during shutdown and always delete PID file
    • Fix scene season searches
    Source code(tar.gz)
    Source code(zip)
  • v0.5.18(Sep 14, 2021)

    Improvements

    • Add the options to manage/searches page to clean automatic added scene exceptions from cache. (9859)
    • Add custom newznab/torznab category id's through UI. (9857)

    Fixes

    • Fix prowlarr provider id's being obfuscated in logs because of a bad log level. (9857)
    • Fix postprocessing specials. (9812)
    • Fix storing a negative value in the UI as a search delay value (9822)
    Source code(tar.gz)
    Source code(zip)
  • v0.5.17(Aug 16, 2021)

    Fixes

    • Fix history page (compact layout) fails to load. (9794)
    • Prevent recommended shows (imdb) to cache empty responses to the api. (9797)
    • Fix download handler throwing errors connecting to NZBget. (9801)
    Source code(tar.gz)
    Source code(zip)
  • v0.5.16(Aug 13, 2021)

    New Features

    • Implemented recommended shows v2. (5782)
      • Added recommended list from anilist.co
      • Recommended lists are cached nightly
      • Configure which lists to cache
      • Improvements to the recommended list UI
      • Added plot and genre information when available from the recommended list
      • Add shows from recommended lists through one click to the show search, or by id (if a tvdbid, tmdbid or tvmazeid is available)

    Improvements

    • adba lib: Reduced startup time for libraries with many anime shows. (5782)
      • anime-list.xml was read for each anime show on startup

    Fixes

    • Fixed postprocessing of archives with multiple video files caused a pp of the complete download dir. (9775)
    • Fixed download handler wrongly untrack downloads when connection errors occurred. (9774)
    • Removed anonomized redirect service (derefer.org is down) in favor of "noreferrer noopener" headers (5782)
    • Fixed schedule page not showing day of week for shows airing on sunday (banner/poster layouts) (9791)
    • Group history compact layout results by quality (9788)
    Source code(tar.gz)
    Source code(zip)
  • v0.5.15(Jul 23, 2021)

  • v0.5.14(Jul 6, 2021)

    New Features

    • Added support for Prowlarr (9653)

    Improvements

    • Vueified config/providers (9653)
    • Added support for Prowlarr (an alternative to Jackett) (9653)
    • Added feature to test provider results (9698)

    Fixes

    • Fix email notifications for per show notifications with special chars (9652)
    • Fix adding an existing show did not run refresh from disk after (9694)
    • Fix filter displayShow episodes by overview status (9691)
    • Fix main page not reflecting correct 'next episode date' (9689)
    Source code(tar.gz)
    Source code(zip)
  • v0.5.13(Jun 16, 2021)

    Fixes

    • Add support for new synology download station api. Credits to Benjv. (9555)
    • Fix shows not being removed from UI. (9563)
    • Fix provider torrentday. Needs additional cookie cf_clearance. (9628)
    • Fix provider animebytes. Fixed issue with parsing releases with absolute episode numbering. (9620)
    • Fix transmission authentication. (9598)
    Source code(tar.gz)
    Source code(zip)
  • v0.5.12(May 7, 2021)

    New Features

    • Remove experimental feature flag for Download handler / advanced failed download handling
    • Remove experimental feature flag for Append (year) to each show title

    Improvements

    • Vueify schedule page (9403)

    Fixes

    • Fix download hander failed (9476)
    Source code(tar.gz)
    Source code(zip)
  • v0.5.11(Apr 17, 2021)

    New Features

    • Added new provicer TvRoad. (credits to IamMika23) (9424)

    Improvements

    • Vueify history page. (9201)
    • Nebulance: Prevent duplicate results for provider. (9333)
    • Add Cloudflare BFM detection. (9407)

    Fixes

    • AnimeBytes: Fix exception when processing multi-ep BD specials. (9396)
    • Fix issue with sending torrents to Synology downloadstation. (9401)
    • Fix a number of issues with trakt sync. (9319)
    • Fix shows enriched with wrong IMDB show data. (9435)
    • Fix configured provider ratio getting lost after restart. (9413)
    • Fix sending torrents to Synology Download Station from version 3.8.16.-3566. (credits to BenjV). (9401)
    Source code(tar.gz)
    Source code(zip)
The official source code repository for the calibre ebook manager

calibre calibre is an e-book manager. It can view, convert, edit and catalog e-books in all of the major e-book formats. It can also talk to e-book re

Kovid Goyal 14.1k Dec 27, 2022
A simple shared budget manager web application

I hate money I hate money is a web application made to ease shared budget management. It keeps track of who bought what, when, and for whom; and helps

The spiral project. 829 Dec 31, 2022
Automatic Movie Downloading via NZBs & Torrents

CouchPotato CouchPotato (CP) is an automatic NZB and torrent downloader. You can keep a "movies I want"-list and it will search for NZBs/torrents of t

CouchPotato 3.9k Jan 4, 2023
Automatic music downloader for SABnzbd

Headphones Headphones is an automated music downloader for NZB and Torrent, written in Python. It supports SABnzbd, NZBget, Transmission, µTorrent, De

null 3.2k Dec 31, 2022
This is your launchpad that comes with a variety of applications waiting to run on your kubernetes cluster with a single click

This is your launchpad that comes with a variety of applications waiting to run on your kubernetes cluster with a single click.

M. Rehan 2 Jun 26, 2022
Collect your thoughts and notes without leaving the command line.

jrnl To get help, submit an issue on Github. jrnl is a simple journal application for your command line. Journals are stored as human readable plain t

Manuel Ebert 31 Dec 1, 2022
Scan, index, and archive all of your paper documents

[ en | de | el ] Important news about the future of this project It's been more than 5 years since I started this project on a whim as an effort to tr

Paperless 7.8k Jan 6, 2023
Invenio digital library framework

Invenio Framework v3 Open Source framework for large-scale digital repositories. Invenio Framework is like a Swiss Army knife of battle-tested, safe a

Invenio digital repository framework 562 Jan 7, 2023
A Python library to manage ACBF ebooks.

libacbf A Python library to read and edit ACBF formatted comic book files and archives. XML Specifications here: https://acbf.fandom.com/wiki/Advanced

Grafcube 0 Nov 9, 2021
A :baby: buddy to help caregivers track sleep, feedings, diaper changes, and tummy time to learn about and predict baby's needs without (as much) guess work.

Baby Buddy A buddy for babies! Helps caregivers track sleep, feedings, diaper changes, tummy time and more to learn about and predict baby's needs wit

Baby Buddy 1.5k Jan 2, 2023
ProPublica's collaborative tip-gathering framework. Import and manage CSV, Google Sheets and Screendoor data with ease.

Collaborate This is a web application for managing and building stories based on tips solicited from the public. This project is meant to be easy to s

ProPublica 86 Oct 18, 2022
The open-source core of Pinry, a tiling image board system for people who want to save, tag, and share images, videos and webpages in an easy to skim through format.

The open-source core of Pinry, a tiling image board system for people who want to save, tag, and share images, videos and webpages in an easy to skim

Pinry 2.7k Jan 8, 2023
🗃 Open source self-hosted web archiving. Takes URLs/browser history/bookmarks/Pocket/Pinboard/etc., saves HTML, JS, PDFs, media, and more...

ArchiveBox Open-source self-hosted web archiving. ▶️ Quickstart | Demo | Github | Documentation | Info & Motivation | Community | Roadmap "Your own pe

ArchiveBox 14.8k Jan 5, 2023
Free and open-source digital preservation system designed to maintain standards-based, long-term access to collections of digital objects.

Archivematica By Artefactual Archivematica is a web- and standards-based, open-source application which allows your institution to preserve long-term

Artefactual 338 Dec 16, 2022
:books: Web app for browsing, reading and downloading eBooks stored in a Calibre database

About Calibre-Web is a web app providing a clean interface for browsing, reading and downloading eBooks using an existing Calibre database. This softw

Jan B 8.2k Jan 2, 2023
Agile project management platform. Built on top of Django and AngularJS

Taiga Backend Documentation Currently, we have authored three main documentation hubs: API: Our API documentation and reference for developing from Ta

Taiga.io 5.8k Jan 5, 2023
A collection of self-contained and well-documented issues for newcomers to start contributing with

fedora-easyfix A collection of self-contained and well-documented issues for newcomers to start contributing with How to setup the local development e

Akashdeep Dhar 8 Oct 16, 2021
Magic-Square - Creates a magic square by randomly generating a list until the list happens to be a magic square

Magic-Square Creates a magic square by randomly generating a list until the list happens to be a magic square. Done as simply as possible... Frequentl

Nick 2 Jan 1, 2022
Using machine learning to predict and analyze high and low reader engagement for New York Times articles posted to Facebook.

How The New York Times can increase Engagement on Facebook Using machine learning to understand characteristics of news content that garners "high" Fa

Jessica Miles 0 Sep 16, 2021
Watches your earnings on EarnApp and notifies you when you earned balance or received an payout.

EarnApp-Earning-Monitor Watches your earnings on EarnApp and notifies you when you earned balance or received an payout. Installation Install Python3

Yariya 21 Oct 17, 2022