Commit graph

234 commits

Author SHA1 Message Date
Alex Shnitman
de7e1418b5 add a missed substitution 2026-02-12 22:16:59 +02:00
Ivan Barsukov
f47e5db284 Refactor output template field substitution logic 2026-02-09 14:49:50 +03:00
Alex Shnitman
76bdb376c3 cont. fix channel / playlist detection logic (closes #894) 2026-02-08 18:11:56 +02:00
Alex Shnitman
9896ce6820 fix channel / playlist detection logic (closes #894) 2026-02-08 12:14:35 +02:00
Alex Shnitman
79d0c3895e consolidate adding logic 2026-02-07 17:33:48 +02:00
Adam Fendley
ffe1112dc6 Fix __add_entry parameters; remove duplicated code between channel and playlist processing 2026-02-07 17:30:40 +02:00
Adam Fendley
393add34b1 Add support for downloading an entire channel 2026-02-07 17:30:40 +02:00
Alex Shnitman
9be0781c7f remove unnecessary DOWNLOAD_MODE config; always run concurrently (can limit to 1 for sequential mode) 2026-01-09 14:33:12 +02:00
Alex Shnitman
e378179e05 remove playlist strict mode (make it always true) 2026-01-09 14:26:50 +02:00
Alex
a74b201ed8
Merge pull request #862 from AlvinRamoutar/task/repair-persistentqueues
feature/repair-persistent-queues
2026-01-08 21:29:23 +02:00
AlvinRamoutar
191f17ee38 syntax changes + null logic update for dbm repair 2026-01-05 18:13:42 -05:00
AlvinRamoutar
d799a4a8eb feature/repair-persistent-queues 2025-12-31 04:25:51 -05:00
Igor Katkov
02480afddf feat: Use OUTPUT_TEMPLATE_CHAPTER default setting 2025-12-31 00:13:55 -08:00
Igor Katkov
d51f2ce628 feat: Undo bogus formatting changes 2025-12-30 23:33:01 -08:00
Igor Katkov
962929d42d feat: Implement chapter splitting functionality with UI controls, yt-dlp integration, and chapter file tracking. 2025-12-30 22:07:49 -08:00
Igor Katkov
09a2e95515 fix: Root logger aligns with config.LOGLEVEL 2025-12-30 10:19:30 -08:00
Igor Katkov
d947876a71 fix: pass DEBUG log level to ytdl 2025-12-30 10:01:43 -08:00
Igor Katkov
6ba681a3cd fix: Moved code to respect loggin level in main.py 2025-12-30 08:45:54 -08:00
Lemon Lam
dae710a339 Suppress download progress update
...by sending them to debug
2025-12-26 19:42:09 +08:00
Lemon Lam
318f4f9f21 Convert to LF 2025-12-26 19:30:26 +08:00
Alex Shnitman
ef5a63e599 fix download entry pickle (closes #827) 2025-11-16 10:37:38 +02:00
copilot-swe-agent[bot]
ecfc188388 Make ObjectSerializer handle all iterables including generators
Co-authored-by: alexta69 <7450369+alexta69@users.noreply.github.com>
2025-10-01 05:59:48 +00:00
copilot-swe-agent[bot]
916ed330dd Fix AttributeError in ObjectSerializer by checking for __dict__ attribute
Co-authored-by: alexta69 <7450369+alexta69@users.noreply.github.com>
2025-10-01 05:46:23 +00:00
Sean Ellingham
27aa865c37 Improve performance of restoring queues on restart 2025-09-27 14:08:19 +01:00
Sean Ellingham
cfd464f7be Include auto_start status in add info log 2025-09-26 14:07:08 +01:00
Sean Ellingham
991a0c523a Restore pending downloads on start 2025-09-26 13:28:33 +01:00
xerdream
d744f73552 Fix file watching not working due to relative paths 2025-08-13 15:25:07 +08:00
Alex Shnitman
8f36ca910a simplified some logic and improved error handling 2025-07-27 10:03:51 +03:00
xerdream
7f28f17d77 change the reload options file logic 2025-07-25 13:12:32 +08:00
xerdream
91aaa9f425 remove the reload file option and consolidate code 2025-07-22 08:33:11 +08:00
xerdream
afbf8b07d6 add the ability to reload 'YTDL_OPTIONS' when file is modified 2025-07-21 11:20:53 +08:00
Alex Shnitman
2a687c92b4 change log level defaults 2025-06-28 12:00:55 +03:00
nixielectra
03be4c6329
add LOGLEVEL and ENABLE_ACCESSLOG env variables 2025-06-28 16:40:38 +08:00
Alex Shnitman
d74e8df408 add metube version. closes #83 2025-06-05 20:47:49 +03:00
Alex Shnitman
f494c4f6be fix download folder selection dropdown. closes #678 2025-06-05 18:45:36 +03:00
Alex Shnitman
b7ef408d5d upgrade to angular 19 2025-06-02 23:16:32 +03:00
backbonemedia
46ed0167cb Exclude custom directories by regex 2025-05-30 20:48:38 +02:00
you-cant-see-me
6f2a6b94e4
Fix download with impersonate 2025-05-27 16:16:37 +01:00
you-cant-see-me
cdcb6691b0
Fix impersonate option 2025-05-27 15:56:48 +01:00
Alex
cc5f22abf0
Merge pull request #608 from rdiaz738/master
Fixed MAX_CONCURRENT_DOWNLOADS and button styling
2025-03-07 09:47:18 +02:00
rdiaz738
8ea3359730 Fix for 605 and 607 2025-03-06 18:29:06 -08:00
thar
c89aa44628
Fix: Restore queue when container restarted
In case the user tries to restart the container with an updated container but an old queue file, the system checks if the object contains the attributes playlist_strict_mode and playlist_item_limit. If they are not present, it sets them to False and 0, respectively.
2025-03-05 17:34:53 -06:00
Alex
e281d61773
Merge branch 'master' into master 2025-03-05 19:12:29 +02:00
rdiaz738
92f5d34ce2 Refactored with feedback 2025-03-04 16:16:19 -08:00
rdiaz738
8d70ed9d36 Updated ui and backend
Added Sequential, limited and concurrent downloading and import export buttons
2025-03-01 17:43:48 -08:00
rdiaz738
4acb48b12a Merge remote-tracking branch 'upstream/master' 2025-03-01 14:07:31 -08:00
PikuZheng
8daa59b61f add yt-dlp version on web 2025-01-24 18:40:58 +08:00
PikuZheng
a77f10541a add "worst" format 2025-01-15 07:55:38 +08:00
Will Smart
6255e490c7
Adds 'pending' to response for GET /history
Allows for some additional integration opportunities by including "pending" items in the json reponse to /history.
2025-01-11 17:12:06 -05:00
admapop
bec65c3705 chore: PR suggestion 2024-12-28 20:41:22 +02:00
admapop
0916c22c06 fix: impersonate property needs to be of the right type and not as it is being passed now via JSON 2024-12-28 17:03:59 +02:00
Peter Copeland
818847a37a fix: provide default value for title when absent 2024-10-01 22:46:56 -06:00
Jean-Francois Simoneau
bde077d23a Add the ability to specify a robots.txt file, with a default disallowing the download links 2024-09-22 02:10:36 -04:00
Alex Shnitman
07b0b9caed documentation fixes and HTTPS boolean fix 2024-09-11 19:40:45 +03:00
VergilGao
84ed2c5f00 Add the ability to be configured as an HTTPS service 2024-08-29 14:54:36 +08:00
VergilGao
04e82533c7 Add a supports_reuse_port method to check if the operating system supports reuse port. 2024-08-29 14:21:15 +08:00
Pawel Derehajlo
9675cbe988 fixed: Regression causing playlist output format to be applied to every video 2024-08-21 23:52:38 +02:00
Pawel Derehajlo
301ff92b58 added OUTPUT_TEMPLATE_PLAYLIST variable 2024-08-19 16:31:25 +02:00
Pawel Derehajlo
5b64f2f615 fixed: urls with a video in a playlist were incorrectly downloaded as a whole playlist as single item instead of split by each video 2024-08-18 11:27:15 +02:00
Pawel Derehajlo
c675db1ae5 Added Playlist Strict mode and Item limits 2024-08-18 11:07:59 +02:00
evilmonkeydiaz
e4fa9723ba Update main.py 2024-08-17 18:02:48 -07:00
evilmonkeydiaz
2097a7adfa Added concurrent and limited modes 2024-08-17 16:09:42 -07:00
evilmonkeydiaz
8552faf9c5 Concurrent downloads 2024-08-17 15:15:53 -07:00
evilmonkeydiaz
d2bf4bd385 update class 2024-08-17 14:22:03 -07:00
evilmonkeydiaz
50e67e1459 Update ytdl.py 2024-08-17 13:27:35 -07:00
evilmonkeydiaz
07a2315703 Updated to cocurrent downloads attempt 1 2024-08-17 12:25:12 -07:00
Joel Goguen
41da9fdadd
Add separate quality entry for iOS compatibility
The iOS-compatible video may not be the best quality. Add a separate quality option to accommodate people who want the best available versus the best compatible with iOS's strict requirements.

Testing with https://www.youtube.com/watch?v=YiRMs5ZhcH4 where the best quality video is 2160p and not iOS-compatible.

With best quality, the VP9 video format is used (better quality but not iOS-compatible):

```
% ffprobe -hide_banner Who\ Can\ Find\ the\ Weirdest\ PC\ Parts\ on\ AliExpress?.mp4
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'Who Can Find the Weirdest PC Parts on AliExpress?.mp4':
Metadata:
major_brand     : isom
minor_version   : 512
compatible_brands: isomiso2mp41
encoder         : Lavf60.16.100
Duration: 00:19:02.72, start: 0.000000, bitrate: 10941 kb/s
Stream #0:0[0x1](und): Video: vp9 (Profile 0) (vp09 / 0x39307076), yuv420p(tv, bt709), 3840x1920, 10805 kb/s, 29.97 fps, 29.97 tbr, 16k tbn (default)
Metadata:
handler_name    : ISO Media file produced by Google Inc. Created on: 06/15/2024.
vendor_id       : [0][0][0][0]
Stream #0:1[0x2](eng): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 128 kb/s (default)
Metadata:
handler_name    : ISO Media file produced by Google Inc.
vendor_id       : [0][0][0][0]
```

With "Best (iOS)" quality, the H264 video (lower quality but iOS-compatible) is used:

```
% ffprobe -hide_banner Who\ Can\ Find\ the\ Weirdest\ PC\ Parts\ on\ AliExpress?.mp4
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'Who Can Find the Weirdest PC Parts on AliExpress?.mp4':
Metadata:
major_brand     : isom
minor_version   : 512
compatible_brands: isomiso2avc1mp41
encoder         : Lavf60.16.100
Duration: 00:19:02.72, start: 0.000000, bitrate: 1846 kb/s
Stream #0:0[0x1](und): Video: h264 (High) (avc1 / 0x31637661), yuv420p(tv, bt709, progressive), 1920x960 [SAR 1:1 DAR 2:1], 1710 kb/s, 29.97 fps, 29.97 tbr, 30k tbn (default)
Metadata:
handler_name    : ISO Media file produced by Google Inc.
vendor_id       : [0][0][0][0]
Stream #0:1[0x2](eng): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 128 kb/s (default)
Metadata:
handler_name    : ISO Media file produced by Google Inc.
vendor_id       : [0][0][0][0]
```

Included a README note about the new quality option.
2024-06-15 13:36:04 -04:00
PikuZheng
69c2f310c2 add flac format for audio 2024-06-07 10:35:04 +08:00
Joel Goguen
ebbe0ac7aa
Update MP4 format string for iOS compatibility
iOS has strict requirements for video files, requiring h264 or h265 video codec and aac audio codec in MP4 container. This update to the MP4 format string tries to get a fully compatible file first, followed by the right video codec and any M4A audio (audio is much faster to convert if needed), and then falls back to the original behaviour of getting the best available MP4 video and M4A audio.
2024-05-21 08:36:27 -04:00
Alex
63f11fb1ea
Merge pull request #431 from jfsimoneau/no-audio-convert
Don't convert audio if unnecessary
2024-05-02 21:26:27 +03:00
vaaski
3440d0adeb
add PUBLIC_HOST_AUDIO_URL 2024-05-02 13:10:41 +02:00
vaaski
e89da396cd
add PUBLIC_HOST_URL config key 2024-05-02 12:56:52 +02:00
Jean-Francois Simoneau
2142e759aa Don't convert audio if necessary 2024-04-30 14:10:55 -04:00
Alex
06606c7b40
Merge pull request #385 from vkartk/fix-cancel-nonstarted-downloads-383
Fix cancellation & deletion for non-started downloads (#383)
2024-01-26 10:51:48 +02:00
vkartk
f9a2a697df Prevent crash on missing filename (status.get) 2024-01-26 14:04:47 +05:30
vkartk
9e9112f7ef Fix cancelling non-started downloads (#383) 2024-01-26 11:06:54 +05:30
vkartk
d5e6c8bf98 Backend: Integrate file size calculation and API endpoint (#322) 2024-01-26 09:38:38 +05:30
Jonas Reeb
2f7f72a553 metube-363 Pass paths also when extracting metadata
In some cases, such as when writing thumbnails this call can still cause creation of non-temporary files on disk which should then also be placed in DOWNLOAD_DIR
2024-01-02 11:05:51 +01:00
Philipp Hutterer
c90057edc1 chore: move icons to frontend assets 2023-12-30 04:18:46 +01:00
Qiao Wang
ab189f8533 Fix the behavior when auto-start option is not explicitly passed 2023-12-13 21:06:39 +08:00
Qiao Wang
fcc7a4808e Merge branch 'master' of https://github.com/nodew/metube into auto-start 2023-12-09 12:49:41 +08:00
Qiao Wang
60e810450d Fix 2023-12-09 12:43:10 +08:00
Qiao Wang
d12fc37a50 Add auto start option for metube 2023-12-09 12:35:31 +08:00
ArabCoders
2a57447018 Removed default param for error 2023-11-16 20:50:02 +03:00
ArabCoders
9552fb3ca0 report date time correctly. 2023-11-16 16:16:00 +03:00
ArabCoders
74d07f5cb2 Added support for showing when live stream starts as error message. 2023-11-16 15:54:36 +03:00
ArabCoders
72b7447c78 use serializer.encode instead of json.dumps 2023-11-03 15:57:15 +03:00
ArabCoders
caca271e19 Fixed code style 2023-11-03 15:23:02 +03:00
ArabCoders
fead1f99c7 reverted CRLF to LF changes 2023-11-03 14:16:11 +03:00
ArabCoders
25c44b4da9 Expose done/queue list as json endpoint 2023-11-03 14:02:37 +03:00
Robert Smits
c64dda8ca7 Fix theme handling and auto theme
This commit fixes the client side theme selection being overwritten by the backend and adds a selectable auto theming option.
2023-10-01 18:23:11 +02:00
Alex
27def1f670 separated YTDL_OPTIONS_FILE 2023-08-19 21:03:08 +00:00
ArabCoders
207f8fe916 switched logging to DEBUG instead of info. 2023-08-14 05:04:39 +03:00
ArabCoders
01aafe3854 Fixed typo and removed unused import 2023-08-14 04:53:16 +03:00
Abdulmohsen
a1e143a5a6
Added support for loading YTDL_OPTIONS from file. 2023-08-13 19:14:58 +03:00
guahki
45ed4c3385 Fix #264: calculate download dir correctly when deleting files 2023-06-24 20:27:40 +02:00
guahki
3a8bf001dd
Fix issues with deleting files with DELETE_FILE_ON_TRASHCAN
Not being able to delete the file should not stop the clearance from the download list.

One error I encountered, is when failed downloads have no dl.info.filename attribute. It was impossible to delete these entries from the "Completed" section.
2023-06-22 22:36:24 +02:00
Rithas K
eead6acbf5 Add default theme option
Dark mode can be set as the default theme by setting 'DARK_MODE' environment variable to 'true' in the docker compose file
2023-06-19 16:30:13 +05:30
Alex Shnitman
2a7cf3e775 formatting 2023-05-27 19:14:52 +03:00
breakid
c30173cdc0 Reverted all formatting changes 2023-05-14 00:37:09 -04:00