Commit Graph
100 Commits
Author SHA1 Message Date
tcely bf0dcc631a Fixes from testing for wait_for_media_premiere 2025-02-03 11:33:56 -05:00
tcely b50477e536 Add minutes as a unit also 2025-02-03 10:22:38 -05:00
tcely c0f52ae12e We only need one waiting task per video 2025-02-03 00:09:59 -05:00
tcely b05d3854a1 Use repeat_until in the call 2025-02-02 23:58:09 -05:00
tcely a028b4ea26 Let the wait task go ahead first 2025-02-02 14:09:53 -05:00
tcely 89573e93f5 Add verbose_name for better display
Also, some code readability changes.
2025-02-02 13:49:25 -05:00
tcely deeb2f61a9 background has less documentation than I wanted 2025-02-02 13:00:30 -05:00
tcely 9e46b9f6d5 A first attempt at waiting for future videos 2025-02-02 12:29:36 -05:00
tcely 480d5dd891 Add wait_for_media_premiere task 2025-02-02 11:38:32 -05:00
tcely 12fc5e2842 Fix the misspelled expected_categories 2025-02-02 01:16:47 -05:00
tcely 9397ec7389 Add tests for sponsorblock_categories 2025-02-02 00:07:45 -05:00
tcely a06bd29f88 Do not uppercase the SponsorBlock categories
Avoid the `text-transform` on `label` by simply not using that tag.

