Releases: meeb/tubesync
Releases · meeb/tubesync
v0.15.12
What's Changed
- Fix remuxing for combined formats by @tcely in #1322
- Auto detect source type by @StefanCodes in #1325
- Add
hooktoSponsorBlockcategories by @tcely in #1323 - Report the
denoversion by @tcely in #1328 - Fix Dockerfile syntax by @tcely in #1329
- Refresh formats before manually downloading again by @tcely in #1330
- Display language codes for matched formats by @tcely in #1331
- Prefer the default combined format by @tcely in #1332
- Include QuickJS by @tcely in #1333
- Show
qjs --helpoutput by @tcely in #1334 - Adjust the
QuickJScommand in Dockerfile by @tcely in #1335 - Stop bundling
denoin the image by @tcely in #1336 - Migrate
sleep_interval_requeststo settings by @tcely in #1339 - Sleep before subtitle downloads by @tcely in #1338
- Release for 2025-012 by @tcely in #1343
New Contributors
- @StefanCodes made their first contribution in #1325
Full Changelog: v0.15.11...v0.15.12
v0.15.11
v0.15.10
v0.15.9
What's Changed
- Avoid pickling error in the informational data by @tcely in #1260
- Do not rename the current
Media.media_fileby @tcely in #1263 - Reduce idle connections on PostgreSQL server by @tcely in #1265
- Fix the logger import by @tcely in #1266
- Set
update_selftoFalseinstead ofNoneby @tcely in #1267 - Convert
yt_dlp.utils.LazyListusingexhaustmethod 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_atfor source error by @tcely in #1277 - Remove
background_taskfrom reset-tasks.py by @tcely in #1278 - Remove
background_taskfrom 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_minby @tcely in #1290 - Adjust clients for the new
defaultby @tcely in #1291 - Migrate
missing_potto settings by @tcely in #1296 - Preserve task history for rescheduled tasks by @tcely in #1298
- Set
Media.downloaded_fpsto 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
TaskHistoryrows by @tcely in #1163 - Update other-database-backends.md by @tcely in #1169
- Add SQLite configuration tweaks by @tcely in #1168
- Use
common.timestampfor cache plugins by @tcely in #1171 - Use
TaskHistoryfor reporting about tasks by @tcely in #1170 - Make
wait_for_media_premierea placeholder task by @tcely in #1172 - Accept unmapped tasks in all the sections by @tcely in #1174
- Simplify
map_task_to_instanceby @tcely in #1175 - Convert
save_all_media_for_sourcetask by @tcely in #1173 - Adjust the running tasks query set by @tcely in #1178
- Use a
datetime.datetimeinstead of atupleby @tcely in #1179 - Actually hold the lock while indexing by @tcely in #1181
- Do not schedule a duplicate
save_all_media_for_sourcetask by @tcely in #1182 - Convert
delete_all_media_for_sourcetask 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.acquiredproperty 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.acquiredproperty setter by @tcely in #1191 - Use an already verified and extracted docker image for
s6-overlayby @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_formatstasks by @tcely in #1197 - Revoke new duplicate tasks by @tcely in #1198
- Use
download_media_imagefunction inMedia.copy_thumbnailby @tcely in #1200 - Remove old
download_media_thumbnailtask by @tcely in #1201 - Disable a patch that will break in the next release by @tcely in #1203
- Provide all keys to
formatby @tcely in #1206 - Remove old
download_mediatask 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
runningfunction toTaskHistory.objectsby @tcely in #1210 - Add a
reschedulefunction by @tcely in #1211 - Update
TaskHistory.scheduled_atwhen 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_atwhen a task is rescheduled also by @tcely in #1216 - Use
download_source_imagesafter editing aSourceby @tcely in #1219 - Enforce unique for
TaskHistory.task_idby @tcely in #1221 - Remove the old
index_source_tasktask by @tcely in #1217 - Avoid the signal games for
Media.saveby @tcely in #1224 - Avoid the
source_post_savesignal when indexing by @tcely in #1226 - Remove
background_taskcompletely by @tcely in #1223 - Reschedule using
TaskHistoryby @tcely in #1229 - Set
locking_modetoNORMALexplicitly by @tcely in #1231 - Replace
get_channel_image_infowithget_image_infoby @tcely in #1230 - Add
remove_duplicated_rowsfunction beforetask_idunique 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.jsonfile by @tcely in #1240 - Write metadata to
.info.jsonwhen requested by @tcely in #1241 - Preserve
show_skippedwhen 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_UPGRADEsetting 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_ENQUEUEDexception 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_responseto clean up the debug logs by @tcely in #1060 - Use
extractor_keyas it is more stable by @tcely in #1061 - Save accurate
requested_formatsby @tcely in #1062 - Ensure the
tubesync-nginxstage is working by @tcely in #1063 - Install using
uvby @tcely in #1064 - Ensure that we can use
piplater by @tcely in #1065 - Install using
uv pip installby @tcely in #1066 - Do not fail to hard link and produce a warning by @tcely in #1067
- Move the copied
HOMEto thetmpfsby @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.publishedisNoneby @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.utilsby @tcely in #1038 - Enable
editorin the container by @tcely in #1087 - Check for unresolved Python shared libraries by @tcely in #1091
- Queues managed with
django-hueyby @tcely in #1075 - Rewrite indexing task by @tcely in #1078
- Use
timedeltato avoidValueErrorby @tcely in #1096 - Add
timedeltafilter 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 pulloperations from info by @tcely in #1088 - Handle
thumbnailandnfooperations 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-overlayto3.2.0.3by @tcely in #1106 - Add
studioandtagto create-tvshow-nfo.py by @tcely in #1105 - Clean up filtering of empty lines by @tcely in #1107
- Set
fuzzy_pathsto an empty list by default by @tcely in #1110 - Migrate some tasks to
hueyby @tcely in #1109 - Patch
huey.CancelExecutionby @tcely in #1122 - Reduce thumbnail download tasks by @tcely in #1113
- Migrate
check_source_directory_existstohueyby @tcely in #1116 - Add the
h_q_reset_tasksfunction by @tcely in #1114 - Migrate
rename_mediatohueyby @tcely in #1119 - Create a path around
download_media_thumbnailby @tcely in #1123 - Teach
wait_for_errorsabouthueyresults by @tcely in #1120 - Support consumer threads by @tcely in #1118
- Schedule indexing tasks using
hueyby @tcely in #1115 - Migrate
migrate_to_metadatatohueyby @tcely in #1121 - Move
refresh_formatsfunction 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
Mediainstance to prevent racing by @tcely in #1131 - Show the targeted schedule on the sources page by @tcely in #1133
- Add
allow_unicode=Truetoslugifyby @tcely in #1135 - Do not store
Trueas a result by @tcely in #1132 - Clean up
sys.stdoutfor messages fromlocal_settings.pyby @tcely in #1136 - Do not store keys that only return
Noneanyway by @tcely in #1137 - Add
wait_for_database_queuetasks to the web UI by @tcely in #1140 - Add a convenience format:
yyyy_0mm_ddby @tcely in #1139 - Turn off
ignoreerrorsby @tcely in #1142 - Silence a silly logged message by @tcely in #1143
- Stop mentioning
TUBESYNC_WORKERSby @tcely in #1144 - Ignore
TUBESYNC_WORKERSentirely by @tcely in #1145 - Clean up dynamic locks before indexing a source by @tcely in #1147
- Create
yt_dlp_pluginsby @tcely in #1146 - [TubeSync-fs] Check for
cookiefileoption directly by @tcely in #1149 - [TubeSync-huey] Create cache-huey.py by @tcely in #1150
- Move more work into
hueyqueues 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_crawlisNoneby @tcely in #1157 - Force
media_source.target_scheduleto 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 checkby @tcely in #1041 - Remove the unused
getpot_bgutil_scriptplugin by @tcely in #1045 - Improve
Source.index_mediafunction by @tcely in #1044 - Wait for HTTP 429 errors by @tcely in #1046
- Downloading media fixes by @tcely in #1048
- Fixes for
ruff checkoutput by @tcely in #1042 - Tweaks for recent changes by @tcely in #1049
- Log more human-friendly output by @tcely in #1050
- Close the
trtag on the next line by @tcely in #1053 - Renaming was removing too many extensions by @tcely in #1054
- Fail when
rufffinds errors by @tcely in #1055 - Tighten
errors_qsby checkinglast_errorby @tcely in #1056 yt-dlp-get-potwas recently superceded by a framework inyt-dlpby @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}/Refreshby @tcely in #946 - Import the
check_source_directory_existstask by @tcely in #947 - Refactor
make_requestby @tcely in #948 - Transactions are tricky for deleting sources by @tcely in #861
- Update README.md by @tcely in #952
- Remove
BACKGROUND_TASK_ASYNC_THREADSadjustment by @tcely in #953 - Try
refresh_formatsforNoFormatExceptionby @tcely in #956 - Fix the
can_downloadcalculation 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_heighton smaller images by @tcely in #957 - Create the
django_queryset_generatorfunction by @tcely in #959 - Support
use_chunked_fetchwithdjango_queryset_generatorby @tcely in #963 - Fix
dumpdataoutput by @tcely in #965 - Update README.md by @tcely in #967
- Adjust the relative link in README.md by @tcely in #969
- Special case
sqlitefor database locking by @tcely in #944 - Add /etc/apt/apt.conf.d/docker-disable-pkgcache by @tcely in #971
- Use
Media.has_metadatainMedia.savefunction by @tcely in #973 - Remove extra white-space by @tcely in #975
- Squash old migrations for
syncby @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
KeyErrorwhen deleting keys by @tcely in #993 - Remove the side-effect from
Media.metadata_loadsby @tcely in #994 - Better result when
Media.new_metadatadoes 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-redownloaderrors 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_potformats in testing by @tcely in #1004 - Replace
nginxwithopenrestyby @tcely in #1006 - Copy updated thumbnail next to media by @tcely in #1007
- Handle
AssertionErrorfor timestamp by @tcely in #1008 - Show migrations when debugging by @tcely in #1009
- Add
NoThumbnailExceptionby @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_DBinstead ofinit.sqlby @tcely in #1022 - Stop services before database steps by @tcely in #1023
- Add
music.youtube.comto 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
OSErrorwhen checking for existing media files by @tcely in #1029 - Create a media entry after deletion by @tcely in #1031
- Let
missing_potformats download after testing by @tcely in #1017 - Use a widget to select
whenin 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
ytoptsby @tcely in #664 - Use strings for
ytoptspaths 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_DIRby @tcely in #679 - Rework
sponsorblock_categoriesandCommaSepChoiceFieldby @tcely in #680 - Fix the misspelled
expected_categoriesby @tcely in #681 - Also check for
media.media_file.nameby @tcely in #684 - Do not store duplicate categories by @tcely in #687
- Wait for video premiere by @tcely in #685
- Turn off the
text-transformwith a class by @tcely in #686 - Remove code that didn't work by @tcely in #688
- Bump
ffmpegby @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
libopusand speed up VP9 encoding by @tcely in #697 - Add status text to the download task by @tcely in #706
- Do not schedule additional
download_mediatasks by @tcely in #707 - Try to include
timestampby @tcely in #704 - Rename the internal function by @tcely in #709
- Control
writethumbnailwithembed_thumbnailby @tcely in #712 - Stop when the paths match by @tcely in #699
- Remove subtitles also by @tcely in #700
- Allow
exec_cmddictionary to be configured in settings by @tcely in #701 - Remove unused
filter_mediaby @tcely in #702 - Deduplicated
fieldsby @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