]> jfr.im git - yt-dlp.git/commitdiff
Preparing for release
authorpukkandan <redacted>
Thu, 7 Jan 2021 06:41:05 +0000 (12:11 +0530)
committerpukkandan <redacted>
Thu, 7 Jan 2021 11:52:45 +0000 (17:22 +0530)
41 files changed:
.github/ISSUE_TEMPLATE/1_broken_site.md
.github/ISSUE_TEMPLATE/2_site_support_request.md
.github/ISSUE_TEMPLATE/3_site_feature_request.md
.github/ISSUE_TEMPLATE/4_bug_report.md
.github/ISSUE_TEMPLATE/5_feature_request.md
.github/ISSUE_TEMPLATE/6_question.md
.github/ISSUE_TEMPLATE_tmpl/1_broken_site.md
.github/ISSUE_TEMPLATE_tmpl/2_site_support_request.md
.github/ISSUE_TEMPLATE_tmpl/3_site_feature_request.md
.github/ISSUE_TEMPLATE_tmpl/4_bug_report.md
.github/ISSUE_TEMPLATE_tmpl/5_feature_request.md
.github/PULL_REQUEST_TEMPLATE.md
.github/workflows/build.yml
.github/workflows/ci.yml [new file with mode: 0644]
.gitignore
.travis.yml.disabled [moved from .travis.yml with 100% similarity]
Makefile
README.md
devscripts/create-github-release.py
devscripts/install_jython.sh [deleted file]
devscripts/make_readme.py
devscripts/release.sh
devscripts/run_tests.bat [new file with mode: 0644]
devscripts/show-downloads-statistics.py
docs/supportedsites.md
scripts/update-version.py
setup.cfg
setup.py
version.txt [deleted file]
youtube-dlc.cmd [new file with mode: 0644]
youtube_dlc/extractor/generic.py
youtube_dlc/extractor/itv.py
youtube_dlc/extractor/mitele.py
youtube_dlc/extractor/twitch.py
youtube_dlc/extractor/wdr.py
youtube_dlc/extractor/youtube.py
youtube_dlc/options.py
youtube_dlc/postprocessor/embedthumbnail.py
youtube_dlc/utils.py
youtube_dlc/version.py
yt-dlc.sublime-project

index 32c14aa85185a7195e554299ad9c88a0b6bad541..869fbd72a977c3bc9a28e60fc02c08bdf892ad43 100644 (file)
@@ -21,15 +21,15 @@ ## Checklist
 
 <!--
 Carefully read and work through this check list in order to prevent the most common mistakes and misuse of youtube-dlc:
-- First of, make sure you are using the latest version of youtube-dlc. Run `youtube-dlc --version` and ensure your version is 2020.10.31. If it's not, see https://github.com/blackjack4494/yt-dlc on how to update. Issues with outdated version will be REJECTED.
+- First of, make sure you are using the latest version of youtube-dlc. Run `youtube-dlc --version` and ensure your version is 2021.01.05-2. If it's not, see https://github.com/pukkandan/yt-dlc on how to update. Issues with outdated version will be REJECTED.
 - Make sure that all provided video/audio/playlist URLs (if any) are alive and playable in a browser.
-- Make sure that all URLs and arguments with special characters are properly quoted or escaped as explained in https://github.com/blackjack4494/yt-dlc.
-- Search the bugtracker for similar issues: https://github.com/blackjack4494/yt-dlc. DO NOT post duplicates.
-- Finally, put x into all relevant boxes (like this [x])
+- Make sure that all URLs and arguments with special characters are properly quoted or escaped as explained in https://github.com/pukkandan/yt-dlc.
+- Search the bugtracker for similar issues: https://github.com/pukkandan/yt-dlc. DO NOT post duplicates.
+- Finally, put x into all relevant boxes like this [x] (Dont forget to delete the empty space)
 -->
 
 - [ ] I'm reporting a broken site support
-- [ ] I've verified that I'm running youtube-dlc version **2020.10.31**
+- [ ] I've verified that I'm running youtube-dlc version **2021.01.05-2**
 - [ ] I've checked that all provided URLs are alive and playable in a browser
 - [ ] I've checked that all URLs and arguments with special characters are properly quoted or escaped
 - [ ] I've searched the bugtracker for similar issues including closed ones
@@ -44,7 +44,7 @@ ## Verbose log
  [debug] User config: []
  [debug] Command-line args: [u'-v', u'http://www.youtube.com/watch?v=BaW_jenozKcj']
  [debug] Encodings: locale cp1251, fs mbcs, out cp866, pref cp1251
- [debug] youtube-dlc version 2020.10.31
+ [debug] youtube-dlc version 2021.01.05-2
  [debug] Python version 2.7.11 - Windows-2003Server-5.2.3790-SP2
  [debug] exe versions: ffmpeg N-75573-g1d0487f, ffprobe N-75573-g1d0487f, rtmpdump 2.4
  [debug] Proxy map: {}
@@ -53,7 +53,11 @@ ## Verbose log
 
 ```
 PASTE VERBOSE LOG HERE
+
 ```
+<!--
+Do not remove the above ```
+-->
 
 
 ## Description
index fe1aade055695703cb4aac77e122c2645e7a397c..a5877a5504d5584f3f943d9c87dc547581835a77 100644 (file)
@@ -21,15 +21,15 @@ ## Checklist
 
 <!--
 Carefully read and work through this check list in order to prevent the most common mistakes and misuse of youtube-dlc:
-- First of, make sure you are using the latest version of youtube-dlc. Run `youtube-dlc --version` and ensure your version is 2020.10.31. If it's not, see https://github.com/blackjack4494/yt-dlc on how to update. Issues with outdated version will be REJECTED.
+- First of, make sure you are using the latest version of youtube-dlc. Run `youtube-dlc --version` and ensure your version is 2021.01.05-2. If it's not, see https://github.com/pukkandan/yt-dlc on how to update. Issues with outdated version will be REJECTED.
 - Make sure that all provided video/audio/playlist URLs (if any) are alive and playable in a browser.
-- Make sure that site you are requesting is not dedicated to copyright infringement, see https://github.com/blackjack4494/yt-dlc. youtube-dlc does not support such sites. In order for site support request to be accepted all provided example URLs should not violate any copyrights.
-- Search the bugtracker for similar site support requests: https://github.com/blackjack4494/yt-dlc. DO NOT post duplicates.
-- Finally, put x into all relevant boxes (like this [x])
+- Make sure that site you are requesting is not dedicated to copyright infringement, see https://github.com/pukkandan/yt-dlc. youtube-dlc does not support such sites. In order for site support request to be accepted all provided example URLs should not violate any copyrights.
+- Search the bugtracker for similar site support requests: https://github.com/pukkandan/yt-dlc. DO NOT post duplicates.
+- Finally, put x into all relevant boxes like this [x] (Dont forget to delete the empty space)
 -->
 
 - [ ] I'm reporting a new site support request
-- [ ] I've verified that I'm running youtube-dlcc version **2020.10.31**
+- [ ] I've verified that I'm running youtube-dlc version **2021.01.05-2**
 - [ ] I've checked that all provided URLs are alive and playable in a browser
 - [ ] I've checked that none of provided URLs violate any copyrights
 - [ ] I've searched the bugtracker for similar site support requests including closed ones
index cddb81dda45592128e068e33a822189939474689..07440b8b39d828b2cfa058c0f1ce53a39f74b7ed 100644 (file)
@@ -21,20 +21,20 @@ ## Checklist
 
 <!--
 Carefully read and work through this check list in order to prevent the most common mistakes and misuse of youtube-dlc:
-- First of, make sure you are using the latest version of youtube-dlc. Run `youtube-dlc --version` and ensure your version is 2020.10.31. If it's not, see https://github.com/blackjack4494/yt-dlc on how to update. Issues with outdated version will be REJECTED.
-- Search the bugtracker for similar site feature requests: https://github.com/blackjack4494/yt-dlc. DO NOT post duplicates.
-- Finally, put x into all relevant boxes (like this [x])
+- First of, make sure you are using the latest version of youtube-dlc. Run `youtube-dlc --version` and ensure your version is 2021.01.05-2. If it's not, see https://github.com/pukkandan/yt-dlc on how to update. Issues with outdated version will be REJECTED.
+- Search the bugtracker for similar site feature requests: https://github.com/pukkandan/yt-dlc. DO NOT post duplicates.
+- Finally, put x into all relevant boxes like this [x] (Dont forget to delete the empty space)
 -->
 
 - [ ] I'm reporting a site feature request
-- [ ] I've verified that I'm running youtube-dlc version **2020.10.31**
+- [ ] I've verified that I'm running youtube-dlc version **2021.01.05-2**
 - [ ] I've searched the bugtracker for similar site feature requests including closed ones
 
 
 ## Description
 
 <!--
-Provide an explanation of your site feature request in an arbitrary form. Please make sure the description is worded well enough to be understood, see https://github.com/ytdl-org/youtube-dlc#is-the-description-of-the-issue-itself-sufficient. Provide any additional information, suggested solution and as much context and examples as possible.
+Provide an explanation of your site feature request in an arbitrary form. Please make sure the description is worded well enough to be understood, see https://github.com/ytdl-org/youtube-dl#is-the-description-of-the-issue-itself-sufficient. Provide any additional information, suggested solution and as much context and examples as possible.
 -->
 
 WRITE DESCRIPTION HERE
index 920ae8dbca6bcce6a714020f0baf61048ffe6a08..120205c4e149d3b3f092a8b819fd019ffe1ea039 100644 (file)
@@ -21,16 +21,16 @@ ## Checklist
 
 <!--
 Carefully read and work through this check list in order to prevent the most common mistakes and misuse of youtube-dlc:
-- First of, make sure you are using the latest version of youtube-dlc. Run `youtube-dlc --version` and ensure your version is 2020.10.31. If it's not, see https://github.com/blackjack4494/yt-dlc on how to update. Issues with outdated version will be REJECTED.
+- First of, make sure you are using the latest version of youtube-dlc. Run `youtube-dlc --version` and ensure your version is 2021.01.05-2. If it's not, see https://github.com/pukkandan/yt-dlc on how to update. Issues with outdated version will be REJECTED.
 - Make sure that all provided video/audio/playlist URLs (if any) are alive and playable in a browser.
-- Make sure that all URLs and arguments with special characters are properly quoted or escaped as explained in https://github.com/blackjack4494/yt-dlc.
-- Search the bugtracker for similar issues: https://github.com/blackjack4494/yt-dlc. DO NOT post duplicates.
-- Read bugs section in FAQ: https://github.com/blackjack4494/yt-dlc
-- Finally, put x into all relevant boxes (like this [x])
+- Make sure that all URLs and arguments with special characters are properly quoted or escaped as explained in https://github.com/pukkandan/yt-dlc.
+- Search the bugtracker for similar issues: https://github.com/pukkandan/yt-dlc. DO NOT post duplicates.
+- Read bugs section in FAQ: https://github.com/pukkandan/yt-dlc
+- Finally, put x into all relevant boxes like this [x] (Dont forget to delete the empty space)
 -->
 
 - [ ] I'm reporting a broken site support issue
-- [ ] I've verified that I'm running youtube-dlc version **2020.10.31**
+- [ ] I've verified that I'm running youtube-dlc version **2021.01.05-2**
 - [ ] I've checked that all provided URLs are alive and playable in a browser
 - [ ] I've checked that all URLs and arguments with special characters are properly quoted or escaped
 - [ ] I've searched the bugtracker for similar bug reports including closed ones
@@ -46,7 +46,7 @@ ## Verbose log
  [debug] User config: []
  [debug] Command-line args: [u'-v', u'http://www.youtube.com/watch?v=BaW_jenozKcj']
  [debug] Encodings: locale cp1251, fs mbcs, out cp866, pref cp1251
- [debug] youtube-dlc version 2020.10.31
+ [debug] youtube-dlc version 2021.01.05-2
  [debug] Python version 2.7.11 - Windows-2003Server-5.2.3790-SP2
  [debug] exe versions: ffmpeg N-75573-g1d0487f, ffprobe N-75573-g1d0487f, rtmpdump 2.4
  [debug] Proxy map: {}
@@ -55,13 +55,17 @@ ## Verbose log
 
 ```
 PASTE VERBOSE LOG HERE
