- Fixed an issue where the update message from version
2.5.4
to2.5.5
would still appear after updating. (Issue #73)
- Added new
timeout
setting to the config file, for the option to change the timeout for all / specific scrapers. See the updated example config for usage examples. (Issue #71)
- Default timeout for requests has been updated from 5 seconds to 10 seconds. (Issue #71)
- Fixed an issue where if the
logs
directory does not exist, the folder isn't created, causing an error. (Issue #67) - Fixed an issue where the summary log of successful and failed download would not account for failed downloads. (Issue #68)
- Added new
proxy
andverify-ssl
settings to the config file, for allowing the usage of a proxy when making requests, and disabling SSL verification. See the updated example config for usage examples.
subtitles.rtl-languages
config setting is no longer supported, and its values are now hardcoded and can't be modified.
- Fixed an issue where in some cases,
STYLE
blocks would repeat throughout the subtitles file, and cause inaccurate cue count. (Issue #63) - Fixed an issue where the WebVTT Style blocks would have their
STYLE
tag replaced with aREGION
tag in downloaded subtitles. - Fixed an issue where an empty playlist (with a size of 0 bytes) would be reported as a valid playlist with no matching subtitles. (Issue #65)
- Fixed an issue where errors would not be handled gracefully, and cause an unexpected crash. (Issue #55)
- Fixed an issue where source abbreviation was missing from file names of downloaded subtitles files. (Issue #53)
- Added logs. See the new Logs section in the README for more information.
- Added a new
subtitles.webvtt.subrip-alignment-conversion
config setting (which is off by default), which if set to true, will add the{\an8}
tag at the start of lines that are annotated at the top (with theline:0.00%
WebVTT setting) when converting to SubRip. (Issue #35) - Implemented caching for AppleTV's storefront configuration data, which should reduce the amount of requests used when scraping multiple AppleTV URLs from the same storefront.
- Big backend changes to the structure of the code, mostly to improve modularity and allow for easier development in the future, and improve performance.
- Updated the CLI output to utilize logs and print with colors according to log-level.
- Improved error handling in some cases where an invalid URL is used.
- Fixed an issue where if a movie is a pre-order with a set release date, a message with availability date wouldn't be printed in some cases.
- Fixed an issue where some AppleTV URLs (or iTunes links that refer to such URLs) would not be matched in some cases, resulting in a "No matching scraper was found..." error. (Issue #46)
- Improved error handling for subtitles downloads. (Issue #44)
- Fixed an issue where using a ZIP file, and saving to a different drive than the OS drive would fail. (Issue #43)
- Fixed an issue where saving subtitles to a different drive than the OS drive would fail. (Issue #41)
- Fixed AppleTV URLs with multiple iTunes playlists causing an error. (Issue #42)
- iTunes links will now redirect to AppleTV and scrape metadata from there, as AppleTV has additional and more accurate metadata.
- Improved error messages to be more informative and case-specific:
- If a movie is a pre-order and has no available playlist, a proper error message will be printed with its release date (if available).
- If trying to scrape AppleTV+ content or series (which aren't currently supported), a proper error will be printed.
- A major refactor to the code, to make it more modular and allow for easier development of new features in the future.
- Multiple changes (with some breaking changes) to the config file:
- The
downloads.format
setting is deprecated, and replaced by thesubtitles.convert-to-srt
setting. - The
downloads.merge-playlists
setting is deprecated, with no replacement.
If an AppleTV link has multiple playlists, they will be downloaded separately. - The
downloads.user-agent
setting is deprecated, with no replacement. The user-agent used by the scraper, will be used for downloads as well. - The
scraping
config category no longer exists, and is replaced by ascrapers
category, which has a sub-category with settings for each scraper (for example, ascrapers.itunes
sub-category).
- The
- Old config paths that were previously deprecated are no longer supported and will no longer work. The updated config settings can be found in the example config.
- This release includes a major rewrite of the code, which may have introduced new bugs to some core features. If you encountered one, please report it.
- Minimum supported Python version bumped to 3.8.
beautifulsoup4
andlxml
packages are no longer required or used.
- Added release year to zip file names. (Issue #31)
- If the generated path for a zip file is already taken, a number will be appended at the end of the file's name to avoid overwriting. (Issue #34)
- Fixed an exception being thrown if the path to downloads folder on the config is invalid.
- Fixed AppleTV URLs without a movie title not working. (Issue #29)
- Fixed issues for movies with specific characters (
/
,:
), and Windows reserved names in their title. (Issue #30)
- Changed config paths to the following locations:
Windows:%USERPROFILE%\.isubrip\config.json
Linux / macOS:$HOME/.isubrip/config.json
More info under Notes (and examples on the README file).
- Fixed an error with AppleTV links for movies released before 1970 (Epoch time). (Issue #21)
- Fixed config file not being loaded on macOS. (Issue #22)
- Fixed AppleTV scraping from the same storefront. (Issue #24)
- Running iSubRip with a config file in the previous locations will still work, but support for them will be dropped in the future.
xdg
package is no longer required or used.
- Improved AppleTV scraping to utilize AppleTV's API instead of scraping HTML.
- Fixed HTML escaped (for non-English) characters not matching AppleTV's URL RegEx. (Issue #15)
- AppleTV movie URLs are now supported.
- Added a
merge-playlists
config option to treat multiple playlists that can be found on AppleTV pages as one (more info on the example config).
- Improved subtitles parser to perserve additional WebVTT data.
- The config value
user-agent
underscraping
is now separated to 2 different values:itunes-user-agent
, andappletv-user-agent
.
- Fixed movie titles with invalid Windows file-name characters (example: '?') causing a crash. (Issue #14)
- Fixed iTunes store URLs without a movie title not working. (Issue #13)
- Replaced FFmpeg usage for parsing with a native subtitles parser (downloads are much faster now).
- Added a
remove-duplicates
configuration remove duplicate paragraphs. (Was previously automatically fixed by FFmpeg.) - Added
fix-rtl
andrtl-languages
configuration to fix RTL in RTL-languaged subtitles (has to be enabled in the config).
- FFmpeg is no longer required or used, and all FFmpeg-related settings are deprecated.
fix-rtl
is off by default and has to be enabled on the config. Check theconfig.toml
example file for more info.- Minimum supported Python version bumped to 3.7.
- Fixed subtitles being downloaded twice, which causes long (doubled) download times.
- Fixed a compatibility issue with Python versions that are lower than 3.10.
- Fixed downloading subtitles to an archive file not working properly.
- Fixed a bug where the code continues to run if subtitles download failed, as if the download was successful.
- A note will be printed if a newer version is available on PyPI (can be disabled on the config).
- Config will now be checked for errors before running.
- Big improvements to scraping, which is now far more reliable.
- Added release year to subtitles file names.
- Config structure slightly changed.
- If you use a user-config, it might need to be updated to match the new config structure. Example of an updated valid structure can be found here.
The script is now a Python package that can be installed using pip.
- Added a config file for changing configurations. (Example can be found here)
- Added an option to choose subtitles format (vtt / srt).
- Added an option to choose whether to zip subtitles files or not.
- Multiple links can be passed for downloading subtitles for multiple movies one after another.
- Temporary files are automatically removed if the script stops unexpectedly.
- A complete code overhaul from a single python script file to a package, while utilizing OOP and classes.
- Improved scraping algorithm for faster playlist scraping.
- FFmpeg will now automatically overwrite existing subtitles with the same file name.
- Fixed a bug where in some cases, no subtitles were found since the title has HTML escaped characters, which causes bad matching when checking if a valid playlist was found.
- Fixed an issue where in some cases subtitles won't download when using
DOWNLOAD_FILTER
because of letter casing not matching. - Fixed and improved error handling, and added more descriptive error messages. (Issue #9)
- Fixed subtitles for some movies not being found after previous release. (Issue #8)
- Fixed the script not working after iTunes webpage data orientation slightly changed. (Issue #6 , Issue #7)
- Fixed a bug where subtitles for suggested movies are being downloaded if movie's main playlist is not found. (Issue #2)
- Added a "cc" tag to closed-caption subtitles' filename to avoid a collision with non-cc subtitles. (Issue #3)
- Added a User-Agent for sessions to avoid being blocked.
DOWNLOAD_FILTER
is no longer case-sensitive.- Added
lxml
torequirements.txt
. (Issue #1)
- Fixed the script not working after iTunes webpage data orientation slightly changed. (Issue #1)
- Improved error handling.
- Fixed file name formatting.
- Initial release.