Anyone who is better with CSS than I am, with an improved solution, is welcome to create a pull request.
2025-02-01 22:45:57 -05:00
tcely ae1042a3d0 Rework sponsorblock_categories and CommaSepChoiceField (#222)
This is a good checkpoint.

* Loading from the database and saving back to the database both work.

* The categories are displayed in the web user interface appropriately.

* Editing the `Source` from the web user interface is working.
2025-02-01 20:57:27 -05:00
tcely 3939616d31 export TUBESYNC_RESET_DOWNLOAD_DIR
We don't need to overcomplicate this.
`sh` and `bash` provide easy ways to set empty variables.
2025-02-01 19:54:49 -05:00
tcely da8aa06f27 Ensure MAX_RUN_TIME is sane
Try the user's value, but set it appropriately if that fails.

Background tasks will have a minimum of 10 minutes to finish.

Downloading tasks will, at a minimum, sleep up to 90 seconds between downloads.

Increasing the `MAX_RUN_TIME` will also increase the maximum amount of time to sleep between downloads.
2025-02-01 11:13:44 -05:00
tcely fefe1fbc4d Simply add the string we want
I must have been fixated on using `replace()`.
After already splitting the string, using the part we don't want seems silly.
2025-02-01 02:28:23 -05:00
tcely 07a82e6df3 Configure settings for this test
Otherwise, environment variables can cause the `unfiltered` and `filtered` responses to match.
This breaks the assumption that the asserts are depending upon.
2025-02-01 00:31:47 -05:00
tcely d1a76ac0d1 Adjust download delays
It turns out I was being wildly optimistic with my first guess at useful delays.
2025-01-31 09:14:09 -05:00
tcely 86c1a5fcde Remove duplicated settings and logic 2025-01-31 09:09:06 -05:00
tcely b66073dcd2 Add formulas to settings 2025-01-31 09:05:11 -05:00
tcely ec7c05d53f Update local_settings.py.container 2025-01-31 08:46:49 -05:00
tcely 2c9e70f8cd Update local_settings.py.container 2025-01-31 08:41:43 -05:00
tcely 60ee227caa Prefer display_id and fulltitle for logs 2025-01-30 21:22:10 -05:00
tcely 2b8fea103e Remove automatic_captions from debug log too 2025-01-30 20:57:32 -05:00
tcely cda3a485db Prettier logged messages 2025-01-30 20:51:22 -05:00
tcely 5dc3cc2564 Merge branch 'main' into patch-3 2025-01-30 20:21:39 -05:00
tcely 4a484d9814 Merge branch 'main' into patch-4 2025-01-30 20:15:27 -05:00
tcely 1705d48f1a common.logger imports logging first 2025-01-30 20:04:07 -05:00
tcely 5af916d335 Add log in the block that uses it 2025-01-30 19:50:56 -05:00
tcely 89c70ec782 Fix log.debug()
`common.logger` imports `settings`

Creating a circular dependency causes the failure to load this file from `tubesync/settings.py`.

Without the change to `DEBUG` from this file the log level is `INFO` instead of `DEBUG` so none of those messages were showing.
2025-01-30 19:45:26 -05:00
tcely 36814ddfcd fixup: quoting fun 2025-01-30 18:02:42 -05:00
tcely 0a39d96fc6 Add & use postprocessor_hook 2025-01-30 17:44:39 -05:00
tcely 005cd37fa7 Convert --sponsorblock-mark using yt-dlp
I shouldn't have tried this myself.

It's much more complicated than I originally thought.
2025-01-30 15:29:30 -05:00
tcely 1bbfed8e4d Don't embed spaces in keys 2025-01-30 14:40:03 -05:00
tcely 470dbf426e Parse the post processors strings already in use 2025-01-30 14:29:52 -05:00
tcely eb37df4e5b Merge branch 'main' into patch-5 2025-01-30 13:47:16 -05:00
tcely 8b102a3be6 Use strings for ytopts paths
The quick fixup works, this is simply cleaner.
2025-01-30 13:37:29 -05:00
tcely eaaa4365f6 Better handling of user specified post processors 2025-01-30 13:08:48 -05:00
tcely 3822c1a4f2 Add ytopts
These are all optimizations:
- `writethumbnail`: for EmbedThumbnail to use
- `check_formats`: to save requests
- `overwrites`: to keep the first version of the video
- sleep intervals to slow down our tasks only for video downloads
2025-01-29 21:13:17 -05:00
tcely 8019a94c46 Log failure to get hook status object 2025-01-29 18:45:45 -05:00
tcely 7a9ab47d9b fixup: missed a comma 2025-01-29 14:50:39 -05:00
tcely f59946e874 Cleanup youtube.py 2025-01-29 14:42:34 -05:00
tcely 0a8e95ce81 Create hooks.py 2025-01-29 14:13:05 -05:00
tcely b816eb3596 fixup: use the name attribute 2025-01-29 04:05:18 -05:00
tcely 78b9aadcbf Use a temporary directory per task
I am seeing multiple ffmpeg processes that mess each other up.

I do not know why this is happening yet, but for now let them operate in their own temporary directories.
2025-01-29 03:55:52 -05:00
tcely 3241f5dde6 Merge branch 'main' into issue-645-sponsorblock 2025-01-29 01:05:01 -05:00
tcely 24ac2e1aed Field expects verbose_name to be first, not separator 2025-01-29 00:23:02 -05:00
tcely f60c1d7b5b Move SponsorBlock_Category to fields.py 2025-01-28 21:53:42 -05:00
tcely 2b5ad21b20 Use TextChoices for SponsorBlock_Category 2025-01-28 20:37:32 -05:00
tcely e3501fe77a Fix CommaSepChoiceField
Using the separator that was chosen is the biggest fix.
2025-01-28 19:12:56 -05:00
tcely e59ba88e4e Add default values for the new settings 2025-01-28 16:29:45 -05:00
tcely d9c73d3dd7 Add new container settings
- TUBESYNC_RENAME_ALL_SOURCES: True or False
- TUBESYNC_RENAME_SOURCES: A comma-separated list of Source directories
2025-01-28 16:28:21 -05:00
tcely bf7127b973 Schedule the rename task when only the settings allow it 2025-01-28 16:19:17 -05:00
tcely 0695036610 Tweak the behavior of post processors 2025-01-28 01:45:45 -05:00
tcely 803319fe9f Let deepcopy do more work for us 2025-01-28 01:00:35 -05:00
tcely b40626f9dc Guess at ffmpeg options based on filename 2025-01-27 20:24:23 -05:00
tcely d34e1a204e Set a default nice level
Now that SponsorBlock is running, these jobs are using significant CPU resources.

Setting a nice level to let other things run better while `ffmpeg` is running seems wise.
2025-01-27 16:12:52 -05:00
tcely 133f08bd86 Hide format_note for combined audio / video 2025-01-27 15:17:39 -05:00
tcely bb226d4bc1 Made the output more friendly
- Humanize the Hz number 
- Do not output '@Nonek' for combined audio / video
2025-01-27 15:08:24 -05:00
tcely d2641c39cd Add asr to parsed formats 2025-01-27 14:34:10 -05:00
tcely ec16e4c54d Use the parsed formats 2025-01-27 14:31:16 -05:00
tcely eb27bf1583 Only save() the current Media 2025-01-27 13:17:16 -05:00
tcely d160a043e5 Use yt_dlp.get_postprocessors() 2025-01-27 12:45:32 -05:00
tcely 8a3a7aa333 Display language_code for audio formats 2025-01-27 03:50:42 -05:00
tcely 9fc773b5c0 Add language_code from response 2025-01-27 03:43:56 -05:00
tcely 09ecbf210e Default to valid JSON
This prevents useless logged errors when there is no metadata available yet.
2025-01-27 02:57:47 -05:00
tcely a44e856378 Merge branch 'main' into rename-files-with-source-format-issue-185 2025-01-26 10:17:12 -05:00
tcely bcbafaf842 Remove directory manipulation
Added a comment about why these directories aren't matching.
2025-01-26 07:54:14 -05:00
tcely 7b1aedf7ae Put os.path.basename() back
Without this the subdirectory from `media_format` is doubled.
2025-01-26 07:11:30 -05:00
tcely fe4f6dd6b8 DRY {JSON,nfo,thumb}name functions 2025-01-25 22:26:39 -05:00
tcely 31e25eb22b Remove unnecessary spaces 2025-01-25 20:21:59 -05:00
tcely 7169ba5865 Remove unnecessary spaces 2025-01-25 20:14:46 -05:00
tcely 32fad91401 Remove unnecessary spaces 2025-01-25 20:12:55 -05:00
tcely de1490c416 Remove unnecessary spaces 2025-01-25 20:11:19 -05:00
tcely b319101c70 Remove unnecessary spaces 2025-01-25 20:08:10 -05:00
tcely 69e895818e Drop the thumbnail task if media downloaded first 2025-01-25 19:46:58 -05:00
tcely fe39717985 Change media download priority 2025-01-25 19:23:52 -05:00
tcely 3b20f07450 Try to download thumbnail before copy 2025-01-25 19:12:36 -05:00
tcely 56e1aae5cd Simplify get_queryset 2025-01-25 09:46:03 -05:00
tcely 41c1b74c75 Split the string ourselves
I don't know what I thought replace did, but the third argument is a count, not a start.
2025-01-25 05:41:34 -05:00
tcely 0c5836d466 Remove unused stringfilter 2025-01-25 05:22:57 -05:00
tcely aa493208e2 Restrict replacement to the end of the string 2025-01-25 05:20:14 -05:00
tcely 42bf4d2aac Remove fixB filter 2025-01-24 12:22:03 -05:00
tcely f109400263 Use bytesformat instead 2025-01-24 12:19:07 -05:00
tcely 840893c962 Use bytesformat instead 2025-01-24 12:15:19 -05:00
tcely 09649a3a58 Use fixB for other filesizeformat uses 2025-01-24 11:51:52 -05:00
tcely f9c1cc28d8 Use fixB filter 2025-01-24 11:44:22 -05:00
tcely 22cec87636 Add fixB filter 2025-01-24 11:37:51 -05:00
tcely 4e710f503a Create filters.py 2025-01-24 11:15:00 -05:00
tcely 1bd2e38196 Create templatetags/__init__.py 2025-01-24 10:06:24 -05:00
tcely e16f6bb86a Display database_filesize only if set 2025-01-24 09:26:04 -05:00
tcely b65ecc43ff Pass raw bytes count as database_filesize 2025-01-24 09:20:12 -05:00
tcely ee303c638b Display database_filesize 2025-01-24 09:14:53 -05:00
tcely d4a5a78831 Display format_note after audio-only formats 2025-01-24 08:26:19 -05:00
tcely 3d148fc5aa Return format_note also 2025-01-24 08:22:46 -05:00
tcely ed381715b5 Fail to previous behavior 2025-01-22 21:09:03 -05:00
tcely fb87b54300 channel_id is the only available key 2025-01-22 20:59:21 -05:00
tcely 25892388a1 Remove the /channel/ from the URL 2025-01-22 20:42:18 -05:00
tcely 5546c5dad2 Use the channel type to fetch channel_id 2025-01-22 20:21:23 -05:00
tcely e5b4e9dbc0 Add get_channel_id 2025-01-22 20:07:59 -05:00