+
 ```
+<!--
+Do not remove the above ```
+-->
 
 
 ## Description
 
 <!--
-Provide an explanation of your issue in an arbitrary form. Please make sure the description is worded well enough to be understood, see https://github.com/ytdl-org/youtube-dlc#is-the-description-of-the-issue-itself-sufficient. Provide any additional information, suggested solution and as much context and examples as possible.
+Provide an explanation of your issue in an arbitrary form. Please make sure the description is worded well enough to be understood, see https://github.com/ytdl-org/youtube-dl#is-the-description-of-the-issue-itself-sufficient. Provide any additional information, suggested solution and as much context and examples as possible.
 If work on your issue requires account credentials please provide them or explain how one can obtain them.
 -->
 
index 7cc390f58b1728a770243119771f72ac54582330..aacb82a41d71f2b9ac5864ca2811b3cae2a6140c 100644 (file)
@@ -21,20 +21,20 @@ ## Checklist
 
 <!--
 Carefully read and work through this check list in order to prevent the most common mistakes and misuse of youtube-dlc:
-- First of, make sure you are using the latest version of youtube-dlc. Run `youtube-dlc --version` and ensure your version is 2020.10.31. If it's not, see https://github.com/blackjack4494/yt-dlc on how to update. Issues with outdated version will be REJECTED.
-- Search the bugtracker for similar feature requests: https://github.com/blackjack4494/yt-dlc. DO NOT post duplicates.
-- Finally, put x into all relevant boxes (like this [x])
+- First of, make sure you are using the latest version of youtube-dlc. Run `youtube-dlc --version` and ensure your version is 2021.01.05-2. If it's not, see https://github.com/pukkandan/yt-dlc on how to update. Issues with outdated version will be REJECTED.
+- Search the bugtracker for similar feature requests: https://github.com/pukkandan/yt-dlc. DO NOT post duplicates.
+- Finally, put x into all relevant boxes like this [x] (Dont forget to delete the empty space)
 -->
 
 - [ ] I'm reporting a feature request
-- [ ] I've verified that I'm running youtube-dlc version **2020.10.31**
+- [ ] I've verified that I'm running youtube-dlc version **2021.01.05-2**
 - [ ] I've searched the bugtracker for similar feature requests including closed ones
 
 
 ## Description
 
 <!--
-Provide an explanation of your issue in an arbitrary form. Please make sure the description is worded well enough to be understood, see https://github.com/ytdl-org/youtube-dlc#is-the-description-of-the-issue-itself-sufficient. Provide any additional information, suggested solution and as much context and examples as possible.
+Provide an explanation of your issue in an arbitrary form. Please make sure the description is worded well enough to be understood, see https://github.com/ytdl-org/youtube-dl#is-the-description-of-the-issue-itself-sufficient. Provide any additional information, suggested solution and as much context and examples as possible.
 -->
 
 WRITE DESCRIPTION HERE
