Commit graph

234 commits

Author SHA1 Message Date
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
breakid
70b8bedc64 Made changes requested by original author
- Recombined COPY and RUN commands in Dockerfile
- Modified 'supported sites' URL in README
- Undid automatic formatting in ytdlp.py
2023-05-10 18:29:32 -04:00
breakid
ccff77647c Added support for yt-dlp 'temp' path
- Added support for yt-dlp 	emp path
- Formatted with Black
- Updated README to reflect new TEMP_DIR setting; linted
- Modified Dockerfile to strip carriage return characters from docker-entrypoint.sh script to fix building the image on Windows
- Added example docker-compose.yml config
2023-05-09 16:05:38 -04:00
Alex Shnitman
17d668a2dd fix DownloadInfo (closes #258 again) 2023-05-05 15:35:39 +03:00
Alex Shnitman
528bbd220a fix persistent queue load (closes #258) 2023-04-30 21:26:04 +03:00
Alex Shnitman
c5a23a5d5a fix download filename (closes #252) 2023-04-26 17:56:29 +03:00
guahki
23e9fef032 Introduce DOWNLOAD_DIRS_INDEXABLE to index download dirs 2023-04-16 13:08:58 +02:00
guahki
8283716547 Introduce DELETE_FILE_ON_TRASHCAN option, to delete files on the server 2023-04-16 13:07:25 +02:00
Alex
462a840a56
Merge pull request #247 from 1RandomDev/master
Fix error because of missing cache directory
2023-04-11 19:46:53 +03:00
Alex Shnitman
5b8504ec49 custom postprocessors overrite built-in ones, and writethumbnail can be set to false (closes #245, closes #246) 2023-04-11 19:44:02 +03:00
Alex Shnitman
26112c39cc use _filename for dealing with separate tmp directories (fixes #239) 2023-04-11 19:19:52 +03:00
1RandomDev
169d467811 Create necessary cache directory in container 2023-04-11 00:00:10 +02:00
hellodword
2ff7b0975a enable custom name prefix 2023-04-09 11:27:41 +08:00
georgekav
6936292218 Define the audio formats tuple in python backend 2023-03-05 10:34:49 +01:00
georgekav
eca44aa950 Add support for opus and wav 2023-03-05 00:34:30 +01:00
georgekav
07be2c054f Add missing m4a checks for audio file 2023-02-20 14:35:55 +01:00
georgekav2
821451b301 Add M4A backend support. 2023-02-20 12:13:01 +01:00
Nikolay G
f30bd109f7
Merge branch 'master' into master 2023-02-17 20:51:50 +03:00
Alex Shnitman
ea7a7b0711 Fix boolean env variables (closes #213) 2023-02-04 11:09:36 +02:00
Chris Kanich
18466312ff unique downloads of identically named videos 2023-02-03 10:33:51 -06:00
PikuZheng
bb5c05505f
convert thumbnail to jpg before embed #188
https://github.com/alexta69/metube/issues/188#issuecomment-1363443747
2022-12-23 07:59:20 +08:00
Alex Shnitman
68d4c89be0 Merge branch 'master' of https://github.com/alexta69/metube into custom-download-folder 2022-09-30 09:09:41 +03:00
James Woglom
a07e1ed06c bugfix: resolve full base directory before startswith check 2022-09-19 15:40:22 -04:00
James Woglom
202813b9ed CREATE_DIRS -> CREATE_CUSTOM_DIRS 2022-09-19 15:00:26 -04:00
Alex
208d6f25ba
Merge pull request #148 from 1RandomDev/download-thumbnail
Added option for thumbnail only
2022-09-01 15:21:12 +03:00
James Woglom
63baa1fc25 Link to audio files and those with custom folders properly 2022-08-30 01:22:24 -04:00
James Woglom
ba712fc071 Fill in download_dir or audio_download_dir on launch 2022-08-30 00:55:16 -04:00
James Woglom
f79c8fa754 pass custom_directories from server to client 2022-08-29 20:41:21 -04:00
James Woglom
4a9f55adda Propagate configuration on load via downloads socket 2022-08-29 20:27:34 -04:00
James Woglom
8857878ec2 show error if static assets are not found 2022-08-29 19:01:50 -04:00
James Woglom
e28458a74f Backend: support "folder" POST param and add config options 2022-08-29 18:25:29 -04:00
unref (Nikolai G)
818b215475 add couple env variables 2022-08-25 18:20:50 +03:00
1RandomDev
0f27bf8545 Set correct file extension for thumbnails 2022-08-24 18:10:49 +02:00
georgekav
712dc4ddbb Pass to yt_dlp a chapter-specific output template
When a FFmpegSplitChapters postprocessor is used it is taken into account, in all other cases the default output template is used.
2022-06-06 20:47:13 +02:00
georgekav
2e6658ce49 Use paths parameters from yt_dlp for passing the path instead of making it part of the output template.
This allows to use postprocessors like split-chapters that use their own output template parameter key ("chapter") and not the default one. By providing paths dictionary the postprocessors will respect that path for the output of the processed files.
2022-06-06 20:46:29 +02:00
1RandomDev
de322ad5d1 Added option for thumbnail only 2022-06-06 16:26:53 +02:00
almeidapaulopt
979c98ef7e pass properties if they exist 2022-02-17 16:33:17 +00:00
almeidapaulopt
deab875acd ass playlist parameters 2022-02-17 15:28:24 +00:00
Alex Shnitman
7b94a4fabd change default path of queue persistence files (closes #110) 2022-01-26 08:25:53 +02:00
Alex Shnitman
80c2ed3f98 reworked persistent queues 2022-01-25 23:56:17 +02:00
Erazor2
9994777974 Added sorting by Timestamp 2022-01-21 21:23:59 +00:00
Erazor2
1ebf1da076 Added Env-Var for State-Directory 2022-01-17 18:47:32 +00:00
Erazor2
eb1f031b33 Queue persistence for download and completed 2022-01-15 12:17:12 +00:00
Alex Shnitman
a2d5cd0b1b fix url_transparent handling (closes #95) 2021-12-22 20:19:19 +02:00
Alex
743cff1c87
fix typo (closes #94) 2021-12-21 10:37:05 +02:00
Alex
e2ebb8c076
always set mp3 quality (closes #93) 2021-12-21 08:50:19 +02:00
Alex Shnitman
4bd54939eb fix download link (closes #89) 2021-12-15 19:57:06 +02:00
Steffen Klee
fe4993153c Add download link to downloaded file
This adds a simple download link that points to the downloaded file.

Note: This makes all files in the download directory (and its
sub-directory) available to any user.

Closes gh-26
2021-12-13 22:35:19 +01:00
Your Name
e635a4a7f5 thumbs 2021-12-01 21:48:01 +01:00
Alex Shnitman
51b8100362 fix default format (closes #85) 2021-11-27 16:45:21 +02:00
Alex Shnitman
f52bea74d3 simplified format handling 2021-11-20 10:12:08 +02:00
Alex Shnitman
829cc8e5b0 Merge branch 'master' of https://github.com/alexta69/metube into mp3-support 2021-11-20 09:48:11 +02:00
asuyou
69746826f8 dl_formats options are now inline 2021-11-19 20:37:55 +00:00
asuyou
eadf8239e9 Changed to "any" to work like original (backend) 2021-11-14 23:17:07 +00:00
Alex Shnitman
6b4819924b fix breakage after upgrade 2021-11-13 20:07:14 +02:00
asuyou
63ec5c37af Changed back to original format download 2021-11-05 23:46:40 +00:00
asuyou
9e82aa1976 Fixed "custom:" download format 2021-10-30 18:06:56 +01:00
asuyou
d051814259 Added quality choice based on format 2021-10-28 11:19:17 +01:00
asuyou
b3a589f1a9 Added simple MP3 support 2021-10-25 17:15:09 +01:00
Alex Shnitman
6996e61f06 use YTDL_OPTIONS while reading video info (closes #58) 2021-09-25 15:26:29 +03:00
T. van Riel
574ed747eb
fix: set CORS to * for socketio (#55) 2021-09-18 23:23:02 +03:00
Alex Shnitman
95d199ed9b fix downloads from private playlists 2021-09-15 15:51:18 +03:00
Alex Shnitman
ee0fcc3993 allow selecting MP4 in the GUI 2021-09-13 20:25:32 +03:00
Alex Shnitman
b1f856474c add support for youtube-dl options (closes #33, #34) 2021-08-28 10:32:24 +03:00
Alex Shnitman
058e03876f allow all video formats, and merge into mp4 2021-08-27 12:19:53 +03:00
Alex Shnitman
2b3cd13bfd prefer mp4 format 2021-08-19 22:17:01 +03:00
Alex Shnitman
6e986a88ca switched to the yt-dlp fork of youtube-dl (closes #41) 2021-08-17 23:53:49 +03:00
Rpsl
fffba9065a Added retry button for failed download 2021-07-29 11:12:40 +03:00
Alex Shnitman
3fe107b299 set AUDIO_DOWNLOAD_DIR to the value if DOWNLOAD_DIR if it wasn't overriden in the environment 2021-07-25 21:22:20 +03:00
Ömer Erdinç Yağmurlu
dabaae58e2 Add AUDIO_DOWNLOAD_DIR option 2021-07-25 00:31:58 +02:00
Alfred Toth
c8462012a1 environment variable to customize output file names 2021-05-18 16:15:49 +02:00
Alex Shnitman
52d8d64cb5 add audio-only download (closes #20) 2021-03-04 11:10:39 +02:00
Rpsl
d106e213fc Add support of CORS rules 2021-01-26 16:28:03 +03:00
ashnitman
490f679b38 add 1440p quality (closes #11) 2021-01-12 20:12:21 +02:00
ashnitman
62602b19c9 allow custom video formats in backend 2021-01-07 17:51:14 +02:00
ashnitman
07cc86c7d9 update playlist suppot with "url_transparent" entry type 2020-12-06 12:42:11 +02:00
Alex
13e690dd63 add quality selection 2019-12-13 22:43:58 +02:00
Alex
34ec89485f recursive add (download entire channels) 2019-12-13 19:22:44 +02:00
Alex
c3550ec17f fixed potential race 2019-12-07 21:49:31 +02:00
Alex
3cf7d25f4c improved error handling 2019-12-06 16:30:07 +02:00
Alex
91cee0339a fix broken PREFIX_URL feature 2019-12-06 14:37:08 +02:00
Alex
a524f1faf3 add configurable URL prefix 2019-12-03 23:18:14 +02:00
Alex
9a959f9326 add "completed" panel 2019-12-03 22:32:07 +02:00
Alex
9d6d4a2fb8 add favicon 2019-11-29 20:16:58 +02:00
Alex
511404d23f initial commit: working version 2019-11-29 19:31:34 +02:00