Commit Graph
100 Commits
Author SHA1 Message Date
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 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
tcely ba321945b6 Automated channel_id extraction 2025-01-22 19:41:03 -05:00
tcely 1671c6e706 DRY YouTube domain list
I am tired of links copied from YouTube not working without adjustments.
2025-01-22 04:55:57 -05:00
tcely 96078f8d40 Update architectures FAQ 2025-01-21 04:38:06 -05:00
tcely 0ea508443a Pipefile -> Pipfile 2025-01-21 04:21:47 -05:00
tcely 1f95b858f2 Use --break-system-packages with pip
Unfortunately, both versions of `pip` don't have this flag.

Check the version, then add the flag if it is not too old.
2025-01-21 03:08:24 -05:00
tcely 52d703ff1f Better check for script_name 2025-01-21 01:55:13 -05:00
tcely f65f6f1de5 Treat static_url the same as other URLs 2025-01-21 01:12:24 -05:00
tcely 66e5192980 Warn against regular updating of yt-dlp 2025-01-20 08:49:14 -05:00
tcely ae07c1ce89 Fallback to run_whl
Prefer `pip_runner` but try the `pip` wheel too, if it's missing.
2025-01-17 13:03:06 -05:00
tcely ccdd43845c Cache for pipenv & apt
- Consolidate apk & apt commands
- Consolidate ENV layers
- Consolidate RUN layers
- Remove unused variables
- Remove packages that are no longer needed
- Bind mount /app/Pipfile

`/cache` is now a `tmpfs` mount that has a `cache` mount on top for `pipenv` to use.

`apt` has `cache` mounts in the standard places:
- /var/lib/apt
- /var/cache/apt
2025-01-17 12:46:11 -05:00
tcely 4e51d54ec1 Use pip runner from pipenv 2025-01-16 08:24:11 -05:00
tcely 862c17b676 Bump ffmpeg & yt-dlp 2025-01-16 03:30:06 -05:00
tcely d7f9fa45ec Add executable to sh script 2025-01-16 08:16:31 +00:00
tcely 6f00ce8120 Create upgrade_yt-dlp.sh 2025-01-16 03:01:10 -05:00
tcely ab7b601ad2 Don't write zero into MPAA in .nfo 2025-01-16 01:31:07 -05:00
tcely 57417915bf lowercase the true value
I doubt it's unsupported by any parser, but every example uses lowercase for this, we may as well also.
2025-01-16 01:27:41 -05:00
tcely af0aae3de4 Don't write 'None' in default rating
It's better to not have a rating than to create parsing problems.

An example of what is avoided:

```
<ratings>
  <rating name="youtube" max="5" default="True">
    <value>None</value>
    <votes>16781</votes>
  </rating>
</ratings>
```
2025-01-16 01:18:20 -05:00
tcely 35f6a54823 Balance blank lines 2025-01-15 06:17:33 -05:00
tcely d349bd55c4 Avoid env for healthcheck
This is only intended for use in containers, so we know where python3 should be installed.

This is called very often, so we should try to use as few resources as we can.
2025-01-15 04:43:58 -05:00