Releases: meeb/tubesync
Releases · meeb/tubesync
v0.15.9
What's Changed
- Avoid pickling error in the informational data by @tcely in #1260
- Do not rename the current
Media.media_file
by @tcely in #1263 - Reduce idle connections on PostgreSQL server by @tcely in #1265
- Fix the logger import by @tcely in #1266
- Set
update_self
toFalse
instead ofNone
by @tcely in #1267 - Convert
yt_dlp.utils.LazyList
usingexhaust
method by @tcely in #1269 - Skip over media that is being indexed by @tcely in #1270
- Add additional player clients by @tcely in #1268
- Include more information when a key is missing by @tcely in #1274
- Use
start_at
for source error by @tcely in #1277 - Remove
background_task
from reset-tasks.py by @tcely in #1278 - Remove
background_task
from logger.py by @tcely in #1279 - Remove patches/background_task by @tcely in #1280
- Adjust a logged message by @tcely in #1281
- Clippy simply wanted to help by @tcely in #1282
- Upgrade Proof-of-Origin Token plugin by @tcely in #1283
- Increase Django patch level by @tcely in #1284
- Add Huey to notable software by @tcely in #1288
- Select the current choice for
Source.filter_seconds_min
by @tcely in #1290 - Adjust clients for the new
default
by @tcely in #1291 - Migrate
missing_pot
to settings by @tcely in #1296 - Preserve task history for rescheduled tasks by @tcely in #1298
- Set
Media.downloaded_fps
to an integer by @tcely in #1299 - Release for 2025-009 by @tcely in #1285
Full Changelog: v0.15.8...v0.15.9
v0.15.8
What's Changed
- Use a much longer timeout by @tcely in #1164
- Huey tweaks by @tcely in #1167
- Write
TaskHistory
rows by @tcely in #1163 - Update other-database-backends.md by @tcely in #1169
- Add SQLite configuration tweaks by @tcely in #1168
- Use
common.timestamp
for cache plugins by @tcely in #1171 - Use
TaskHistory
for reporting about tasks by @tcely in #1170 - Make
wait_for_media_premiere
a placeholder task by @tcely in #1172 - Accept unmapped tasks in all the sections by @tcely in #1174
- Simplify
map_task_to_instance
by @tcely in #1175 - Convert
save_all_media_for_source
task by @tcely in #1173 - Adjust the running tasks query set by @tcely in #1178
- Use a
datetime.datetime
instead of atuple
by @tcely in #1179 - Actually hold the lock while indexing by @tcely in #1181
- Do not schedule a duplicate
save_all_media_for_source
task by @tcely in #1182 - Convert
delete_all_media_for_source
task by @tcely in #1180 - Save Python some work sorting tasks by @tcely in #1183
- Font awesome 5 upgrade by @tcely in #1184
- Font awesome 6 upgrade by @tcely in #1185
- Add the
TaskLock.acquired
property by @tcely in #1186 - Better coordination between queues using locking by @tcely in #1188
- Display the priority and queue data for scheduled tasks by @tcely in #1189
- Show all the scheduled tasks when debugging by @tcely in #1190
- Fix the
TaskLock.acquired
property setter by @tcely in #1191 - Use an already verified and extracted docker image for
s6-overlay
by @tcely in #1177 - Tweaks to tasks for consistency by @tcely in #1192
- Download other formats on failure by @tcely in #1195
- Clean up all the old tasks history results by @tcely in #1196
- Revoke duplicate
refresh_formats
tasks by @tcely in #1197 - Revoke new duplicate tasks by @tcely in #1198
- Use
download_media_image
function inMedia.copy_thumbnail
by @tcely in #1200 - Remove old
download_media_thumbnail
task by @tcely in #1201 - Disable a patch that will break in the next release by @tcely in #1203
- Provide all keys to
format
by @tcely in #1206 - Remove old
download_media
task by @tcely in #1199 - Manage the tasks databases better by @tcely in #1207
- Enforce foreign key constraints by @tcely in #1208
- Use connection pooling for PostgreSQL by @tcely in #1209
- Move the
running
function toTaskHistory.objects
by @tcely in #1210 - Add a
reschedule
function by @tcely in #1211 - Update
TaskHistory.scheduled_at
when scheduling tasks by @tcely in #1212 - Move the highest priority to the front of the list by @tcely in #1213
- Dynamic pool size for PostgreSQL by @tcely in #1214
- Calculate a more accurate number of threads by @tcely in #1215
- Set
TaskHistory.scheduled_at
when a task is rescheduled also by @tcely in #1216 - Use
download_source_images
after editing aSource
by @tcely in #1219 - Enforce unique for
TaskHistory.task_id
by @tcely in #1221 - Remove the old
index_source_task
task by @tcely in #1217 - Avoid the signal games for
Media.save
by @tcely in #1224 - Avoid the
source_post_save
signal when indexing by @tcely in #1226 - Remove
background_task
completely by @tcely in #1223 - Reschedule using
TaskHistory
by @tcely in #1229 - Set
locking_mode
toNORMAL
explicitly by @tcely in #1231 - Replace
get_channel_image_info
withget_image_info
by @tcely in #1230 - Add
remove_duplicated_rows
function beforetask_id
unique change by @tcely in #1234 - Add basic search query support by @tcely in #1232
- Fix the indexing task function and mapping by @tcely in #1227
- Use media redownload to implement manual downloads by @tcely in #1228
- Continue using the old context name by @tcely in #1235
- Fix task not found always being returned by @tcely in #1236
- Log any index errors by @tcely in #1238
- Use the last page for higher page numbers by @tcely in #1239
- Import metadata from a
.info.json
file by @tcely in #1240 - Write metadata to
.info.json
when requested by @tcely in #1241 - Preserve
show_skipped
when searching again by @tcely in #1243 - Use a base class for our additional functions by @tcely in #1244
- Use a rename task per source by @tcely in #1246
- Update task block in media-item.html by @tcely in #1247
- Upgrade downloaded when a better format is available by @tcely in #1248
- Add the
VIDEO_HEIGHT_UPGRADE
setting by @tcely in #1249 - Metadata for index-only sources should go last by @tcely in #1250
- Faster search queries by @tcely in #1242
- Ignore tasks where the first argument is not a UUID by @tcely in #1252
- Rework
SIGNAL_ENQUEUED
exception handling by @tcely in #1253 - Preserve the old mtime behavior for new versions by @tcely in #1258
- Release for 2025-008 by @tcely in #1202
Full Changelog: v0.15.7...v0.15.8
v0.15.7
What's Changed
- Use
filter_response
to clean up the debug logs by @tcely in #1060 - Use
extractor_key
as it is more stable by @tcely in #1061 - Save accurate
requested_formats
by @tcely in #1062 - Ensure the
tubesync-nginx
stage is working by @tcely in #1063 - Install using
uv
by @tcely in #1064 - Ensure that we can use
pip
later by @tcely in #1065 - Install using
uv pip install
by @tcely in #1066 - Do not fail to hard link and produce a warning by @tcely in #1067
- Move the copied
HOME
to thetmpfs
by @tcely in #1068 - Make the directory before using it by @tcely in #1070
- Targeted indexing schedule by @tcely in #1073
- Set a value when
Media.published
isNone
by @tcely in #1077 - Rename media files from all sources by default by @tcely in #938
- Use
datetime.weekday()
function by @tcely in #1082 - Push missing release tags from previous workflow failures by @tcely in #1085
- Create .editorconfig by @tcely in #1086
- Migrate functions from
sync.utils
by @tcely in #1038 - Enable
editor
in the container by @tcely in #1087 - Check for unresolved Python shared libraries by @tcely in #1091
- Queues managed with
django-huey
by @tcely in #1075 - Rewrite indexing task by @tcely in #1078
- Use
timedelta
to avoidValueError
by @tcely in #1096 - Add
timedelta
filter by @tcely in #1097 - Resolve bundles in restart_services.sh by @tcely in #1099
- Re-work the re-use of old metadata after deletion by @tcely in #1093
- Remove unnecessary dependencies by @tcely in #1092
- Create youtube-pot.md by @tcely in #1100
- Remove the
docker pull
operations from info by @tcely in #1088 - Handle
thumbnail
andnfo
operations inside media by @tcely in #1089 - Display locked time for tasks by @tcely in #1102
- Create create-tvshow-nfo.py by @tcely in #1103
- fixup: indentation was wrong on this return by @tcely in #1104
- Upgrade
s6-overlay
to3.2.0.3
by @tcely in #1106 - Add
studio
andtag
to create-tvshow-nfo.py by @tcely in #1105 - Clean up filtering of empty lines by @tcely in #1107
- Set
fuzzy_paths
to an empty list by default by @tcely in #1110 - Migrate some tasks to
huey
by @tcely in #1109 - Patch
huey.CancelExecution
by @tcely in #1122 - Reduce thumbnail download tasks by @tcely in #1113
- Migrate
check_source_directory_exists
tohuey
by @tcely in #1116 - Add the
h_q_reset_tasks
function by @tcely in #1114 - Migrate
rename_media
tohuey
by @tcely in #1119 - Create a path around
download_media_thumbnail
by @tcely in #1123 - Teach
wait_for_errors
abouthuey
results by @tcely in #1120 - Support consumer threads by @tcely in #1118
- Schedule indexing tasks using
huey
by @tcely in #1115 - Migrate
migrate_to_metadata
tohuey
by @tcely in #1121 - Move
refresh_formats
function to media__tasks.py by @tcely in #1125 - Handle the signal sent when a consumer is terminated by @tcely in #1127
- Provide a string where it is expected by @tcely in #1129
- Add running tasks by @tcely in #1130
- Lock each
Media
instance to prevent racing by @tcely in #1131 - Show the targeted schedule on the sources page by @tcely in #1133
- Add
allow_unicode=True
toslugify
by @tcely in #1135 - Do not store
True
as a result by @tcely in #1132 - Clean up
sys.stdout
for messages fromlocal_settings.py
by @tcely in #1136 - Do not store keys that only return
None
anyway by @tcely in #1137 - Add
wait_for_database_queue
tasks to the web UI by @tcely in #1140 - Add a convenience format:
yyyy_0mm_dd
by @tcely in #1139 - Turn off
ignoreerrors
by @tcely in #1142 - Silence a silly logged message by @tcely in #1143
- Stop mentioning
TUBESYNC_WORKERS
by @tcely in #1144 - Ignore
TUBESYNC_WORKERS
entirely by @tcely in #1145 - Clean up dynamic locks before indexing a source by @tcely in #1147
- Create
yt_dlp_plugins
by @tcely in #1146 - [TubeSync-fs] Check for
cookiefile
option directly by @tcely in #1149 - [TubeSync-huey] Create cache-huey.py by @tcely in #1150
- Move more work into
huey
queues by @tcely in #1151 - Reorganize tasks by @tcely in #1153
- Create youtube-add-subscriptions.py by @tcely in #1155
- Create plex-notes.md by @tcely in #1154
- Better handling of missing tabs by @tcely in #1156
- Handle when
source.last_crawl
isNone
by @tcely in #1157 - Force
media_source.target_schedule
to have a value by @tcely in #1159 - Begin a common task history model by @tcely in #1124
- Record signal timing for tasks by @tcely in #1161
- Release for 2025-007 by @tcely in #1160
Full Changelog: v0.15.4...v0.15.7
v0.15.4
What's Changed
- Use Django 5.2 by @tcely in #1036
- Update release.yaml by @tcely in #1039
- Migrate task logic to models by @tcely in #1040
- Add Proof-of-Origin Token plugin framework by @tcely in #1005
- Do not upgrade to Django 5.3 automatically by @tcely in #1043
- Add a step for
ruff check
by @tcely in #1041 - Remove the unused
getpot_bgutil_script
plugin by @tcely in #1045 - Improve
Source.index_media
function by @tcely in #1044 - Wait for HTTP 429 errors by @tcely in #1046
- Downloading media fixes by @tcely in #1048
- Fixes for
ruff check
output by @tcely in #1042 - Tweaks for recent changes by @tcely in #1049
- Log more human-friendly output by @tcely in #1050
- Close the
tr
tag on the next line by @tcely in #1053 - Renaming was removing too many extensions by @tcely in #1054
- Fail when
ruff
finds errors by @tcely in #1055 - Tighten
errors_qs
by checkinglast_error
by @tcely in #1056 yt-dlp-get-pot
was recently superceded by a framework inyt-dlp
by @tcely in #1057- Create a release by @tcely in #1058
Full Changelog: v0.15.1...v0.15.4
v0.15.1
What's Changed
- POST to
/Items/{ID}/Refresh
by @tcely in #946 - Import the
check_source_directory_exists
task by @tcely in #947 - Refactor
make_request
by @tcely in #948 - Transactions are tricky for deleting sources by @tcely in #861
- Update README.md by @tcely in #952
- Remove
BACKGROUND_TASK_ASYNC_THREADS
adjustment by @tcely in #953 - Try
refresh_formats
forNoFormatException
by @tcely in #956 - Fix the
can_download
calculation code by @tcely in #958 - New models for metadata and formats by @tcely in #954
- Create restart_services.sh by @tcely in #951
- Adjust queue workers by @tcely in #933
- Add file renaming warning to README.md by @tcely in #935
- Do not call
resize_image_to_height
on smaller images by @tcely in #957 - Create the
django_queryset_generator
function by @tcely in #959 - Support
use_chunked_fetch
withdjango_queryset_generator
by @tcely in #963 - Fix
dumpdata
output by @tcely in #965 - Update README.md by @tcely in #967
- Adjust the relative link in README.md by @tcely in #969
- Special case
sqlite
for database locking by @tcely in #944 - Add /etc/apt/apt.conf.d/docker-disable-pkgcache by @tcely in #971
- Use
Media.has_metadata
inMedia.save
function by @tcely in #973 - Remove extra white-space by @tcely in #975
- Squash old migrations for
sync
by @tcely in #976 - Rewrite warning in README.md by @tcely in #977
- Update dependency in 0031_metadata_metadataformat.py by @tcely in #978
- Restore some of the individual migration files by @tcely in #981
- Indentation for models.py by @tcely in #982
- Add a post processor for after move by @tcely in #984
- Use the default locale before the new one is ready by @tcely in #985
- Squashed earlier migrations by @tcely in #987
- Restore all the individual files by @tcely in #989
- Expand resolution matching to include height by @tcely in #991
- Start using the new metadata models by @tcely in #968
- Use the actual model for data migration by @tcely in #992
- Ignore
KeyError
when deleting keys by @tcely in #993 - Remove the side-effect from
Media.metadata_loads
by @tcely in #994 - Better result when
Media.new_metadata
does not exist by @tcely in #995 - Use the length of the new metadata by @tcely in #996
- Add redownload thumb link by @tcely in #998
- Fix
media-thumb-redownload
errors by @tcely in #999 - Overwrite thumbnail files by @tcely in #1000
- Do not cache the blank thumbnail for so long by @tcely in #1001
- Save thumbnail when refreshing formats by @tcely in #1002
- Adjust metadata & media download delays by @tcely in #1003
- Include
missing_pot
formats in testing by @tcely in #1004 - Replace
nginx
withopenresty
by @tcely in #1006 - Copy updated thumbnail next to media by @tcely in #1007
- Handle
AssertionError
for timestamp by @tcely in #1008 - Show migrations when debugging by @tcely in #1009
- Add
NoThumbnailException
by @tcely in #1010 - Created fix-mariadb.py by @tcely in #1013
- Add more details about saving database entries by @tcely in #1016
- Remux video for combined format download by @tcely in #1021
- Use
POSTGRES_DB
instead ofinit.sql
by @tcely in #1022 - Stop services before database steps by @tcely in #1023
- Add
music.youtube.com
to the YouTube domains by @tcely in #1025 - Add a missing error message by @tcely in #1027
- Add a start link to scheduled tasks by @tcely in #1026
- Log
OSError
when checking for existing media files by @tcely in #1029 - Create a media entry after deletion by @tcely in #1031
- Let
missing_pot
formats download after testing by @tcely in #1017 - Use a widget to select
when
in the browser by @tcely in #1032 - Refactor models by @tcely in #1030
- Clean up extra metadata rows by @tcely in #1033
Full Changelog: v0.14.1...v0.15.1
v0.14.1
What's Changed
- Fix python version in manage.py by @michalmiddleton in #537
- Use YOUTUBE_DL_TEMPDIR setting by @tcely in #556
- Reworked Dockerfile by @tcely in #558
- Remove value from TARGETARCH by @tcely in #559
- Spelled firewall correctly by @tcely in #560
- Configure minimum permitted video height with VIDEO_HEIGHT_CUTOFF env var by @danielmawhirter in #557
- Refinements for Dockerfile by @tcely in #562
- Adjust to correct 60 fps case by @tcely in #569
- Accept '-' in sub_langs by @tcely in #573
- Simplify regex for sub_langs by @tcely in #574
- Handle STR0NNN in a generic way by @tcely in #571
- Sort video formats by height and bitrate by @tcely in #566
- Disable checking against days to keep by @tcely in #576
- Add Support for TUBESYNC_DIRECTORY_PREFIX Environment Variable by @jameswlane in #572
- Adjust days_to_keep logic by @tcely in #577
- Remove audio / video directory modification by @tcely in #578
- Simplify directory_path by @tcely in #579
- Remove unused timedelta import by @tcely in #585
- Use tempfile for write_text_file by @tcely in #587
- Remove forcejson option by @tcely in #589
- Switch to color option by @tcely in #590
- Use Path in file_is_editable by @tcely in #592
- Bump yt_dlp & ffmpeg by @tcely in #607
- Do not log download progress lines by default by @tcely in #600
- Remove duplicated ' to:' by @tcely in #602
- Cleanup removed media that has not been downloaded too by @tcely in #605
- Made messages more human friendly by @tcely in #606
- Use title from DB by @tcely in #604
- Only log new media by @tcely in #601
- Update ci.yaml by @tcely in #597
- Handle download_media_metadata task failures by @RichardHyde in #593
- Ignore case when checking the filter by @RichardHyde in #594
- Handle raise_no_formats exception by @tcely in #591
- Fix paths for when filename includes sub-directories by @tcely in #599
- Reduce image size and keep pycache in a volume by @tcely in #596
- Do not try to skip already skipped media by @tcely in #595
- Match another variation of the message by @tcely in #610
- Don't chmod a+r when it already has those permissions by @tcely in #611
- exec nginx so bash isn't still running by @tcely in #613
- Make better use of CPU cache with nginx by @tcely in #614
- Test and log ffmpeg version output earlier by @tcely in #615
- Simplify directory_path for Media by @tcely in #618
- Feature by @Makhuta in #617
- Multi-stage docker build for ffmpeg & s6-overlay by @tcely in #619
- Filter metadata to avoid storing excess text in the database table by @tcely in #612
- Dockerfile health check without the shell by @tcely in #620
- Avoid env for healthcheck by @tcely in #623
- Add environment variables for container by @tcely in #622
- Don't write 'None' in default rating by @tcely in #626
- Don't write zero into MPAA in .nfo by @tcely in #627
- Bump ffmpeg & yt-dlp by @tcely in #629
- Cache for pipenv & apt by @tcely in #630
- Update README.md by @FaySmash in #625
- Treat static_url the same as other URLs by @tcely in #635
- Create upgrade_yt-dlp.sh by @tcely in #628
- Pipefile -> Pipfile by @tcely in #636
- Update architectures FAQ by @tcely in #637
- Add youtube.com as a valid domain by @tcely in #638
- Automated channel_id extraction by @tcely in #640
- Better display for audio formats by @tcely in #643
- Report db.sqlite3 size on dashboard by @tcely in #580
- Display media we can't download as skipped by @tcely in #648
- Remove unnecessary spaces by @tcely in #651
- DRY {json,nfo,thumb}name functions by @tcely in #652
- Default to valid JSON by @tcely in #653
- Display language_code for audio formats by @tcely in #654
- Set a default nice level by @tcely in #656
- Download thumbnail and media at the same priority by @tcely in #650
- Rename files after a source format change by @tcely in #586
- Use TextChoices for SponsorBlock_Category by @tcely in #658
- Fix CommaSepChoiceField by @tcely in #657
- Use yt_dlp.get_postprocessors() by @tcely in #655
- Use a temporary directory per task by @tcely in #659
- Add
ytopts
by @tcely in #664 - Use strings for
ytopts
paths by @tcely in #666 - Fix log.debug() by @tcely in #667
- Fix filesizeformat prefixes by @tcely in #644
- Remove files in post_delete when Media is deleted by @tcely in #598
- Reorganize hooks by @tcely in #663
- Update local_settings.py.container by @tcely in #671
- Configure settings for this test by @tcely in #673
- Simply add the string we want by @tcely in #674
- Adjustments for downloading delays by @tcely in #672
- export
TUBESYNC_RESET_DOWNLOAD_DIR
by @tcely in #679 - Rework
sponsorblock_categories
andCommaSepChoiceField
by @tcely in #680 - Fix the misspelled
expected_categories
by @tcely in #681 - Also check for
media.media_file.name
by @tcely in #684 - Do not store duplicate categories by @tcely in #687
- Wait for video premiere by @tcely in #685
- Turn off the
text-transform
with a class by @tcely in #686 - Remove code that didn't work by @tcely in #688
- Bump
ffmpeg
by @tcely in #689 - Do not delete tasks that are currently running by @tcely in #665
- Rework download progress hook by @tcely in #691
- Remove existing (unlocked) tasks is safe to use by @tcely in #694
- Add more keys to filter by @tcely in #696
- Add & use functions from status classes by @tcely in #692
- Use
libopus
and speed up VP9 encoding by @tcely in #697 - Add status text to the download task by @tcely in #706
- Do not schedule additional
download_media
tasks by @tcely in #707 - Try to include
timestamp
by @tcely in #704 - Rename the internal function by @tcely in #709
- Control
writethumbnail
withembed_thumbnail
by @tcely in #712 - Stop when the paths match by @tcely in #699
- Remove subtitles also by @tcely in #700
- Allow
exec_cmd
dictionary to be configured in settings by @tcely in #701 - Remove unused
filter_media
by @tcely in #702 - Deduplicated
fields
by @tcely in https://github.com/meeb/tubesync/pu...
v0.13.7
What's Changed
- Use assertEqual as pluralized doesn't exist by @joestump in #513
- Improve skip filtering with regex invert and duration limits by @timwhite in #515
- Allow semi easy addition to filtering logic by @timwhite in #516
- Docker build caching by @timwhite in #517
- Add support for indexing Streams by @FaySmash in #523
New Contributors
- @joestump made their first contribution in #513
- @timwhite made their first contribution in #515
- @FaySmash made their first contribution in #523
Full Changelog: v0.13.6...v0.13.7
v0.13.6
Full Changelog: v0.13.5...v0.13.6
v0.13.5
Full Changelog: v0.13.4...v0.13.5
v0.13.4
What's Changed
- compress sync_media table for mariadb by @depuhitv in #443
- Added season and episode tags in NFO to get Jellyfin displaying correctly by @InterN0te in #448
- Update other-database-backends.md by @ShaneBridges1234 in #452
- Optimized source page and dashboard loading by @skayred in #460
- Following Delete files on disk #426 by @InterN0te in #450
- Delete files on disk by @sparklesmcfadden in #426
- Skip metadata and thumbnails if they are past the cutoff date by @geoah in #293
- Added an option to export channels thumbnails for Jellyfin by @InterN0te in #449
New Contributors
- @depuhitv made their first contribution in #443
- @InterN0te made their first contribution in #448
- @ShaneBridges1234 made their first contribution in #452
- @skayred made their first contribution in #460
- @geoah made their first contribution in #293
Full Changelog: v0.13.3...v0.13.4