index 3c3ae0f3b18d33ecb7269d940821f1f57ebc5f41..647eb2d0c35ea1616b6af6d5f891a4c60c8e4630 100644 (file)
@@ -23,7 +23,7 @@ ## Checklist
 Carefully read and work through this check list in order to prevent the most common mistakes and misuse of youtube-dl:
 - Look through the README (https://github.com/blackjack4494/yt-dlc) and FAQ (https://github.com/blackjack4494/yt-dlc) for similar questions
 - Search the bugtracker for similar questions: https://github.com/blackjack4494/yt-dlc
-- Finally, put x into all relevant boxes (like this [x])
+- Finally, put x into all relevant boxes like this [x] (Dont forget to delete the empty space)
 -->
 
 - [ ] I'm asking a question
index 3fe4d6968df19d0e67528e497bae358fa7a7a973..6df9124c38b6ee997d1405ef482ed9678643ed45 100644 (file)
@@ -1,7 +1,10 @@
 ---
 name: Broken site support
 about: Report broken or misfunctioning site
-title: ''
+title: "[Broken]"
+labels: Broken
+assignees: ''
+
 ---
 
 <!--
@@ -18,11 +21,11 @@ ## Checklist
 
 <!--
 Carefully read and work through this check list in order to prevent the most common mistakes and misuse of youtube-dlc:
-- First of, make sure you are using the latest version of youtube-dlc. Run `youtube-dlc --version` and ensure your version is %(version)s. If it's not, see https://github.com/blackjack4494/yt-dlc on how to update. Issues with outdated version will be REJECTED.
+- First of, make sure you are using the latest version of youtube-dlc. Run `youtube-dlc --version` and ensure your version is %(version)s. If it's not, see https://github.com/pukkandan/yt-dlc on how to update. Issues with outdated version will be REJECTED.
 - Make sure that all provided video/audio/playlist URLs (if any) are alive and playable in a browser.
-- Make sure that all URLs and arguments with special characters are properly quoted or escaped as explained in https://github.com/blackjack4494/yt-dlc.
-- Search the bugtracker for similar issues: https://github.com/blackjack4494/yt-dlc. DO NOT post duplicates.
-- Finally, put x into all relevant boxes (like this [x])
+- Make sure that all URLs and arguments with special characters are properly quoted or escaped as explained in https://github.com/pukkandan/yt-dlc.
+- Search the bugtracker for similar issues: https://github.com/pukkandan/yt-dlc. DO NOT post duplicates.
+- Finally, put x into all relevant boxes like this [x] (Dont forget to delete the empty space)
 -->
 
 - [ ] I'm reporting a broken site support
@@ -50,7 +53,11 @@ ## Verbose log
 
 ```
 PASTE VERBOSE LOG HERE
+
 ```
+<!--
+Do not remove the above ```
+-->
 
 
 ## Description
index aad8fa0541e11d8b390cbea30f8cae4c4ab195d9..3844e02950e6faf3a36493abded8cd16f75e7367 100644 (file)
@@ -1,8 +1,10 @@
 ---
 name: Site support request
 about: Request support for a new site
-title: ''
-labels: 'site-support-request'
+title: "[Site Request]"
+labels: Request
+assignees: ''
+
 ---
 
 <!--
@@ -19,11 +21,11 @@ ## Checklist
 
 <!--
 Carefully read and work through this check list in order to prevent the most common mistakes and misuse of youtube-dlc:
-- First of, make sure you are using the latest version of youtube-dlc. Run `youtube-dlc --version` and ensure your version is %(version)s. If it's not, see https://github.com/blackjack4494/yt-dlc on how to update. Issues with outdated version will be REJECTED.
+- First of, make sure you are using the latest version of youtube-dlc. Run `youtube-dlc --version` and ensure your version is %(version)s. If it's not, see https://github.com/pukkandan/yt-dlc on how to update. Issues with outdated version will be REJECTED.
 - Make sure that all provided video/audio/playlist URLs (if any) are alive and playable in a browser.
-- Make sure that site you are requesting is not dedicated to copyright infringement, see https://github.com/blackjack4494/yt-dlc. youtube-dlc does not support such sites. In order for site support request to be accepted all provided example URLs should not violate any copyrights.
-- Search the bugtracker for similar site support requests: https://github.com/blackjack4494/yt-dlc. DO NOT post duplicates.
-- Finally, put x into all relevant boxes (like this [x])
+- Make sure that site you are requesting is not dedicated to copyright infringement, see https://github.com/pukkandan/yt-dlc. youtube-dlc does not support such sites. In order for site support request to be accepted all provided example URLs should not violate any copyrights.
+- Search the bugtracker for similar site support requests: https://github.com/pukkandan/yt-dlc. DO NOT post duplicates.
+- Finally, put x into all relevant boxes like this [x] (Dont forget to delete the empty space)
 -->
 
 - [ ] I'm reporting a new site support request
index 2fb82f82869104e9a99c35c9ead70933aca36ccc..dff7547afdebf19adab3e68621dfc32577f6611e 100644 (file)
@@ -1,7 +1,10 @@
 ---
 name: Site feature request
 about: Request a new functionality for a site
-title: ''
+title: "[Site Request]"
+labels: Request
+assignees: ''
+
 ---
 
 <!--
@@ -18,9 +21,9 @@ ## Checklist
 
 <!--
 Carefully read and work through this check list in order to prevent the most common mistakes and misuse of youtube-dlc:
-- First of, make sure you are using the latest version of youtube-dlc. Run `youtube-dlc --version` and ensure your version is %(version)s. If it's not, see https://github.com/blackjack4494/yt-dlc on how to update. Issues with outdated version will be REJECTED.
-- Search the bugtracker for similar site feature requests: https://github.com/blackjack4494/yt-dlc. DO NOT post duplicates.
-- Finally, put x into all relevant boxes (like this [x])
+- First of, make sure you are using the latest version of youtube-dlc. Run `youtube-dlc --version` and ensure your version is %(version)s. If it's not, see https://github.com/pukkandan/yt-dlc on how to update. Issues with outdated version will be REJECTED.
+- Search the bugtracker for similar site feature requests: https://github.com/pukkandan/yt-dlc. DO NOT post duplicates.
+- Finally, put x into all relevant boxes like this [x] (Dont forget to delete the empty space)
 -->
 
 - [ ] I'm reporting a site feature request
index b7bebf8ab7f9249cae228d370aeaa43913bb5994..90439f3d989b9df88ee113a43fc89b17b39df192 100644 (file)
@@ -2,6 +2,9 @@
 name: Bug report
 about: Report a bug unrelated to any particular site or extractor
 title: ''
+labels: ''
+assignees: ''
+
 ---
 
 <!--
@@ -18,12 +21,12 @@ ## Checklist
 
 <!--
 Carefully read and work through this check list in order to prevent the most common mistakes and misuse of youtube-dlc:
-- First of, make sure you are using the latest version of youtube-dlc. Run `youtube-dlc --version` and ensure your version is %(version)s. If it's not, see https://github.com/blackjack4494/yt-dlc on how to update. Issues with outdated version will be REJECTED.
+- First of, make sure you are using the latest version of youtube-dlc. Run `youtube-dlc --version` and ensure your version is %(version)s. If it's not, see https://github.com/pukkandan/yt-dlc on how to update. Issues with outdated version will be REJECTED.
 - Make sure that all provided video/audio/playlist URLs (if any) are alive and playable in a browser.
-- Make sure that all URLs and arguments with special characters are properly quoted or escaped as explained in https://github.com/blackjack4494/yt-dlc.
-- Search the bugtracker for similar issues: https://github.com/blackjack4494/yt-dlc. DO NOT post duplicates.
-- Read bugs section in FAQ: https://github.com/blackjack4494/yt-dlc
-- Finally, put x into all relevant boxes (like this [x])
+- Make sure that all URLs and arguments with special characters are properly quoted or escaped as explained in https://github.com/pukkandan/yt-dlc.
+- Search the bugtracker for similar issues: https://github.com/pukkandan/yt-dlc. DO NOT post duplicates.
+- Read bugs section in FAQ: https://github.com/pukkandan/yt-dlc
+- Finally, put x into all relevant boxes like this [x] (Dont forget to delete the empty space)
 -->
 
 - [ ] I'm reporting a broken site support issue
@@ -52,7 +55,11 @@ ## Verbose log
 
 ```
 PASTE VERBOSE LOG HERE
+
 ```
+<!--
+Do not remove the above ```
+-->
 
 
 ## Description
index 99592f79de27bf4432757f2b92ec5339804029b3..50bbf6091ed987ddbab2789ad3ef6cd309444cb3 100644 (file)
@@ -1,8 +1,10 @@
 ---
 name: Feature request
 about: Request a new functionality unrelated to any particular site or extractor
-title: ''
-labels: 'request'
+title: "[Feature Request]"
+labels: Request
+assignees: ''
+
 ---
 
 <!--
@@ -19,9 +21,9 @@ ## Checklist
 
 <!--
 Carefully read and work through this check list in order to prevent the most common mistakes and misuse of youtube-dlc:
-- First of, make sure you are using the latest version of youtube-dlc. Run `youtube-dlc --version` and ensure your version is %(version)s. If it's not, see https://github.com/blackjack4494/yt-dlc on how to update. Issues with outdated version will be REJECTED.
-- Search the bugtracker for similar feature requests: https://github.com/blackjack4494/yt-dlc. DO NOT post duplicates.
-- Finally, put x into all relevant boxes (like this [x])
+- First of, make sure you are using the latest version of youtube-dlc. Run `youtube-dlc --version` and ensure your version is %(version)s. If it's not, see https://github.com/pukkandan/yt-dlc on how to update. Issues with outdated version will be REJECTED.
+- Search the bugtracker for similar feature requests: https://github.com/pukkandan/yt-dlc. DO NOT post duplicates.
+- Finally, put x into all relevant boxes like this [x] (Dont forget to delete the empty space)
 -->
 
 - [ ] I'm reporting a feature request
index e69b907d8f64c41dced05ee7ad687d8a6b309e61..fa06e65b9c70c8017624108f0064243f71d6a5e9 100644 (file)
@@ -8,7 +8,7 @@ ## Please follow the guide below
 
 ### Before submitting a *pull request* make sure you have:
 - [ ] At least skimmed through [adding new extractor tutorial](https://github.com/ytdl-org/youtube-dl#adding-support-for-a-new-site) and [youtube-dl coding conventions](https://github.com/ytdl-org/youtube-dl#youtube-dl-coding-conventions) sections
-- [ ] [Searched](https://github.com/ytdl-org/youtube-dl/search?q=is%3Apr&type=Issues) the bugtracker for similar pull requests
+- [ ] [Searched](https://github.com/pukkandan/yt-dlc/search?q=is%3Apr&type=Issues) the bugtracker for similar pull requests
 - [ ] Checked the code with [flake8](https://pypi.python.org/pypi/flake8)
 
 ### In order to be accepted and merged into youtube-dl each piece of code must be in public domain or released under [Unlicense](http://unlicense.org/). Check one of the following options:
index dd6a95256f210d87bb8aa44db3b97cc11f844fe9..828c2b0d5db47e080759a8c62bb8108fb15d2175 100644 (file)
@@ -58,18 +58,18 @@ jobs:
       env:
         SHA2: ${{ hashFiles('youtube-dlc') }}
       run: echo "::set-output name=sha2_unix::$SHA2"
-    - name: Install dependencies for pypi
-      run: |
-        python -m pip install --upgrade pip
-        pip install setuptools wheel twine
-    - name: Build and publish
-      env:
-        TWINE_USERNAME: ${{ secrets.PYPI_USERNAME }}
-        TWINE_PASSWORD: ${{ secrets.PYPI_PASSWORD }}
-      run: |
-        rm -rf dist/*
-        python setup.py sdist bdist_wheel
-        twine upload dist/*
+    - name: Install dependencies for pypi
+      run: |
+        python -m pip install --upgrade pip
+        pip install setuptools wheel twine
+    - name: Build and publish
+      env:
+        TWINE_USERNAME: ${{ secrets.PYPI_USERNAME }}
+        TWINE_PASSWORD: ${{ secrets.PYPI_PASSWORD }}
+      run: |
+        rm -rf dist/*
+        python setup.py sdist bdist_wheel
+        twine upload dist/*
 
   build_windows:
 
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
new file mode 100644 (file)
index 0000000..f8ce8d5
--- /dev/null
@@ -0,0 +1,74 @@
+name: CI
+on: [push]
+jobs:
+  tests:
+    name: Tests
+    runs-on: ${{ matrix.os }}
+    strategy:
+      fail-fast: true
+      matrix:
+        os: [ubuntu-latest]
+        # TODO: python 2.6
+        python-version: [2.7, 3.3, 3.4, 3.5, 3.6, 3.7, 3.8, 3.9, pypy-2.7, pypy-3.6, pypy-3.7]
+        python-impl: [cpython]
+        ytdl-test-set: [core, download]
+        run-tests-ext: [sh]
+        include:
+        # python 3.2 is only available on windows via setup-python
+        - os: windows-latest
+          python-version: 3.2
+          python-impl: cpython
+          ytdl-test-set: core
+          run-tests-ext: bat
+        - os: windows-latest
+          python-version: 3.2
+          python-impl: cpython
+          ytdl-test-set: download
+          run-tests-ext: bat
+        # jython
+        - os: ubuntu-latest
+          python-impl: jython
+          ytdl-test-set: core
+          run-tests-ext: sh
+        - os: ubuntu-latest
+          python-impl: jython
+          ytdl-test-set: download
+          run-tests-ext: sh
+    steps:
+    - uses: actions/checkout@v2
+    - name: Set up Python ${{ matrix.python-version }}
+      uses: actions/setup-python@v2
+      if: ${{ matrix.python-impl == 'cpython' }}
+      with:
+        python-version: ${{ matrix.python-version }}
+    - name: Set up Java 8
+      if: ${{ matrix.python-impl == 'jython' }}
+      uses: actions/setup-java@v1
+      with:
+        java-version: 8
+    - name: Install Jython
+      if: ${{ matrix.python-impl == 'jython' }}
+      run: |
+        wget http://search.maven.org/remotecontent?filepath=org/python/jython-installer/2.7.1/jython-installer-2.7.1.jar -O jython-installer.jar
+        java -jar jython-installer.jar -s -d "$HOME/jython"
+        echo "$HOME/jython/bin" >> $GITHUB_PATH
+    - name: Install nose
+      run: pip install nose
+    - name: Run tests
+      continue-on-error: ${{ matrix.ytdl-test-set == 'download' || matrix.python-impl == 'jython' }}
+      env:
+        YTDL_TEST_SET: ${{ matrix.ytdl-test-set }}
+      run: ./devscripts/run_tests.${{ matrix.run-tests-ext }}
+  flake8:
+    name: Linter
+    runs-on: ubuntu-latest
+    steps:
+    - uses: actions/checkout@v2
+    - name: Set up Python
+      uses: actions/setup-python@v2
+      with:
+        python-version: 3.9
+    - name: Install flake8
+      run: pip install flake8
+    - name: Run flake8
+      run: flake8 .
\ No newline at end of file
index f2bf85724b43ea022b2504aae100a09d36aeff2e..093d4f2ed84222805beadacfdc9157171d5b1874 100644 (file)
@@ -8,6 +8,7 @@ py2exe.log
 *.kate-swp
 build/
 dist/
+zip/
 MANIFEST
 README.txt
 youtube-dl.1
@@ -46,6 +47,7 @@ updates_key.pem
 *.part
 *.ytdl
 *.swp
+*.spec
 test/local_parameters.json
 .tox
 youtube-dl.zsh
similarity index 100%
rename from .travis.yml
rename to .travis.yml.disabled
index 9588657c15b0360f258a807f767ce22981218230..928b525a0d587c977098612b4634a51525ef7134 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -1,4 +1,5 @@
-all: youtube-dlc README.md CONTRIBUTING.md README.txt youtube-dlc.1 youtube-dlc.bash-completion youtube-dlc.zsh youtube-dlc.fish supportedsites
+all: youtube-dlc README.md CONTRIBUTING.md README.txt issuetemplates youtube-dlc.1 youtube-dlc.bash-completion youtube-dlc.zsh youtube-dlc.fish supportedsites
+doc: README.md CONTRIBUTING.md issuetemplates supportedsites clean
 
 clean:
        rm -rf youtube-dlc.1.temp.md youtube-dlc.1 youtube-dlc.bash-completion README.txt MANIFEST build/ dist/ .coverage cover/ youtube-dlc.tar.gz youtube-dlc.zsh youtube-dlc.fish youtube_dlc/extractor/lazy_extractors.py *.dump *.part* *.ytdl *.info.json *.mp4 *.m4a *.flv *.mp3 *.avi *.mkv *.webm *.3gp *.wav *.ape *.swf *.jpg *.png CONTRIBUTING.md.tmp youtube-dlc youtube-dlc.exe
index 2ab8d2de9f3ef897d3e503244f6920b86398de3b..8a7e1b6db0ef3f291a2b5f4887db0ce233eae7e7 100644 (file)
--- a/README.md
+++ b/README.md
@@ -1,16 +1,18 @@
+[![Build Status](https://github.com/pukkandan/yt-dlc/workflows/CI/badge.svg)](https://github.com/pukkandan/yt-dlc/actions?query=workflow%3ACI)
+[![Release Version](https://img.shields.io/badge/Release-2021.01.07-brightgreen)](https://github.com/pukkandan/yt-dlc/releases/latest)
+[![License: Unlicense](https://img.shields.io/badge/License-Unlicense-blue.svg)](https://github.com/pukkandan/yt-dlc/blob/master/LICENSE)
+
+youtube-dlc - download videos from youtube.com and many other [video platforms](docs/supportedsites.md)
+
 This is a fork of [youtube-dlc](https://github.com/blackjack4494/yt-dlc) which is inturn a fork of [youtube-dl](https://github.com/ytdl-org/youtube-dl)
 
-<!--
-[![](https://img.shields.io/badge/Fork-2020.10.19.01-brightgreen?style=for-the-badge&logo=GitHub)](https://github.com/pukkandan/youtube-dl)
-[![](https://img.shields.io/badge/youtube--dl-2020.09.20-blue?style=for-the-badge&logo=GitHub)](https://github.com/ytdl-org/youtube-dl)
--->
-
-- [CHANGES FROM YOUTUBE-DLC](#changes)
-- [ABOUT THIS FORK](#about-this-fork)
-- [INSTALLATION](#installation)
-- [YOUTUBE-DLC](#youtube-dlc)
-- [DESCRIPTION](#description)
-- [OPTIONS](#options)
+* [CHANGES FROM YOUTUBE-DLC](#changes)
+* [INSTALLATION](#installation)
+    * [UPDATE](#update)
+    * [COMPILE](#compile)
+* [YOUTUBE-DLC](#youtube-dlc)
+* [DESCRIPTION](#description)
+* [OPTIONS](#options)
     * [Network Options](#network-options)
     * [Geo Restriction](#geo-restriction)
     * [Video Selection](#video-selection)
     * [Post-processing Options](#post-processing-options)
     * [SponSkrub Options (SponsorBlock)](#sponskrub-options-sponsorblock)
     * [Extractor Options](#extractor-options)
-- [CONFIGURATION](#configuration)
+* [CONFIGURATION](#configuration)
     * [Authentication with .netrc file](#authentication-with-netrc-file)
-- [OUTPUT TEMPLATE](#output-template)
+* [OUTPUT TEMPLATE](#output-template)
     * [Output template and Windows batch files](#output-template-and-windows-batch-files)
     * [Output template examples](#output-template-examples)
-- [FORMAT SELECTION](#format-selection)
+* [FORMAT SELECTION](#format-selection)
     * [Filtering Formats](#filtering-formats)
     * [Sorting Formats](#sorting-formats)
     * [Format Selection examples](#format-selection-examples)
-- [VIDEO SELECTION](#video-selection-1)
-- [MORE](#more)
+* [VIDEO SELECTION](#video-selection-1)
+* [MORE](#more)
 
 
 # CHANGES
 See [commits](https://github.com/pukkandan/yt-dlc/commits) for more details
 
-### 2021.01.05.01
+### 2021.01.05
 * **Format Sort:** Added `--format-sort` (`-S`), `--format-sort-force` (`--S-force`) - See [Sorting Formats](#sorting-formats) for details
 * **Format Selection:** See [Format Selection](#format-selection) for details
     * New format selectors: `best*`, `worst*`, `bestvideo*`, `bestaudio*`, `worstvideo*`, `worstaudio*`
@@ -63,7 +65,7 @@ ### 2021.01.05.01
 * **Merge youtube-dl:** Upto [2020.01.03](https://github.com/ytdl-org/youtube-dl/commit/8e953dcbb10a1a42f4e12e4e132657cb0100a1f8) - See [blackjack4494/yt-dlc#280](https://github.com/blackjack4494/yt-dlc/pull/280) for details
 * Cleaned up the fork for public use
 
-### 2021.01.05.02
+### 2021.01.05-2
 * **Changed defaults:**
     * Enabled `--ignore`
     * Disabled `--video-multistreams` and `--audio-multistreams`
@@ -73,68 +75,26 @@ ### 2021.01.05.02
     * Changed default output template to `%(title)s [%(id)s].%(ext)s`
     * Enabled `--list-formats-as-table`
 
-
-# ABOUT THIS FORK
-
-WIP
-
+### 2021.01.07
+* Removed priority of `av01` codec in `-S` since most devices don't support it yet
+* Added `duration_string` to be used in `--output`
+* Created First Release
 
 # INSTALLATION
 
-WIP
-
-<!--
-I don't plan on making any releases. If anyone wants to create and maintain releases for this fork, please contact me.
-
-You can clone / [download](https://github.com/pukkandan/youtube-dl/archive/master.zip) this repository and run it with `python youtube_dl/__main__.py <args>`. Alternatively, you can install the fork using `pip install --upgrade https://github.com/pukkandan/youtube-dl/archive/master.zip` and run it with `python -m youtube_dl <args>`.
-
-In order to update, simply repeat the process.
--->
-
-
-
-
-# YOUTUBE-DLC
-
-[![Build Status](https://travis-ci.com/blackjack4494/yt-dlc.svg?branch=master)](https://travis-ci.com/blackjack4494/yt-dlc)
-[![PyPi](https://img.shields.io/pypi/v/youtube-dlc.svg)](https://pypi.org/project/youtube-dlc)
-
-[![Gitter chat](https://img.shields.io/gitter/room/youtube-dlc/community)](https://gitter.im/youtube-dlc) 
-[![License: Unlicense](https://img.shields.io/badge/license-Unlicense-blue.svg)](https://github.com/blackjack4494/yt-dlc/blob/master/LICENSE)
-
-youtube-dlc - download videos from youtube.com or other video platforms.
-
-youtube-dlc is a fork of youtube-dl with the intention of getting features tested by the community merged in the tool faster, since youtube-dl's development seems to be slowing down. (https://web.archive.org/web/20201014194602/https://github.com/ytdl-org/youtube-dl/issues/26462)
-
-
-### INSTALLATION
-[How to update](#update)
-
-**All Platforms**  
-Preferred way using pip:  
-You may want to use `python3` instead of `python`
-
-    python -m pip install --upgrade youtube-dlc
+To use the latest version, simply download and run the [latest release](https://github.com/pukkandan/yt-dlc/releases/latest).
+Currently, there is no support for any package managers.
 
 If you want to install the current master branch
 
-    python -m pip install git+https://github.com/blackjack4494/yt-dlc
-
-**UNIX** (Linux, macOS, etc.)  
-Using wget:
-
-    sudo wget https://github.com/blackjack4494/yt-dlc/releases/latest/download/youtube-dlc -O /usr/local/bin/youtube-dlc
-    sudo chmod a+rx /usr/local/bin/youtube-dlc
-
-Using curl:
-
-    sudo curl -L https://github.com/blackjack4494/yt-dlc/releases/latest/download/youtube-dlc -o /usr/local/bin/youtube-dlc
-    sudo chmod a+rx /usr/local/bin/youtube-dlc
+    python -m pip install git+https://github.com/pukkandan/yt-dlc
 
+### UPDATE
+**DO NOT UPDATE using `-U` !** instead download binaries again
 
-**Windows** users can download [youtube-dlc.exe](https://github.com/blackjack4494/yt-dlc/releases/latest/download/youtube-dlc.exe) (**do not** put in `C:\Windows\System32`!).  
+### COMPILE
 
-**Compile**
+**For Windows**:
 To build the Windows executable yourself (without version info!)
 
     python -m pip install --upgrade pyinstaller
@@ -146,7 +106,7 @@ ### INSTALLATION
 New way to build Windows is to use `python pyinst.py` (please use python3 64Bit)  
 For 32Bit Version use a 32Bit Version of python (3 preferred here as well) and run `python pyinst32.py`  
 
-For Unix:
+**For Unix**:
 You will need the required build tools  
 python, make (GNU), pandoc, zip, nosetests  
 Then simply type this
@@ -154,29 +114,22 @@ ### INSTALLATION
     make
 
 
-### UPDATE
-**DO NOT UPDATE using `-U` !** instead download binaries again or when installed with pip use a described above when installing.  
-I will add some memorable short links to the binaries so you can download them easier.
-
-
-
-
-
 # DESCRIPTION
 **youtube-dlc** is a command-line program to download videos from YouTube.com and a few more sites. It requires the Python interpreter, version 2.6, 2.7, or 3.2+, and it is not platform specific. It should work on your Unix box, on Windows or on macOS. It is released to the public domain, which means you can modify it, redistribute it or use it however you like.
 
     youtube-dlc [OPTIONS] URL [URL...]
 
+
 # OPTIONS
 `Ctrl+F` is your friend :D
+<!-- Autogenerated -->
 
+## General Options:
     -h, --help                       Print this help text and exit
     --version                        Print program version and exit
-    -U, --update                     (Doesn't work since there is no release) 
-                                     Update this program to latest version. Make
-                                     sure that you have sufficient permissions
-                                     (run with sudo if needed)
-                                     
+    -U, --update                     [BROKEN] Update this program to latest
+                                     version. Make sure that you have sufficient
+                                     permissions (run with sudo if needed)
     -i, --ignore-errors              Continue on download errors, for example to
                                      skip unavailable videos in a playlist
                                      (default) (Same as --no-abort-on-error)
@@ -211,7 +164,7 @@ # OPTIONS
     --flat-videos                    Do not resolve the video urls
     --no-flat-playlist               Extract the videos of a playlist
     --mark-watched                   Mark videos watched (YouTube only)
-    --no-mark-watched                Do not mark videos watched (YouTube only)
+    --no-mark-watched                Do not mark videos watched
     --no-color                       Do not emit color codes in output
 
 ## Network Options:
@@ -266,11 +219,11 @@ ## Video Selection:
                                      The date can be "YYYYMMDD" or in the format
                                      "(now|today)[+-][0-9](day|week|month|year)(s)?"
     --datebefore DATE                Download only videos uploaded on or before
-                                     this date (i.e. inclusive). The date formats  
-                                     accepted is the same as --date
+                                     this date. The date formats accepted is the
+                                     same as --date
     --dateafter DATE                 Download only videos uploaded on or after
-                                     this date (i.e. inclusive). The date formats  
-                                     accepted is the same as --date
+                                     this date. The date formats accepted is the
+                                     same as --date
     --min-views COUNT                Do not download any videos with less than
                                      COUNT views
     --max-views COUNT                Do not download any videos with more than
@@ -294,7 +247,7 @@ ## Video Selection:
                                      service), but who also have a description,
                                      use --match-filter "like_count > 100 &
                                      dislike_count <? 50 & description" .
-    --no-match-filter FILTER         Do not use generic video filter (default)
+    --no-match-filter                Do not use generic video filter (default)
     --no-playlist                    Download only the video, if the URL refers
                                      to a video and a playlist.
     --yes-playlist                   Download the playlist, if the URL refers to
@@ -304,10 +257,11 @@ ## Video Selection:
     --download-archive FILE          Download only videos not listed in the
                                      archive file. Record the IDs of all
                                      downloaded videos in it.
-    --no-download-archive            Do not use archive file (default)
     --break-on-existing              Stop the download process after attempting
                                      to download a file that's in the archive.
-    --include-ads                    Download advertisements as well (experimental)
+    --no-download-archive            Do not use archive file (default)
+    --include-ads                    Download advertisements as well
+                                     (experimental)
     --no-include-ads                 Do not download advertisements (default)
 
 ## Download Options:
@@ -325,14 +279,14 @@ ## Download Options:
                                      (Same as --no-skip-unavailable-fragments)
     --keep-fragments                 Keep downloaded fragments on disk after
                                      downloading is finished
-    --no-keep-fragments              Delete downloaded fragments after downloading
-                                     is finished (default)
+    --no-keep-fragments              Delete downloaded fragments after
+                                     downloading is finished (default)
     --buffer-size SIZE               Size of download buffer (e.g. 1024 or 16K)
                                      (default is 1024)
-    --resize-buffer                  The buffer size is automatically resized from 
-                                     an initial value of --buffer-size (default)
-    --no-resize-buffer               Do not automatically adjust the buffer
-                                     size
+    --resize-buffer                  The buffer size is automatically resized
+                                     from an initial value of --buffer-size
+                                     (default)
+    --no-resize-buffer               Do not automatically adjust the buffer size
     --http-chunk-size SIZE           Size of a chunk for chunk-based HTTP
                                      downloading (e.g. 10485760 or 10M) (default
                                      is disabled). May be useful for bypassing
@@ -340,6 +294,7 @@ ## Download Options:
                                      (experimental)
     --playlist-reverse               Download playlist videos in reverse order
     --no-playlist-reverse            Download playlist videos in default order
+                                     (default)
     --playlist-random                Download playlist videos in random order
     --xattr-set-filesize             Set file xattribute ytdl.filesize with
                                      expected file size
@@ -363,24 +318,24 @@ ## Filesystem Options:
                                      with '#', ';' or ']' are considered as
                                      comments and ignored.
     -o, --output TEMPLATE            Output filename template, see the "OUTPUT
-                                     TEMPLATE" for all the info
+                                     TEMPLATE" for details
     --autonumber-start NUMBER        Specify the start value for %(autonumber)s
                                      (default is 1)
     --restrict-filenames             Restrict filenames to only ASCII
                                      characters, and avoid "&" and spaces in
                                      filenames
-    --no-restrict-filenames          Allow Unicode characters, "&" and spaces
-                                     in filenames (default)
+    --no-restrict-filenames          Allow Unicode characters, "&" and spaces in
+                                     filenames (default)
     -w, --no-overwrites              Do not overwrite files
     -c, --continue                   Resume partially downloaded files (default)
-    --no-continue                    Do not resume partially downloaded files
-                                     (restart from beginning)
-    --part                           Use .part files instead of writing directly 
+    --no-continue                    Restart download of partially downloaded
+                                     files from beginning
+    --part                           Use .part files instead of writing directly
                                      into output file (default)
     --no-part                        Do not use .part files - write directly
                                      into output file
-    --mtime                          Use the Last-modified header to set the 
-                                     file modification time
+    --mtime                          Use the Last-modified header to set the
+                                     file modification time (default)
     --no-mtime                       Do not use the Last-modified header to set
                                      the file modification time
     --write-description              Write video description to a .description
@@ -407,17 +362,17 @@ ## Filesystem Options:
                                      may change.
     --no-cache-dir                   Disable filesystem caching
     --rm-cache-dir                   Delete all filesystem cache files
-    --trim-file-name                 Limit the filename length (extension
+    --trim-file-name LENGTH          Limit the filename length (extension
                                      excluded)
 
-## Thumbnail images:
+## Thumbnail Images:
     --write-thumbnail                Write thumbnail image to disk
     --no-write-thumbnail             Do not write thumbnail image to disk
+                                     (default)
     --write-all-thumbnails           Write all thumbnail image formats to disk
     --list-thumbnails                Simulate and list all available thumbnail
                                      formats
 
-
 ## Internet Shortcut Options:
     --write-link                     Write an internet shortcut file, depending on 
                                      the current platform (.url/.webloc/.desktop). 
@@ -493,8 +448,7 @@ ## Workarounds:
                                      before each download (maximum possible
                                      number of seconds to sleep). Must only be
                                      used along with --min-sleep-interval.
-    --sleep-subtitles                Enforce sleep interval on subtitles as well.
-
+    --sleep-subtitles SECONDS        Enforce sleep interval on subtitles as well
 
 ## Video Format Options:
     -f, --format FORMAT              Video format code, see "FORMAT SELECTION"
@@ -505,16 +459,16 @@ ## Video Format Options:
                                      precedence over all fields, see "Sorting 
                                      Formats" for more details
     --no-format-sort-force           Some fields have precedence over the user
-                                     specified sort order, see "Sorting Formats"
-                                     for more details (default)
-    --video-multistreams             Allow multiple video streams to be merged into
-                                     a single file
-    --no-video-multistreams          Only one video stream is downloaded for each
-                                     output file (default)
-    --audio-multistreams             Allow multiple audio streams to be merged into
-                                     a single file
-    --no-audio-multistreams          Only one audio stream is downloaded for each
-                                     output file (default)
+                                     specified sort order (default), see
+                                     "Sorting Formats" for more details
+    --video-multistreams             Allow multiple video streams to be merged
+                                     into a single file
+    --no-video-multistreams          Only one video stream is downloaded for
+                                     each output file (default)
+    --audio-multistreams             Allow multiple audio streams to be merged
+                                     into a single file
+    --no-audio-multistreams          Only one audio stream is downloaded for
+                                     each output file (default)
     --all-formats                    Download all available video formats
     --prefer-free-formats            Prefer free video formats unless a specific
                                      one is requested
@@ -522,31 +476,31 @@ ## Video Format Options:
                                      videos
     --list-formats-as-table          Present the output of -F in a more tabular
                                      form (default)
-    --list-formats-old               Present the output of -F in older form
                                      (Same as --no-list-formats-as-table)
-    --youtube-skip-dash-manifest     Do not download the DASH manifests and
-                                     related data on YouTube videos
-                                     (Same as --no-youtube-include-dash-manifest)
+    --list-formats-old               Present the output of -F in the old form
     --youtube-include-dash-manifest  Download the DASH manifests and related data 
                                      on YouTube videos (default)
                                      (Same as --no-youtube-skip-dash-manifest)
-    --youtube-skip-hls-manifest      Do not download the HLS manifests and
+    --youtube-skip-dash-manifest     Do not download the DASH manifests and
                                      related data on YouTube videos
-                                     (Same as --no-youtube-include-hls-manifest)
+                                     (Same as --no-youtube-include-dash-manifest)
     --youtube-include-hls-manifest   Download the HLS manifests and related data 
                                      on YouTube videos (default)
                                      (Same as --no-youtube-skip-hls-manifest)
+    --youtube-skip-hls-manifest      Do not download the HLS manifests and
+                                     related data on YouTube videos
+                                     (Same as --no-youtube-include-hls-manifest)
     --merge-output-format FORMAT     If a merge is required (e.g.
                                      bestvideo+bestaudio), output to given
                                      container format. One of mkv, mp4, ogg,
                                      webm, flv. Ignored if no merge is required
 
 ## Subtitle Options:
-    --write-sub                      Write subtitle file
-    --no-write-sub                   Do not write subtitle file (default)
-    --write-auto-sub                 Write automatically generated subtitle file
+    --write-subs                     Write subtitle file
+    --no-write-subs                  Do not write subtitle file (default)
+    --write-auto-subs                Write automatically generated subtitle file
                                      (YouTube only)
-    --no-write-auto-sub              Do not write automatically generated
+    --no-write-auto-subs             Do not write automatically generated
                                      subtitle file (default)
     --all-subs                       Download all the available subtitles of the
                                      video
@@ -577,7 +531,7 @@ ## Adobe Pass Options:
     --ap-list-mso                    List all supported multiple-system
                                      operators
 
-## Post-processing Options:
+## Post-Processing Options:
     -x, --extract-audio              Convert video files to audio-only files
                                      (requires ffmpeg or avconv and ffprobe or
                                      avprobe)
@@ -589,23 +543,23 @@ ## Post-processing Options:
                                      a value between 0 (better) and 9 (worse)
                                      for VBR or a specific bitrate like 128K
                                      (default 5)
-    --remux-video FORMAT             Remux the video to another container format
-                                     if necessary (currently supported: mp4|mkv,
-                                     target container format must support video
-                                     / audio encoding, remuxing may fail)
-    --recode-video FORMAT            Encode the video to another format if
-                                     necessary (currently supported:
-                                     mp4|flv|ogg|webm|mkv|avi)
+    --remux-video FORMAT             Remux the video into another container if
+                                     necessary (currently supported: mp4|mkv).
+                                     If target container does not support the
+                                     video/audio codec, remuxing will fail
+    --recode-video FORMAT            Re-encode the video into another format if
+                                     re-encoding is necessary (currently
+                                     supported: mp4|flv|ogg|webm|mkv|avi)
     --postprocessor-args ARGS        Give these arguments to the postprocessor
-    -k, --keep-video                 Keep the intermediate video file on disk 
+    -k, --keep-video                 Keep the intermediate video file on disk
                                      after post-processing
-    --no-keep-video                  Delete the intermediate video file after 
+    --no-keep-video                  Delete the intermediate video file after
                                      post-processing (default)
     --post-overwrites                Overwrite post-processed files (default)
     --no-post-overwrites             Do not overwrite post-processed files
     --embed-subs                     Embed subtitles in the video (only for mp4,
                                      webm and mkv videos)
-    --no-embed-subs                  Do not embed subtitles in the video (default)
+    --no-embed-subs                  Do not embed subtitles (default)
     --embed-thumbnail                Embed thumbnail in the audio as cover art
     --no-embed-thumbnail             Do not embed thumbnail (default)
     --add-metadata                   Write metadata to the video file
@@ -642,23 +596,24 @@ ## Post-processing Options:
     --convert-subs FORMAT            Convert the subtitles to other format
                                      (currently supported: srt|ass|vtt|lrc)
 
-## SponSkrub Options (SponsorBlock)
-    --sponskrub                      Use sponskrub to mark sponsored sections with
-                                     the data available in SponsorBlock API. This
-                                     is enabled by default if the sponskrub binary
-                                     exists (Youtube only)
+## [SponSkrub](https://github.com/faissaloo/SponSkrub) Options ([SponsorBlock](https://sponsor.ajay.app)):
+    --sponskrub                      Use sponskrub to mark sponsored sections
+                                     with the data available in SponsorBlock
+                                     API. This is enabled by default if the
+                                     sponskrub binary exists (Youtube only)
+    --no-sponskrub                   Do not use sponskrub
     --sponskrub-cut                  Cut out the sponsor sections instead of
                                      simply marking them
     --no-sponskrub-cut               Simply mark the sponsor sections, not cut
                                      them out (default)
-    --sponskrub-force                Allow cutting out the sponsor sections even
-                                     if the video was already downloaded.
+    --sponskrub-force                Run sponskrub even if the video was already
+                                     downloaded
     --no-sponskrub-force             Do not cut out the sponsor sections if the
                                      video was already downloaded (default)
-    --sponskrub-location             Location of the sponskrub binary;
-                                     either the path to the binary or its
-                                     containing directory
-    --sponskrub-args                 Give these arguments to sponskrub
+    --sponskrub-location PATH        Location of the sponskrub binary; either
+                                     the path to the binary or its containing
+                                     directory.
+    --sponskrub-args None            Give these arguments to sponskrub
 
 ## Extractor Options:
     --ignore-dynamic-mpd             Do not process dynamic DASH manifests
@@ -871,19 +826,14 @@ # FORMAT SELECTION
 
  - `b*`, `best*`: Select the best quality format irrespective of whether it contains video or audio.
  - `w*`, `worst*`: Select the worst quality format irrespective of whether it contains video or audio.
-
  - `b`, `best`: Select the best quality format that contains both video and audio. Equivalent to `best*[vcodec!=none][acodec!=none]`
  - `w`, `worst`: Select the worst quality format that contains both video and audio. Equivalent to `worst*[vcodec!=none][acodec!=none]`
-
  - `bv`, `bestvideo`: Select the best quality video-only format. Equivalent to `best*[acodec=none]`
  - `wv`, `worstvideo`: Select the worst quality video-only format. Equivalent to `worst*[acodec=none]`
-
  - `bv*`, `bestvideo*`: Select the best quality format that contains video. It may also contain audio. Equivalent to `best*[vcodec!=none]`
  - `wv*`, `worstvideo*`: Select the worst quality format that contains video. It may also contain audio. Equivalent to `worst*[vcodec!=none]`
-
  - `ba`, `bestaudio`: Select the best quality audio-only format. Equivalent to `best*[vcodec=none]`
  - `wa`, `worstaudio`: Select the worst quality audio-only format. Equivalent to `worst*[vcodec=none]`
-
  - `ba*`, `bestaudio*`: Select the best quality format that contains audio. It may also contain video. Equivalent to `best*[acodec!=none]`
  - `wa*`, `worstaudio*`: Select the worst quality format that contains audio. It may also contain video. Equivalent to `worst*[acodec!=none]`
 
@@ -942,7 +892,7 @@ ## Sorting Formats
  - `vcodec`, `video_codec`: Video Codec (`vp9` > `h265` > `h264` > `vp8` > `h263` > `theora` > other > unknown)
  - `acodec`, `audio_codec`: Audio Codec (`opus` > `vorbis` > `aac` > `mp4a` > `mp3` > `ac3` > `dts` > other > unknown)
  - `codec`: Equivalent to `vcodec,acodec`
- - `vext`, `video_ext`: Video Extension (`mp4` > `flv` > `webm` > other > unknown). If `--prefer-free-formats` is used, `webm` is prefered.
+ - `vext`, `video_ext`: Video Extension (`mp4` > `webm` > `flv` > other > unknown). If `--prefer-free-formats` is used, `webm` is prefered.
  - `aext`, `audio_ext`: Audio Extension (`m4a` > `aac` > `mp3` > `ogg` > `opus` > `webm` > other > unknown). If `--prefer-free-formats` is used, the order changes to `opus` > `ogg` > `webm` > `m4a` > `mp3` > `aac`.
  - `ext`, `extension`: Equivalent to `vext,aext`
  - `filesize`: Exact filesize, if know in advance. This will be unavailable for mu38 and DASH formats.
index 4714d81a6ee17ea117a2a4378dd8b6c5f80fb968..3e11be6fa1c6f55c2a4f1e73d3439081800ab947 100644 (file)
@@ -1,3 +1,5 @@
+# Unused
+
 #!/usr/bin/env python
 from __future__ import unicode_literals
 
diff --git a/devscripts/install_jython.sh b/devscripts/install_jython.sh
deleted file mode 100755 (executable)
index bafca4d..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-#!/bin/bash
-
-wget http://central.maven.org/maven2/org/python/jython-installer/2.7.1/jython-installer-2.7.1.jar
-java -jar jython-installer-2.7.1.jar -s -d "$HOME/jython"
-$HOME/jython/bin/jython -m pip install nose
index 73f203582aea4ef1f7f31576cfd11b50dc96ebfe..9cbf5b7498060dbbeafe2fb7634caae9c07ee8ca 100755 (executable)
 with io.open(README_FILE, encoding='utf-8') as f:
     oldreadme = f.read()
 
-header = oldreadme[:oldreadme.index('# OPTIONS')]
-footer = oldreadme[oldreadme.index('# CONFIGURATION'):]
+header = oldreadme[:oldreadme.index('## General Options:')]
+footer = oldreadme[oldreadme.index('# CONFIGURATION'):]
 
-options = helptext[helptext.index('  General Options:') + 19:]
+options = helptext[helptext.index('  General Options:'):]
 options = re.sub(r'(?m)^  (\w.+)$', r'## \1', options)
-options = '# OPTIONS\n' + options + '\n'
+options = options + '\n'
 
 with io.open(README_FILE, 'w', encoding='utf-8') as f:
     f.write(header)
     f.write(options)
-    f.write(footer)
+    f.write(footer)
index 04cb7fec1b6d185ddd126564804cf949a6f5dd63..2da2ac4718b9e70b5ebf4ec867644398ee9be892 100755 (executable)
@@ -1,3 +1,4 @@
+# Unused
 #!/bin/bash
 
 # IMPORTANT: the following assumptions are made
diff --git a/devscripts/run_tests.bat b/devscripts/run_tests.bat
new file mode 100644 (file)
index 0000000..79359b5
--- /dev/null
@@ -0,0 +1,17 @@
+@echo off
+
+rem Keep this list in sync with the `offlinetest` target in Makefile
+set DOWNLOAD_TESTS="age_restriction^|download^|iqiyi_sdk_interpreter^|socks^|subtitles^|write_annotations^|youtube_lists^|youtube_signature"
+
+if "%YTDL_TEST_SET%" == "core" (
+    set test_set="-I test_("%DOWNLOAD_TESTS%")\.py"
+    set multiprocess_args=""
+) else if "%YTDL_TEST_SET%" == "download" (
+    set test_set="-I test_(?!"%DOWNLOAD_TESTS%").+\.py"
+    set multiprocess_args="--processes=4 --process-timeout=540"
+) else (
+    echo YTDL_TEST_SET is not set or invalid
+    exit /b 1
+)
+
+nosetests test --verbose %test_set:"=% %multiprocess_args:"=%
index ef90a56ab2e01a9dfc71267fd242fdcc3f70bfa0..b8c4269c48aa11ce74711b101b1d200fa4874ac6 100644 (file)
@@ -1,3 +1,5 @@
+# Unused
+
 #!/usr/bin/env python
 from __future__ import unicode_literals
 
index 8aede26a911703a29ffc31f8ff4f3fd104ae24ee..54911fcc5629efe81b9422bcc22fd6f41b089717 100644 (file)
@@ -44,6 +44,7 @@ # Supported sites
  - **AlphaPorno**
  - **Alura**
  - **AluraCourse**
+ - **Amara**
  - **AMCNetworks**
  - **AmericasTestKitchen**
  - **anderetijden**: npo.nl, ntr.nl, omroepwnl.nl, zapp.nl and npo3.nl
@@ -62,6 +63,7 @@ # Supported sites
  - **ARD:mediathek**
  - **ARDBetaMediathek**
  - **Arkena**
+ - **arte.sky.it**
  - **ArteTV**
  - **ArteTVEmbed**
  - **ArteTVPlaylist**
@@ -108,7 +110,8 @@ # Supported sites
  - **BIQLE**
  - **BitChute**
  - **BitChuteChannel**
- - **bitwave.tv**
+ - **bitwave:replay**
+ - **bitwave:stream**
  - **BleacherReport**
  - **BleacherReportCMS**
  - **blinkx**
@@ -330,6 +333,8 @@ # Supported sites
  - **Gaskrank**
  - **Gazeta**
  - **GDCVault**
+ - **Gedi**
+ - **GediEmbeds**
  - **generic**: Generic downloader that works on some sites
  - **Gfycat**
  - **GiantBomb**
@@ -693,6 +698,7 @@ # Supported sites
  - **Platzi**
  - **PlatziCourse**
  - **play.fm**
+ - **player.sky.it**
  - **PlayPlusTV**
  - **PlaysTV**
  - **Playtvak**: Playtvak.cz, iDNES.cz and Lidovky.cz
@@ -749,6 +755,9 @@ # Supported sites
  - **RayWenderlich**
  - **RayWenderlichCourse**
  - **RBMARadio**
+ - **RCS**
+ - **RCSEmbeds**
+ - **RCSVarious**
  - **RDS**: RDS.ca
  - **RedBull**
  - **RedBullEmbed**
@@ -934,11 +943,10 @@ # Supported sites
  - **ThisAmericanLife**
  - **ThisAV**
  - **ThisOldHouse**
+ - **ThisVid**
  - **TikTok**
- - **TikTokUser** (Currently broken)
  - **tinypic**: tinypic.com videos
  - **TMZ**
- - **TMZArticle**
  - **TNAFlix**
  - **TNAFlixNetworkEmbed**
  - **toggle**
@@ -1045,6 +1053,8 @@ # Supported sites
  - **Viddler**
  - **Videa**
  - **video.google:search**: Google Video search
+ - **video.sky.it**
+ - **video.sky.it:live**
  - **VideoDetective**
  - **videofy.me**
  - **videomore**
@@ -1183,9 +1193,9 @@ # Supported sites
  - **youtube:history**: Youtube watch history, ":ythistory" for short (requires authentication)
  - **youtube:playlist**: YouTube.com playlists
  - **youtube:recommended**: YouTube.com recommended videos, ":ytrec" for short (requires authentication)
- - **youtube:search**: YouTube.com searches, "ytsearch" keyword
+ - **youtube:search**: YouTube.com searches
  - **youtube:search:date**: YouTube.com searches, newest videos first, "ytsearchdate" keyword
- - **youtube:search_url**: YouTube.com search URLs
+ - **youtube:search_url**: YouTube.com searches, "ytsearch" keyword
  - **youtube:subscriptions**: YouTube.com subscriptions feed, ":ytsubs" for short (requires authentication)
  - **youtube:tab**: YouTube.com tab
  - **youtube:watchlater**: Youtube watch later list, ":ytwatchlater" for short (requires authentication)
@@ -1197,4 +1207,5 @@ # Supported sites
  - **ZDF-3sat**
  - **ZDFChannel**
  - **zingmp3**: mp3.zing.vn
+ - **zoom**
  - **Zype**
index 5d779717dfaf0304dbf7d0919c2649993d3e53e3..e1eb53f3825da2d615f0a6c4d557576a8535e1c5 100644 (file)
@@ -1,3 +1,5 @@
+# Unused
+
 from __future__ import unicode_literals
 from datetime import datetime
 import urllib.request
index f658aaa0ace11ac7599e26fac1c6138bea0d18aa..ffc0fd2fd2b9570beb67d23220b69b7760359f9e 100644 (file)
--- a/setup.cfg
+++ b/setup.cfg
@@ -2,5 +2,5 @@
 universal = True
 
 [flake8]
-exclude = youtube_dlc/extractor/__init__.py,devscripts/buildserver.py,devscripts/lazy_load_template.py,devscripts/make_issue_template.py,setup.py,build,.git,venv
-ignore = E402,E501,E731,E741,W503
+exclude = youtube_dlc/extractor/__init__.py,devscripts/buildserver.py,devscripts/lazy_load_template.py,devscripts/make_issue_template.py,setup.py,build,.git,venv,devscripts/create-github-release.py,devscripts/release.sh,devscripts/show-downloads-statistics.py,scripts/update-version.py
+ignore = E402,E501,E731,E741,W503
\ No newline at end of file
index 6908f240455ae768b2e4322e9d58616f0f1fd314..346c5cb64ffed3431092301286aa2bb6cf4feaf3 100644 (file)
--- a/setup.py
+++ b/setup.py
@@ -66,7 +66,7 @@ def run(self):
     description=DESCRIPTION,
     long_description=LONG_DESCRIPTION,
     # long_description_content_type="text/markdown",
-    url="https://github.com/blackjack4494/yt-dlc",
+    url="https://github.com/pukkandan/yt-dlc",
     packages=find_packages(exclude=("youtube_dl","test",)),
        #packages=[
     #    'youtube_dlc',
diff --git a/version.txt b/version.txt
deleted file mode 100644 (file)
index a6d68d6..0000000
+++ /dev/null
@@ -1 +0,0 @@
-2021.01.05.02
\ No newline at end of file
diff --git a/youtube-dlc.cmd b/youtube-dlc.cmd
new file mode 100644 (file)
index 0000000..382a5e5
--- /dev/null
@@ -0,0 +1 @@
+py "%~dp0\youtube_dl\__main__.py"
\ No newline at end of file
index 6246b8a8397aa3cf8330ca0f51b0b55ab8d294fd..6b4c842614400e08639b92aca255e04f97e28b79 100644 (file)
     ExtractorError,
     float_or_none,
     HEADRequest,
+    int_or_none,
     is_html,
     js_to_json,
     KNOWN_EXTENSIONS,
     merge_dicts,
     mimetype2ext,
     orderedSet,
+    parse_duration,
     sanitized_Request,
     smuggle_url,
     unescapeHTML,
@@ -35,6 +37,7 @@
     url_or_none,
     xpath_attr,
     xpath_text,
+    xpath_with_ns,
 )
 from .commonprotocols import RtmpIE
 from .brightcove import (
index b767ca0ddc9cf53d540bc1d5848736586d6f5e19..4122ac880cc178a8e8e4bee6f0167480c6c9f158 100644 (file)
@@ -2,7 +2,6 @@
 from __future__ import unicode_literals
 
 import json
-import re
 
 from .common import InfoExtractor
 from .brightcove import BrightcoveNewIE
index 0b240d27f5d95e342412131e0f0a0cbd701e8586..b5937233b90bf53dfcf051198c564cafa9ae1845 100644 (file)
@@ -1,6 +1,5 @@
 # coding: utf-8
 from __future__ import unicode_literals
-import json
 
 from .telecinco import TelecincoIE
 from ..utils import (
index 34892d69d9d25204b779b48b5f4cbb930536f567..ab131a07d1d4d1cbda7cf4a1c7ed7c61f58dd9a5 100644 (file)
@@ -324,7 +324,7 @@ def _make_video_result(node):
     return {
         '_type': 'url_transparent',
         'ie_key': TwitchVodIE.ie_key(),
-        'id': 'v'+ video_id,
+        'id': 'v' + video_id,
         'url': 'https://www.twitch.tv/videos/%s' % video_id,
         'title': node.get('title'),
         'thumbnail': node.get('previewThumbnailURL'),
index 5cb5924f8041ac13fc97ee8f9f736617f6a627eb..9658ecea78e093b8665134bafc5cfb2271ea1f4e 100644 (file)
@@ -47,6 +47,7 @@ def _real_extract(self, url):
         media_resource = metadata['mediaResource']
 
         formats = []
+        subtitles = {}
 
         # check if the metadata contains a direct URL to a file
         for kind, media in media_resource.items():
@@ -93,7 +94,6 @@ def _real_extract(self, url):
 
         self._sort_formats(formats)
 
-        subtitles = {}
         caption_url = media_resource.get('captionURL')
         if caption_url:
             subtitles['de'] = [{
index c67ecde04202567e6fa6675bc668519d67a9b00e..59e5bc2ab6645a2bbcfb1d5f41f08f7d25848faf 100644 (file)
@@ -3342,7 +3342,7 @@ def _real_extract(self, url):
         if is_home is not None and is_home.group('not_channel') is None and item_id != 'feed':
             self._downloader.report_warning(
                 'A channel/user page was given. All the channel\'s videos will be downloaded. '
-                'To download only the videos in the home page, add a "/home" to the URL')
+                'To download only the videos in the home page, add a "/featured" to the URL')
             url = '%s/videos%s' % (is_home.group('pre'), is_home.group('post') or '')
 
         # Handle both video/playlist URLs
@@ -3464,6 +3464,7 @@ def _real_extract(self, url):
 
 
 class YoutubeYtBeIE(InfoExtractor):
+    IE_DESC = 'youtu.be'
     _VALID_URL = r'https?://youtu\.be/(?P<id>[0-9A-Za-z_-]{11})/*?.*?\blist=(?P<playlist_id>%(playlist_id)s)' % {'playlist_id': YoutubeBaseInfoExtractor._PLAYLIST_ID_RE}
     _TESTS = [{
         'url': 'https://youtu.be/yeWKywCrFtk?list=PL2qgrgXsNUG5ig9cat4ohreBjYLAPC0J5',
@@ -3503,6 +3504,7 @@ def _real_extract(self, url):
 
 
 class YoutubeYtUserIE(InfoExtractor):
+    IE_DESC = 'YouTube.com user videos, URL or "ytuser" keyword'
     _VALID_URL = r'ytuser:(?P<id>.+)'
     _TESTS = [{
         'url': 'ytuser:phihag',
@@ -3647,12 +3649,12 @@ def _get_n_results(self, query, n):
 class YoutubeSearchDateIE(YoutubeSearchIE):
     IE_NAME = YoutubeSearchIE.IE_NAME + ':date'
     _SEARCH_KEY = 'ytsearchdate'
-    IE_DESC = 'YouTube.com searches, newest videos first'
+    IE_DESC = 'YouTube.com searches, newest videos first, "ytsearchdate" keyword'
     _SEARCH_PARAMS = 'CAI%3D'
 
 
 class YoutubeSearchURLIE(YoutubeSearchIE):
-    IE_DESC = 'YouTube.com search URLs'
+    IE_DESC = 'YouTube.com searches, "ytsearch" keyword'
     IE_NAME = YoutubeSearchIE.IE_NAME + '_url'
     _VALID_URL = r'https?://(?:www\.)?youtube\.com/results\?(.*?&)?(?:search_query|q)=(?:[^&]+)(?:[&]|$)'
     # _MAX_RESULTS = 100
index 4804fb1f08e72c21afc7cc5b05cdacc0c31acba3..3a7249ee644e67c40fbf7f7478cb51ac91279578 100644 (file)
@@ -140,7 +140,7 @@ def _comma_separated_values_options_callback(option, opt_str, value, parser):
     general.add_option(
         '-U', '--update',
         action='store_true', dest='update_self',
-        help='Update this program to latest version. Make sure that you have sufficient permissions (run with sudo if needed)')
+        help='[BROKEN] Update this program to latest version. Make sure that you have sufficient permissions (run with sudo if needed)')
     general.add_option(
         '-i', '--ignore-errors', '--no-abort-on-error',
         action='store_true', dest='ignoreerrors', default=True,
@@ -300,15 +300,22 @@ def _comma_separated_values_options_callback(option, opt_str, value, parser):
     selection.add_option(
         '--date',
         metavar='DATE', dest='date', default=None,
-        help='Download only videos uploaded in this date')
+        help=(
+            'Download only videos uploaded in this date.'
+            'The date can be "YYYYMMDD" or in the format'
+            '"(now|today)[+-][0-9](day|week|month|year)(s)?"'))
     selection.add_option(
         '--datebefore',
         metavar='DATE', dest='datebefore', default=None,
-        help='Download only videos uploaded on or before this date (i.e. inclusive)')
+        help=(
+            'Download only videos uploaded on or before this date. '
+            'The date formats accepted is the same as --date'))
     selection.add_option(
         '--dateafter',
         metavar='DATE', dest='dateafter', default=None,
-        help='Download only videos uploaded on or after this date (i.e. inclusive)')
+        help=(
+            'Download only videos uploaded on or after this date. '
+            'The date formats accepted is the same as --date'))
     selection.add_option(
         '--min-views',
         metavar='COUNT', dest='min_views', default=None, type=int,
@@ -420,7 +427,7 @@ def _comma_separated_values_options_callback(option, opt_str, value, parser):
         action='store', dest='format', metavar='FORMAT', default=None,
         help='Video format code, see "FORMAT SELECTION" for more details')
     video_format.add_option(
-        '-S', '--format-sort',
+        '-S', '--format-sort', metavar='SORTORDER',
         dest='format_sort', default=[],
         action='callback', callback=_comma_separated_values_options_callback, type='str',
         help='Sort the formats by the fields given, see "Sorting Formats" for more details')
@@ -545,13 +552,13 @@ def _comma_separated_values_options_callback(option, opt_str, value, parser):
         dest='fragment_retries', metavar='RETRIES', default=10,
         help='Number of retries for a fragment (default is %default), or "infinite" (DASH, hlsnative and ISM)')
     downloader.add_option(
-        '--skip-unavailable-fragments','--no-abort-on-unavailable-fragment',
+        '--skip-unavailable-fragments', '--no-abort-on-unavailable-fragment',
         action='store_true', dest='skip_unavailable_fragments', default=True,
         help='Skip unavailable fragments for DASH, hlsnative and ISM (default)')
     downloader.add_option(
         '--abort-on-unavailable-fragment', '--no-skip-unavailable-fragments',
         action='store_false', dest='skip_unavailable_fragments',
-        help='Abort downloading when some fragment is not available')
+        help='Abort downloading when some fragment is unavailable')
     downloader.add_option(
         '--keep-fragments',
         action='store_true', dest='keep_fragments', default=False,
@@ -588,7 +595,7 @@ def _comma_separated_values_options_callback(option, opt_str, value, parser):
         help='Download playlist videos in reverse order')
     downloader.add_option(
         '--no-playlist-reverse',
-        action='store_false', dest='playlist_reverse', 
+        action='store_false', dest='playlist_reverse',
         help='Download playlist videos in default order (default)')
     downloader.add_option(
         '--playlist-random',
@@ -617,7 +624,7 @@ def _comma_separated_values_options_callback(option, opt_str, value, parser):
         dest='external_downloader', metavar='COMMAND',
         help=(
             'Use the specified external downloader. '
-            'Currently supports %s' % ','.join(list_external_downloaders()) ))
+            'Currently supports %s' % ','.join(list_external_downloaders())))
     downloader.add_option(
         '--external-downloader-args',
         dest='external_downloader_args', metavar='ARGS',
@@ -670,7 +677,7 @@ def _comma_separated_values_options_callback(option, opt_str, value, parser):
             '(maximum possible number of seconds to sleep). Must only be used '
             'along with --min-sleep-interval.'))
     workarounds.add_option(
-        '--sleep-subtitles',
+        '--sleep-subtitles', metavar='SECONDS',
         dest='sleep_interval_subtitles', default=0, type=int,
         help='Enforce sleep interval on subtitles as well')
 
@@ -731,14 +738,14 @@ def _comma_separated_values_options_callback(option, opt_str, value, parser):
         '-J', '--dump-single-json',
         action='store_true', dest='dump_single_json', default=False,
         help=(
-            'Simulate, quiet but print JSON information for each command-line argument.'
+            'Simulate, quiet but print JSON information for each command-line argument. '
             'If the URL refers to a playlist, dump the whole playlist information in a single line.'))
     verbosity.add_option(
         '--print-json',
         action='store_true', dest='print_json', default=False,
         help='Be quiet and print the video information as JSON (video is still being downloaded).')
     verbosity.add_option(
-        '--force-write-download-archive', '--force-write-archive', '--force-download-archive',
+        '--force-write-archive', '--force-write-download-archive', '--force-download-archive',
         action='store_true', dest='force_write_download_archive', default=False,
         help=(
             'Force download archive entries to be written as far as no errors occur,'
@@ -900,7 +907,8 @@ def _comma_separated_values_options_callback(option, opt_str, value, parser):
         action='store_true', dest='rm_cachedir',
         help='Delete all filesystem cache files')
     filesystem.add_option(
-        '--trim-file-name', dest='trim_file_name', default=0, type=int,
+        '--trim-file-name', metavar='LENGTH',
+        dest='trim_file_name', default=0, type=int,
         help='Limit the filename length (extension excluded)')
 
     thumbnail = optparse.OptionGroup(parser, 'Thumbnail Images')
@@ -955,7 +963,7 @@ def _comma_separated_values_options_callback(option, opt_str, value, parser):
         '--remux-video',
         metavar='FORMAT', dest='remuxvideo', default=None,
         help=(
-            'Remux the video into another container if necessary (currently supported: mp4|mkv). ' 
+            'Remux the video into another container if necessary (currently supported: mp4|mkv). '
             'If target container does not support the video/audio codec, remuxing will fail'))
     postproc.add_option(
         '--recode-video',
@@ -1048,39 +1056,39 @@ def _comma_separated_values_options_callback(option, opt_str, value, parser):
         metavar='FORMAT', dest='convertsubtitles', default=None,
         help='Convert the subtitles to other format (currently supported: srt|ass|vtt|lrc)')
 
-    extractor = optparse.OptionGroup(parser, 'SponSkrub Options (SponsorBlock)')
-    extractor.add_option(
+    sponskrub = optparse.OptionGroup(parser, 'SponSkrub Options (SponsorBlock)')
+    sponskrub.add_option(
         '--sponskrub',
         action='store_true', dest='sponskrub', default=None,
         help=(
             'Use sponskrub to mark sponsored sections with the data available in SponsorBlock API. '
             'This is enabled by default if the sponskrub binary exists (Youtube only)'))
-    extractor.add_option(
+    sponskrub.add_option(
         '--no-sponskrub',
         action='store_false', dest='sponskrub',
         help='Do not use sponskrub')
-    extractor.add_option(
+    sponskrub.add_option(
         '--sponskrub-cut', default=False,
         action='store_true', dest='sponskrub_cut',
         help='Cut out the sponsor sections instead of simply marking them')
-    extractor.add_option(
+    sponskrub.add_option(
         '--no-sponskrub-cut',
         action='store_false', dest='sponskrub_cut',
         help='Simply mark the sponsor sections, not cut them out (default)')
-    extractor.add_option(
+    sponskrub.add_option(
         '--sponskrub-force', default=False,
         action='store_true', dest='sponskrub_force',
         help='Run sponskrub even if the video was already downloaded')
-    extractor.add_option(
+    sponskrub.add_option(
         '--no-sponskrub-force',
         action='store_true', dest='sponskrub_force',
         help='Do not cut out the sponsor sections if the video was already downloaded (default)')
-    extractor.add_option(
+    sponskrub.add_option(
         '--sponskrub-location', metavar='PATH',
         dest='sponskrub_path', default='',
         help='Location of the sponskrub binary; either the path to the binary or its containing directory.')
-    extractor.add_option(
-        '--sponskrub-args', dest='sponskrub_args',
+    sponskrub.add_option(
+        '--sponskrub-args', dest='sponskrub_args', metavar='ARGS',
         help='Give these arguments to sponskrub')
 
     extractor = optparse.OptionGroup(parser, 'Extractor Options')
@@ -1108,6 +1116,7 @@ def _comma_separated_values_options_callback(option, opt_str, value, parser):
     parser.add_option_group(authentication)
     parser.add_option_group(adobe_pass)
     parser.add_option_group(postproc)
+    parser.add_option_group(sponskrub)
     parser.add_option_group(extractor)
 
     if overrideArguments is not None:
index f73f93a58bef31ff6675a8fccda1dc90dc1dde0f..94e3eca9810ff646f7a6dd266b3bbcfcbc51e9be 100644 (file)
@@ -76,7 +76,7 @@ def is_webp(path):
 
         if info['ext'] == 'mp3':
             options = [
-                '-c', 'copy', '-map', '0:0', '-map', '1:0', '-id3v2_version', '3', 
+                '-c', 'copy', '-map', '0:0', '-map', '1:0', '-id3v2_version', '3',
                 '-metadata:s:v', 'title="Album cover"', '-metadata:s:v', 'comment="Cover (front)"']
 
             self._downloader.to_screen('[ffmpeg] Adding thumbnail to "%s"' % filename)
index 21e3481a0f29b772cd1d72acafb7a48fef34592c..6a04b710e3bc921943723c64a6344d0ba519e018 100644 (file)
@@ -2323,8 +2323,8 @@ def bug_reports_message():
     if ytdl_is_updateable():
         update_cmd = 'type  youtube-dlc -U  to update'
     else:
-        update_cmd = 'see  https://github.com/blackjack4494/yt-dlc  on how to update'
-    msg = '; please report this issue on https://github.com/blackjack4494/yt-dlc .'
+        update_cmd = 'see  https://github.com/pukkandan/yt-dlc  on how to update'
+    msg = '; please report this issue on https://github.com/pukkandan/yt-dlc .'
     msg += ' Make sure you are using the latest version; %s.' % update_cmd
     msg += ' Be sure to call youtube-dlc with the --verbose flag and include its complete output.'
     return msg
@@ -5734,6 +5734,7 @@ def random_birthday(year_field, month_field, day_field):
         day_field: str(random_date.day),
     }
 
+
 # Templates for internet shortcut files, which are plain text files.
 DOT_URL_LINK_TEMPLATE = '''
 [InternetShortcut]
@@ -5812,6 +5813,7 @@ def to_high_limit_path(path):
 
     return path
 
+
 def format_field(obj, field, template='%s', ignore=(None, ''), default='', func=None):
     val = obj.get(field, default)
     if func and val not in ignore:
index 201a981cf96f7cab16db3343f1c5fbcfb7dff3df..2d59cb7dccbd239bd72e02250b60acab1949cf14 100644 (file)
@@ -1,3 +1,3 @@
 from __future__ import unicode_literals
 
-__version__ = '2020.11.11-2'
+__version__ = '2021.01.05-2'
index a225b2442fc7b9b092f9c2ffa5447cf70be4e90e..0ffdc674b287232a636f46c59c35bc26bdffb763 100644 (file)
@@ -12,7 +12,7 @@
                {
                        "path": ".",
                        "name": "root-folder",
-                       "folder_exclude_patterns": ["youtube_dl","youtube_dlc",".github"],
+                       "folder_exclude_patterns": ["youtube_dl", "youtube_dlc", ".git", "build", "dist", "zip"],
                },
        ]
 }