]> jfr.im git - yt-dlp.git/commitdiff
[cleanup] Misc cleanup
authorpukkandan <redacted>
Sat, 9 Oct 2021 00:23:15 +0000 (05:53 +0530)
committerpukkandan <redacted>
Sat, 9 Oct 2021 17:02:00 +0000 (22:32 +0530)
25 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
README.md
setup.py
test/helper.py
yt_dlp/YoutubeDL.py
yt_dlp/__init__.py
yt_dlp/downloader/http.py
yt_dlp/extractor/common.py
yt_dlp/extractor/hidive.py
yt_dlp/extractor/minoto.py
yt_dlp/extractor/palcomp3.py
yt_dlp/minicurses.py
yt_dlp/options.py
ytdlp_plugins/extractor/sample.py

index 53ca71219c255a62bd3b5ff626a735680b9a19ad..8a55035103ea788404209db145a0bc1837b8ad72 100644 (file)
@@ -1,8 +1,8 @@
 ---
 name: Broken site support
 about: Report broken or misfunctioning site
-title: "[Broken]"
-labels: Broken
+title: "[Broken] Website Name: A short description of the issue"
+labels: ['triage', 'extractor-bug']
 assignees: ''
 
 ---
@@ -21,11 +21,12 @@ ## Checklist
 
 <!--
 Carefully read and work through this check list in order to prevent the most common mistakes and misuse of yt-dlp:
-- First of, make sure you are using the latest version of yt-dlp. Run `yt-dlp --version` and ensure your version is 2021.09.25. If it's not, see https://github.com/yt-dlp/yt-dlp on how to update. Issues with outdated version will be REJECTED.
+- First of, make sure you are using the latest version of yt-dlp. Run `yt-dlp --version` and ensure your version is 2021.09.25. If it's not, see https://github.com/yt-dlp/yt-dlp#update 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/yt-dlp/yt-dlp.
-- Search the bugtracker for similar issues: https://github.com/yt-dlp/yt-dlp. DO NOT post duplicates.
-- Finally, put x into all relevant boxes like this [x] (Dont forget to delete the empty space)
+- Make sure that all URLs and arguments with special characters are properly quoted or escaped.
+- Search the bugtracker for similar issues: https://github.com/yt-dlp/yt-dlp/issues. DO NOT post duplicates.
+- Read "opening an issue" section in CONTRIBUTING.md: https://github.com/yt-dlp/yt-dlp/blob/master/CONTRIBUTING.md#opening-an-issue
+- Finally, confirm all RELEVANT tasks from the following by putting x into all the boxes like this [x] (Dont forget to delete the empty space)
 -->
 
 - [ ] I'm reporting a broken site support
@@ -33,6 +34,8 @@ ## Checklist
 - [ ] 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
+- [ ] I've read the opening an issue section in CONTRIBUTING.md
+- [ ] I have given an appropriate title to the issue
 
 
 ## Verbose log
index a9e2a9c5326e1203313d8e381959e5e4f9bb610c..7f58fc8a72761ca2edd7666b2340ecad5d7dc9db 100644 (file)
@@ -1,8 +1,8 @@
 ---
 name: Site support request
 about: Request support for a new site
-title: "[Site Request]"
-labels: Request
+title: "[Site Request] Website Name"
+labels: ['triage', 'site-request']
 assignees: ''
 
 ---
@@ -21,11 +21,12 @@ ## Checklist
 
 <!--
 Carefully read and work through this check list in order to prevent the most common mistakes and misuse of yt-dlp:
-- First of, make sure you are using the latest version of yt-dlp. Run `yt-dlp --version` and ensure your version is 2021.09.25. If it's not, see https://github.com/yt-dlp/yt-dlp on how to update. Issues with outdated version will be REJECTED.
+- First of, make sure you are using the latest version of yt-dlp. Run `yt-dlp --version` and ensure your version is 2021.09.25. If it's not, see https://github.com/yt-dlp/yt-dlp#update 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/yt-dlp/yt-dlp. yt-dlp 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/yt-dlp/yt-dlp. DO NOT post duplicates.
-- Finally, put x into all relevant boxes like this [x] (Dont forget to delete the empty space)
+- Make sure that site you are requesting is not dedicated to copyright infringement. yt-dlp 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/yt-dlp/yt-dlp/issues. DO NOT post duplicates.
+- Read "opening an issue" section in CONTRIBUTING.md: https://github.com/yt-dlp/yt-dlp/blob/master/CONTRIBUTING.md#opening-an-issue
+- Finally, confirm all RELEVANT tasks from the following by putting x into all the boxes like this [x] (Dont forget to delete the empty space)
 -->
 
 - [ ] I'm reporting a new site support request
@@ -34,6 +35,8 @@ ## Checklist
 - [ ] I've checked that none of provided URLs violate any copyrights
 - [ ] The provided URLs do not contain any DRM to the best of my knowledge
 - [ ] I've searched the bugtracker for similar site support requests including closed ones
+- [ ] I've read the opening an issue section in CONTRIBUTING.md
+- [ ] I have given an appropriate title to the issue
 
 
 ## Example URLs
index 6cd8b8ba061d2303c8cea696c5230caa23612735..38b38c803b802c8e1f4b043585fa65fc42b2f165 100644 (file)
@@ -1,8 +1,8 @@
 ---
 name: Site feature request
 about: Request a new functionality for a site
-title: "[Site Request]"
-labels: Request
+title: "[Site Feature] Website Name: A short description of the feature"
+labels: ['triage', 'site-enhancement']
 assignees: ''
 
 ---
@@ -21,14 +21,17 @@ ## Checklist
 
 <!--
 Carefully read and work through this check list in order to prevent the most common mistakes and misuse of yt-dlp:
-- First of, make sure you are using the latest version of yt-dlp. Run `yt-dlp --version` and ensure your version is 2021.09.25. If it's not, see https://github.com/yt-dlp/yt-dlp on how to update. Issues with outdated version will be REJECTED.
-- Search the bugtracker for similar site feature requests: https://github.com/yt-dlp/yt-dlp. DO NOT post duplicates.
-- Finally, put x into all relevant boxes like this [x] (Dont forget to delete the empty space)
+- First of, make sure you are using the latest version of yt-dlp. Run `yt-dlp --version` and ensure your version is 2021.09.25. If it's not, see https://github.com/yt-dlp/yt-dlp#update on how to update. Issues with outdated version will be REJECTED.
+- Search the bugtracker for similar site feature requests: https://github.com/yt-dlp/yt-dlp/issues. DO NOT post duplicates.
+- Read "opening an issue" section in CONTRIBUTING.md: https://github.com/yt-dlp/yt-dlp/blob/master/CONTRIBUTING.md#opening-an-issue
+- Finally, confirm all RELEVANT tasks from the following by putting x into all the 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 yt-dlp version **2021.09.25**
 - [ ] I've searched the bugtracker for similar site feature requests including closed ones
+- [ ] I've read the opening an issue section in CONTRIBUTING.md
+- [ ] I have given an appropriate title to the issue
 
 
 ## Description
index a302daab637eea4e67be575978ef0a3f2ae92a85..b2f7efcdab86dbf2393df40f2d25a3e00156d546 100644 (file)
@@ -1,8 +1,8 @@
 ---
 name: Bug report
 about: Report a bug unrelated to any particular site or extractor
-title: ''
-labels: ''
+title: '[Bug] A short description of the issue'
+labels: ['triage', 'bug']
 assignees: ''
 
 ---
@@ -21,12 +21,12 @@ ## Checklist
 
 <!--
 Carefully read and work through this check list in order to prevent the most common mistakes and misuse of yt-dlp:
-- First of, make sure you are using the latest version of yt-dlp. Run `yt-dlp --version` and ensure your version is 2021.09.25. If it's not, see https://github.com/yt-dlp/yt-dlp on how to update. Issues with outdated version will be REJECTED.
+- First of, make sure you are using the latest version of yt-dlp. Run `yt-dlp --version` and ensure your version is 2021.09.25. If it's not, see https://github.com/yt-dlp/yt-dlp#update 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/yt-dlp/yt-dlp.
-- Search the bugtracker for similar issues: https://github.com/yt-dlp/yt-dlp. DO NOT post duplicates.
-- Read bugs section in FAQ: https://github.com/yt-dlp/yt-dlp
-- Finally, put x into all relevant boxes like this [x] (Dont forget to delete the empty space)
+- Make sure that all URLs and arguments with special characters are properly quoted or escaped.
+- Search the bugtracker for similar issues: https://github.com/yt-dlp/yt-dlp/issues. DO NOT post duplicates.
+- Read "opening an issue" section in CONTRIBUTING.md: https://github.com/yt-dlp/yt-dlp/blob/master/CONTRIBUTING.md#opening-an-issue
+- Finally, confirm all RELEVANT tasks from the following by putting x into all the boxes like this [x] (Dont forget to delete the empty space)
 -->
 
 - [ ] I'm reporting a bug unrelated to a specific site
@@ -35,7 +35,8 @@ ## Checklist
 - [ ] The provided URLs do not contain any DRM to the best of my knowledge
 - [ ] 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
-- [ ] I've read bugs section in FAQ
+- [ ] I've read the opening an issue section in CONTRIBUTING.md
+- [ ] I have given an appropriate title to the issue
 
 
 ## Verbose log
index c40a5ad35d41b1b67c46dbd78c9c8bbbe86511b6..4aad8ab18839e3b0491e2a901f315c6618eee1dd 100644 (file)
@@ -1,8 +1,8 @@
 ---
 name: Feature request
 about: Request a new functionality unrelated to any particular site or extractor
-title: "[Feature Request]"
-labels: Request
+title: "[Feature Request] A short description of your feature"
+labels: ['triage', 'enhancement']
 assignees: ''
 
 ---
@@ -21,14 +21,17 @@ ## Checklist
 
 <!--
 Carefully read and work through this check list in order to prevent the most common mistakes and misuse of yt-dlp:
-- First of, make sure you are using the latest version of yt-dlp. Run `yt-dlp --version` and ensure your version is 2021.09.25. If it's not, see https://github.com/yt-dlp/yt-dlp on how to update. Issues with outdated version will be REJECTED.
-- Search the bugtracker for similar feature requests: https://github.com/yt-dlp/yt-dlp. DO NOT post duplicates.
+- First of, make sure you are using the latest version of yt-dlp. Run `yt-dlp --version` and ensure your version is 2021.09.25. If it's not, see https://github.com/yt-dlp/yt-dlp#update on how to update. Issues with outdated version will be REJECTED.
+- Search the bugtracker for similar feature requests: https://github.com/yt-dlp/yt-dlp/issues. DO NOT post duplicates.
+- Read "opening an issue" section in CONTRIBUTING.md: https://github.com/yt-dlp/yt-dlp/blob/master/CONTRIBUTING.md#opening-an-issue
 - 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 yt-dlp version **2021.09.25**
 - [ ] I've searched the bugtracker for similar feature requests including closed ones
+- [ ] I've read the opening an issue section in CONTRIBUTING.md
+- [ ] I have given an appropriate title to the issue
 
 
 ## Description
index 9f052090a1011eb1961e4ae0c4586d193fc77976..5ab17802a72a52e1c9c6202f0e5ab906608a4831 100644 (file)
@@ -1,7 +1,7 @@
 ---
 name: Ask question
 about: Ask yt-dlp related question
-title: "[Question]"
+title: "[Question] A short description of your question"
 labels: question
 assignees: ''
 
@@ -21,14 +21,17 @@ ## Checklist
 
 <!--
 Carefully read and work through this check list in order to prevent the most common mistakes and misuse of yt-dlp:
-- Look through the README (https://github.com/yt-dlp/yt-dlp) and FAQ (https://github.com/yt-dlp/yt-dlp) for similar questions
-- Search the bugtracker for similar questions: https://github.com/yt-dlp/yt-dlp
+- Look through the README (https://github.com/yt-dlp/yt-dlp)
+- Read "opening an issue" section in CONTRIBUTING.md: https://github.com/yt-dlp/yt-dlp/blob/master/CONTRIBUTING.md#opening-an-issue
+- Search the bugtracker for similar questions: https://github.com/yt-dlp/yt-dlp/issues
 - Finally, put x into all relevant boxes like this [x] (Dont forget to delete the empty space)
 -->
 
 - [ ] I'm asking a question
-- [ ] I've looked through the README and FAQ for similar questions
+- [ ] I've looked through the README
+- [ ] I've read the opening an issue section in CONTRIBUTING.md
 - [ ] I've searched the bugtracker for similar questions including closed ones
+- [ ] I have given an appropriate title to the issue
 
 
 ## Question
index 6da13a7b504dd4c512107974ab6ce4015f2c6bef..9ee00229641a5bdad2b2ef1e4de2fb9d5cd33f62 100644 (file)
@@ -1,8 +1,8 @@
 ---
 name: Broken site support
 about: Report broken or misfunctioning site
-title: "[Broken]"
-labels: Broken
+title: "[Broken] Website Name: A short description of the issue"
+labels: ['triage', 'extractor-bug']
 assignees: ''
 
 ---
@@ -21,11 +21,12 @@ ## Checklist
 
 <!--
 Carefully read and work through this check list in order to prevent the most common mistakes and misuse of yt-dlp:
-- First of, make sure you are using the latest version of yt-dlp. Run `yt-dlp --version` and ensure your version is %(version)s. If it's not, see https://github.com/yt-dlp/yt-dlp on how to update. Issues with outdated version will be REJECTED.
+- First of, make sure you are using the latest version of yt-dlp. Run `yt-dlp --version` and ensure your version is %(version)s. If it's not, see https://github.com/yt-dlp/yt-dlp#update 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/yt-dlp/yt-dlp.
-- Search the bugtracker for similar issues: https://github.com/yt-dlp/yt-dlp. DO NOT post duplicates.
-- Finally, put x into all relevant boxes like this [x] (Dont forget to delete the empty space)
+- Make sure that all URLs and arguments with special characters are properly quoted or escaped.
+- Search the bugtracker for similar issues: https://github.com/yt-dlp/yt-dlp/issues. DO NOT post duplicates.
+- Read "opening an issue" section in CONTRIBUTING.md: https://github.com/yt-dlp/yt-dlp/blob/master/CONTRIBUTING.md#opening-an-issue
+- Finally, confirm all RELEVANT tasks from the following by putting x into all the boxes like this [x] (Dont forget to delete the empty space)
 -->
 
 - [ ] I'm reporting a broken site support
@@ -33,6 +34,8 @@ ## Checklist
 - [ ] 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
+- [ ] I've read the opening an issue section in CONTRIBUTING.md
+- [ ] I have given an appropriate title to the issue
 
 
 ## Verbose log
index 79adb709c130e48afead19e8497caf018718b741..e71abbab29a33478ff4d3a76935e179da204a851 100644 (file)
@@ -1,8 +1,8 @@
 ---
 name: Site support request
 about: Request support for a new site
-title: "[Site Request]"
-labels: Request
+title: "[Site Request] Website Name"
+labels: ['triage', 'site-request']
 assignees: ''
 
 ---
@@ -21,11 +21,12 @@ ## Checklist
 
 <!--
 Carefully read and work through this check list in order to prevent the most common mistakes and misuse of yt-dlp:
-- First of, make sure you are using the latest version of yt-dlp. Run `yt-dlp --version` and ensure your version is %(version)s. If it's not, see https://github.com/yt-dlp/yt-dlp on how to update. Issues with outdated version will be REJECTED.
+- First of, make sure you are using the latest version of yt-dlp. Run `yt-dlp --version` and ensure your version is %(version)s. If it's not, see https://github.com/yt-dlp/yt-dlp#update 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/yt-dlp/yt-dlp. yt-dlp 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/yt-dlp/yt-dlp. DO NOT post duplicates.
-- Finally, put x into all relevant boxes like this [x] (Dont forget to delete the empty space)
+- Make sure that site you are requesting is not dedicated to copyright infringement. yt-dlp 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/yt-dlp/yt-dlp/issues. DO NOT post duplicates.
+- Read "opening an issue" section in CONTRIBUTING.md: https://github.com/yt-dlp/yt-dlp/blob/master/CONTRIBUTING.md#opening-an-issue
+- Finally, confirm all RELEVANT tasks from the following by putting x into all the boxes like this [x] (Dont forget to delete the empty space)
 -->
 
 - [ ] I'm reporting a new site support request
@@ -34,6 +35,8 @@ ## Checklist
 - [ ] I've checked that none of provided URLs violate any copyrights
 - [ ] The provided URLs do not contain any DRM to the best of my knowledge
 - [ ] I've searched the bugtracker for similar site support requests including closed ones
+- [ ] I've read the opening an issue section in CONTRIBUTING.md
+- [ ] I have given an appropriate title to the issue
 
 
 ## Example URLs
index d74b6e279f1f093acd75496d2558f42aef01e5dc..e0ccd54161bf295e80ae28ab524a38054096be6a 100644 (file)
@@ -1,8 +1,8 @@
 ---
 name: Site feature request
 about: Request a new functionality for a site
-title: "[Site Request]"
-labels: Request
+title: "[Site Feature] Website Name: A short description of the feature"
+labels: ['triage', 'site-enhancement']
 assignees: ''
 
 ---
@@ -21,14 +21,17 @@ ## Checklist
 
 <!--
 Carefully read and work through this check list in order to prevent the most common mistakes and misuse of yt-dlp:
-- First of, make sure you are using the latest version of yt-dlp. Run `yt-dlp --version` and ensure your version is %(version)s. If it's not, see https://github.com/yt-dlp/yt-dlp on how to update. Issues with outdated version will be REJECTED.
-- Search the bugtracker for similar site feature requests: https://github.com/yt-dlp/yt-dlp. DO NOT post duplicates.
-- Finally, put x into all relevant boxes like this [x] (Dont forget to delete the empty space)
+- First of, make sure you are using the latest version of yt-dlp. Run `yt-dlp --version` and ensure your version is %(version)s. If it's not, see https://github.com/yt-dlp/yt-dlp#update on how to update. Issues with outdated version will be REJECTED.
+- Search the bugtracker for similar site feature requests: https://github.com/yt-dlp/yt-dlp/issues. DO NOT post duplicates.
+- Read "opening an issue" section in CONTRIBUTING.md: https://github.com/yt-dlp/yt-dlp/blob/master/CONTRIBUTING.md#opening-an-issue
+- Finally, confirm all RELEVANT tasks from the following by putting x into all the 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 yt-dlp version **%(version)s**
 - [ ] I've searched the bugtracker for similar site feature requests including closed ones
+- [ ] I've read the opening an issue section in CONTRIBUTING.md
+- [ ] I have given an appropriate title to the issue
 
 
 ## Description
index 13b577f86290c84072f0201574dd712e7a159d50..43e91b0522aa1f64d639f22fb5d5cbb4fab9d3c3 100644 (file)
@@ -1,8 +1,8 @@
 ---
 name: Bug report
 about: Report a bug unrelated to any particular site or extractor
-title: ''
-labels: ''
+title: '[Bug] A short description of the issue'
+labels: ['triage', 'bug']
 assignees: ''
 
 ---
@@ -21,12 +21,12 @@ ## Checklist
 
 <!--
 Carefully read and work through this check list in order to prevent the most common mistakes and misuse of yt-dlp:
-- First of, make sure you are using the latest version of yt-dlp. Run `yt-dlp --version` and ensure your version is %(version)s. If it's not, see https://github.com/yt-dlp/yt-dlp on how to update. Issues with outdated version will be REJECTED.
+- First of, make sure you are using the latest version of yt-dlp. Run `yt-dlp --version` and ensure your version is %(version)s. If it's not, see https://github.com/yt-dlp/yt-dlp#update 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/yt-dlp/yt-dlp.
-- Search the bugtracker for similar issues: https://github.com/yt-dlp/yt-dlp. DO NOT post duplicates.
-- Read bugs section in FAQ: https://github.com/yt-dlp/yt-dlp
-- Finally, put x into all relevant boxes like this [x] (Dont forget to delete the empty space)
+- Make sure that all URLs and arguments with special characters are properly quoted or escaped.
+- Search the bugtracker for similar issues: https://github.com/yt-dlp/yt-dlp/issues. DO NOT post duplicates.
+- Read "opening an issue" section in CONTRIBUTING.md: https://github.com/yt-dlp/yt-dlp/blob/master/CONTRIBUTING.md#opening-an-issue
+- Finally, confirm all RELEVANT tasks from the following by putting x into all the boxes like this [x] (Dont forget to delete the empty space)
 -->
 
 - [ ] I'm reporting a bug unrelated to a specific site
@@ -35,7 +35,8 @@ ## Checklist
 - [ ] The provided URLs do not contain any DRM to the best of my knowledge
 - [ ] 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
-- [ ] I've read bugs section in FAQ
+- [ ] I've read the opening an issue section in CONTRIBUTING.md
+- [ ] I have given an appropriate title to the issue
 
 
 ## Verbose log
index 4a0209db1b13695528e6e07f645ba9075ffb8cf7..075e0b1b328f0e500bd8218b65f92d264e8eb778 100644 (file)
@@ -1,8 +1,8 @@
 ---
 name: Feature request
 about: Request a new functionality unrelated to any particular site or extractor
-title: "[Feature Request]"
-labels: Request
+title: "[Feature Request] A short description of your feature"
+labels: ['triage', 'enhancement']
 assignees: ''
 
 ---
@@ -21,14 +21,17 @@ ## Checklist
 
 <!--
 Carefully read and work through this check list in order to prevent the most common mistakes and misuse of yt-dlp:
-- First of, make sure you are using the latest version of yt-dlp. Run `yt-dlp --version` and ensure your version is %(version)s. If it's not, see https://github.com/yt-dlp/yt-dlp on how to update. Issues with outdated version will be REJECTED.
-- Search the bugtracker for similar feature requests: https://github.com/yt-dlp/yt-dlp. DO NOT post duplicates.
+- First of, make sure you are using the latest version of yt-dlp. Run `yt-dlp --version` and ensure your version is %(version)s. If it's not, see https://github.com/yt-dlp/yt-dlp#update on how to update. Issues with outdated version will be REJECTED.
+- Search the bugtracker for similar feature requests: https://github.com/yt-dlp/yt-dlp/issues. DO NOT post duplicates.
+- Read "opening an issue" section in CONTRIBUTING.md: https://github.com/yt-dlp/yt-dlp/blob/master/CONTRIBUTING.md#opening-an-issue
 - 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 yt-dlp version **%(version)s**
 - [ ] I've searched the bugtracker for similar feature requests including closed ones
+- [ ] I've read the opening an issue section in CONTRIBUTING.md
+- [ ] I have given an appropriate title to the issue
 
 
 ## Description
index 7ef08d68acd2a1ee835aafdc6848bddd0357e1e2..684bf59e91aa25066fefd3798104c241c7fe5132 100644 (file)
@@ -7,7 +7,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/yt-dlp/yt-dlp/blob/master/CONTRIBUTING.md#adding-support-for-a-new-site) and [yt-dlp coding conventions](https://github.com/yt-dlp/yt-dlp/blob/master/CONTRIBUTING.md#yt-dlp-coding-conventions) sections
+- [ ] At least skimmed through [contributing guidelines](https://github.com/yt-dlp/yt-dlp/blob/master/CONTRIBUTING.md#developer-instructions) including [yt-dlp coding conventions](https://github.com/yt-dlp/yt-dlp/blob/master/CONTRIBUTING.md#yt-dlp-coding-conventions)
 - [ ] [Searched](https://github.com/yt-dlp/yt-dlp/search?q=is%3Apr&type=Issues) the bugtracker for similar pull requests
 - [ ] Checked the code with [flake8](https://pypi.python.org/pypi/flake8)
 
index f98fe98b6e169e19510c5f9884753eeab62335cc..c0f84fcac3067046adc022351a9c13bec5955a84 100644 (file)
--- a/README.md
+++ b/README.md
@@ -199,7 +199,7 @@ ### DEPENDENCIES
 While all the other dependancies are optional, `ffmpeg` and `ffprobe` are highly recommended
 * [**ffmpeg** and **ffprobe**](https://www.ffmpeg.org) - Required for [merging seperate video and audio files](#format-selection) as well as for various [post-processing](#post-processing-options) tasks. Licence [depends on the build](https://www.ffmpeg.org/legal.html)
 * [**mutagen**](https://github.com/quodlibet/mutagen) - For embedding thumbnail in certain formats. Licenced under [GPLv2+](https://github.com/quodlibet/mutagen/blob/master/COPYING)
-* [**pycryptodomex**](https://github.com/Legrandin/pycryptodomex) - For decrypting AES-128 HLS streams and various other data. Licenced under [BSD2](https://github.com/Legrandin/pycryptodomex/blob/master/LICENSE.rst)
+* [**pycryptodomex**](https://github.com/Legrandin/pycryptodome) - For decrypting AES-128 HLS streams and various other data. Licenced under [BSD2](https://github.com/Legrandin/pycryptodome/blob/master/LICENSE.rst)
 * [**websockets**](https://github.com/aaugustin/websockets) - For downloading over websocket. Licenced under [BSD3](https://github.com/aaugustin/websockets/blob/main/LICENSE)
 * [**keyring**](https://github.com/jaraco/keyring) - For decrypting cookies of chromium-based browsers on Linux. Licenced under [MIT](https://github.com/jaraco/keyring/blob/main/LICENSE)
 * [**AtomicParsley**](https://github.com/wez/atomicparsley) - For embedding thumbnail in mp4/m4a if mutagen is not present. Licenced under [GPLv2+](https://github.com/wez/atomicparsley/blob/master/COPYING)
@@ -287,7 +287,8 @@ ## General Options:
     --flat-playlist                  Do not extract the videos of a playlist,
                                      only list them
     --no-flat-playlist               Extract the videos of a playlist
-    --mark-watched                   Mark videos watched (YouTube only)
+    --mark-watched                   Mark videos watched (even with --simulate).
+                                     Currently only supported for YouTube
     --no-mark-watched                Do not mark videos watched (default)
     --no-colors                      Do not emit color codes in output
     --compat-options OPTS            Options that can help keep compatibility
index ff23877dccb2b0087f81f770783dd68751e83cab..fbd2be0aeb7476aa7875ed209fa3ecc06777a02f 100644 (file)
--- a/setup.py
+++ b/setup.py
@@ -119,7 +119,7 @@ def run(self):
         'Documentation': 'https://yt-dlp.readthedocs.io',
         'Source': 'https://github.com/yt-dlp/yt-dlp',
         'Tracker': 'https://github.com/yt-dlp/yt-dlp/issues',
-        #'Funding': 'https://donate.pypi.org',
+        'Funding': 'https://github.com/yt-dlp/yt-dlp/blob/master/Collaborators.md#collaborators',
     },
     classifiers=[
         'Topic :: Multimedia :: Video',
index 9599eab8e2ebc5948e0f194ebd62175fc9b9b817..5c0e645f956b516d43439a6db59acdbcf052cd8f 100644 (file)
@@ -22,7 +22,7 @@
 )
 
 
-if "pytest" in sys.modules:
+if 'pytest' in sys.modules:
     import pytest
     is_download_test = pytest.mark.download
 else:
@@ -32,9 +32,9 @@ def is_download_test(testClass):
 
 def get_params(override=None):
     PARAMETERS_FILE = os.path.join(os.path.dirname(os.path.abspath(__file__)),
-                                   "parameters.json")
+                                   'parameters.json')
     LOCAL_PARAMETERS_FILE = os.path.join(os.path.dirname(os.path.abspath(__file__)),
-                                         "local_parameters.json")
+                                         'local_parameters.json')
     with io.open(PARAMETERS_FILE, encoding='utf-8') as pf:
         parameters = json.load(pf)
     if os.path.exists(LOCAL_PARAMETERS_FILE):
index 398fb67af17e7517cf694b101e031bcdb340c315..2b3c33ce5338ffb8cd11b5d54b38dd8f64ec688e 100644 (file)
@@ -9,6 +9,7 @@
 import datetime
 import errno
 import fileinput
+import functools
 import io
 import itertools
 import json
@@ -330,7 +331,8 @@ class YoutubeDL(object):
                        * when: When to run the postprocessor. Can be one of
                                pre_process|before_dl|post_process|after_move.
                                Assumed to be 'post_process' if not given
-    post_hooks:        A list of functions that get called as the final step
+    post_hooks:        Deprecated - Register a custom postprocessor instead
+                       A list of functions that get called as the final step
                        for each video file, after all postprocessors have been
                        called. The filename will be passed as the only argument.
     progress_hooks:    A list of functions that get called on download
@@ -423,7 +425,7 @@ class YoutubeDL(object):
                        use downloader suggested by extractor if None.
     compat_opts:       Compatibility options. See "Differences in default behavior".
                        The following options do not work when used through the API:
-                       filename, abort-on-error, multistreams, no-live-chat,
+                       filename, abort-on-error, multistreams, no-live-chat, format-sort
                        no-clean-infojson, no-playlist-metafiles, no-keep-subs.
                        Refer __init__.py for their implementation
     progress_template: Dictionary of templates for progress outputs.
@@ -434,8 +436,9 @@ class YoutubeDL(object):
     The following parameters are not used by YoutubeDL itself, they are used by
     the downloader (see yt_dlp/downloader/common.py):
     nopart, updatetime, buffersize, ratelimit, throttledratelimit, min_filesize,
-    max_filesize, test, noresizebuffer, retries, continuedl, noprogress,
-    xattr_set_filesize, external_downloader_args, hls_use_mpegts, http_chunk_size.
+    max_filesize, test, noresizebuffer, retries, fragment_retries, continuedl,
+    noprogress, xattr_set_filesize, hls_use_mpegts, http_chunk_size,
+    external_downloader_args.
 
     The following options are used by the post processors:
     prefer_ffmpeg:     If False, use avconv instead of ffmpeg if both are available,
@@ -541,13 +544,13 @@ def check_deprecated(param, option, suggestion):
         for msg in self.params.get('warnings', []):
             self.report_warning(msg)
 
-        if self.params.get('overwrites') is None:
-            self.params.pop('overwrites', None)
-        elif self.params.get('nooverwrites') is not None:
+        if 'overwrites' not in self.params and self.params.get('nooverwrites') is not None:
             # nooverwrites was unnecessarily changed to overwrites
             # in 0c3d0f51778b153f65c21906031c2e091fcfb641
             # This ensures compatibility with both keys
             self.params['overwrites'] = not self.params['nooverwrites']
+        elif self.params.get('overwrites') is None:
+            self.params.pop('overwrites', None)
         else:
             self.params['nooverwrites'] = not self.params['overwrites']
 
@@ -1253,7 +1256,7 @@ def extract_info(self, url, download=True, ie_key=None, extra_info=None,
             self.report_error('no suitable InfoExtractor for URL %s' % url)
 
     def __handle_extraction_exceptions(func):
-
+        @functools.wraps(func)
         def wrapper(self, *args, **kwargs):
             try:
                 return func(self, *args, **kwargs)
@@ -1973,7 +1976,7 @@ def selector_function(ctx):
                         elif format_spec in ('mhtml', ):  # storyboards extension
                             filter_f = lambda f: f.get('ext') == format_spec and f.get('acodec') == 'none' and f.get('vcodec') == 'none'
                         else:
-                            filter_f = (lambda f: f.get('format_id') == format_spec)  # id
+                            filter_f = lambda f: f.get('format_id') == format_spec  # id
 
                     def selector_function(ctx):
                         formats = list(ctx['formats'])
@@ -2453,8 +2456,12 @@ def print_optional(field):
         if self.params.get('forceprint') or self.params.get('forcejson'):
             self.post_extract(info_dict)
         for tmpl in self.params.get('forceprint', []):
-            self.to_stdout(self.evaluate_outtmpl(
-                f'%({tmpl})s' if re.match(r'\w+$', tmpl) else tmpl, info_dict))
+            mobj = re.match(r'\w+(=?)$', tmpl)
+            if mobj and mobj.group(1):
+                tmpl = f'{tmpl[:-1]} = %({tmpl[:-1]})s'
+            elif mobj:
+                tmpl = '%({})s'.format(tmpl)
+            self.to_stdout(self.evaluate_outtmpl(tmpl, info_dict))
 
         print_mandatory('title')
         print_mandatory('id')
index ade82229926285ceb6e56c5b79129f40f300e329..4b82efea7fb54884277a23c46da32a3ff63c45f8 100644 (file)
@@ -735,10 +735,6 @@ def report_args_compat(arg, name):
         'geo_bypass_ip_block': opts.geo_bypass_ip_block,
         'warnings': warnings,
         'compat_opts': compat_opts,
-        # just for deprecation check
-        'autonumber': opts.autonumber or None,
-        'usetitle': opts.usetitle or None,
-        'useid': opts.useid or None,
     }
 
     with YoutubeDL(ydl_opts) as ydl:
index 5d7c988c71e52d3ac9bb4dd48476992e849520e6..704ae6f5ad1e0212490632936f26f53dcdc1ec9b 100644 (file)
@@ -48,8 +48,8 @@ class DownloadContext(dict):
 
         is_test = self.params.get('test', False)
         chunk_size = self._TEST_FILE_SIZE if is_test else (
-            self.params.get('http_chunk_size') or
-            info_dict.get('downloader_options', {}).get('http_chunk_size')
+            self.params.get('http_chunk_size')
+            or info_dict.get('downloader_options', {}).get('http_chunk_size')
             or 0)
 
         ctx.open_mode = 'wb'
index 4f940730a4ed11614047a144bb40356260a8d78a..65444d3bf3672ca9a76d60a27a4e0128faef2382 100644 (file)
@@ -1678,7 +1678,7 @@ def add_item(field, reverse, closest, limit_text):
                 has_multiple_limits = has_limit and has_multiple_fields and not self._get_field_setting(field, 'same_limit')
 
                 fields = self._get_field_setting(field, 'field') if has_multiple_fields else (field,)
-                limits = limit_text.split(":") if has_multiple_limits else (limit_text,) if has_limit else tuple()
+                limits = limit_text.split(':') if has_multiple_limits else (limit_text,) if has_limit else tuple()
                 limit_count = len(limits)
                 for (i, f) in enumerate(fields):
                     add_item(f, reverse, closest,
@@ -1762,9 +1762,9 @@ def calculate_preference(self, format):
                 if format.get('vbr') is not None and format.get('abr') is not None:
                     format['tbr'] = format.get('vbr', 0) + format.get('abr', 0)
             else:
-                if format.get('vcodec') != "none" and format.get('vbr') is None:
+                if format.get('vcodec') != 'none' and format.get('vbr') is None:
                     format['vbr'] = format.get('tbr') - format.get('abr', 0)
-                if format.get('acodec') != "none" and format.get('abr') is None:
+                if format.get('acodec') != 'none' and format.get('abr') is None:
                     format['abr'] = format.get('tbr') - format.get('vbr', 0)
 
             return tuple(self._calculate_field_preference(format, field) for field in self._order)
@@ -1966,13 +1966,16 @@ def _m3u8_meta_format(self, m3u8_url, ext=None, preference=None, quality=None, m
             'format_note': 'Quality selection URL',
         }
 
+    def _report_ignoring_subs(self, name):
+        self.report_warning(bug_reports_message(
+            f'Ignoring subtitle tracks found in the {name} manifest; '
+            'if any subtitle tracks are missing,'
+        ), only_once=True)
+
     def _extract_m3u8_formats(self, *args, **kwargs):
         fmts, subs = self._extract_m3u8_formats_and_subtitles(*args, **kwargs)
         if subs:
-            self.report_warning(bug_reports_message(
-                "Ignoring subtitle tracks found in the HLS manifest; "
-                "if any subtitle tracks are missing,"
-            ), only_once=True)
+            self._report_ignoring_subs('HLS')
         return fmts
 
     def _extract_m3u8_formats_and_subtitles(
@@ -2270,10 +2273,7 @@ def _extract_smil_formats_and_subtitles(self, smil_url, video_id, fatal=True, f4
     def _extract_smil_formats(self, *args, **kwargs):
         fmts, subs = self._extract_smil_formats_and_subtitles(*args, **kwargs)
         if subs:
-            self.report_warning(bug_reports_message(
-                "Ignoring subtitle tracks found in the SMIL manifest; "
-                "if any subtitle tracks are missing,"
-            ), only_once=True)
+            self._report_ignoring_subs('SMIL')
         return fmts
 
     def _extract_smil_info(self, smil_url, video_id, fatal=True, f4m_params=None):
@@ -2515,10 +2515,7 @@ def _parse_xspf(self, xspf_doc, playlist_id, xspf_url=None, xspf_base_url=None):
     def _extract_mpd_formats(self, *args, **kwargs):
         fmts, subs = self._extract_mpd_formats_and_subtitles(*args, **kwargs)
         if subs:
-            self.report_warning(bug_reports_message(
-                "Ignoring subtitle tracks found in the DASH manifest; "
-                "if any subtitle tracks are missing,"
-            ), only_once=True)
+            self._report_ignoring_subs('DASH')
         return fmts
 
     def _extract_mpd_formats_and_subtitles(
@@ -2542,10 +2539,7 @@ def _extract_mpd_formats_and_subtitles(
     def _parse_mpd_formats(self, *args, **kwargs):
         fmts, subs = self._parse_mpd_formats_and_subtitles(*args, **kwargs)
         if subs:
-            self.report_warning(bug_reports_message(
-                "Ignoring subtitle tracks found in the DASH manifest; "
-                "if any subtitle tracks are missing,"
-            ), only_once=True)
+            self._report_ignoring_subs('DASH')
         return fmts
 
     def _parse_mpd_formats_and_subtitles(
@@ -2873,10 +2867,7 @@ def add_segment_url():
     def _extract_ism_formats(self, *args, **kwargs):
         fmts, subs = self._extract_ism_formats_and_subtitles(*args, **kwargs)
         if subs:
-            self.report_warning(bug_reports_message(
-                "Ignoring subtitle tracks found in the ISM manifest; "
-                "if any subtitle tracks are missing,"
-            ))
+            self._report_ignoring_subs('ISM')
         return fmts
 
     def _extract_ism_formats_and_subtitles(self, ism_url, video_id, ism_id=None, note=None, errnote=None, fatal=True, data=None, headers={}, query={}):
@@ -3136,10 +3127,7 @@ def _media_formats(src, cur_media_type, type_info={}):
     def _extract_akamai_formats(self, *args, **kwargs):
         fmts, subs = self._extract_akamai_formats_and_subtitles(*args, **kwargs)
         if subs:
-            self.report_warning(bug_reports_message(
-                "Ignoring subtitle tracks found in the manifests; "
-                "if any subtitle tracks are missing,"
-            ))
+            self._report_ignoring_subs('akamai')
         return fmts
 
     def _extract_akamai_formats_and_subtitles(self, manifest_url, video_id, hosts={}):
index 18ae4d37923408095ed36360704ae64db9912753..ef1ca197e283f79b9a255ddfda4892a2c40edce4 100644 (file)
@@ -93,7 +93,7 @@ def _real_extract(self, url):
             raise ExtractorError(
                 '%s said: %s' % (self.IE_NAME, restriction), expected=True)
 
-        formats, subtitles, parsed_urls = [], {}, {None}
+        formats, parsed_urls = [], {}, {None}
         for rendition_id, rendition in settings['renditions'].items():
             audio, version, extra = rendition_id.split('_')
             m3u8_url = url_or_none(try_get(rendition, lambda x: x['bitrates']['hls']))
@@ -105,14 +105,12 @@ def _real_extract(self, url):
                     f['language'] = audio
                     f['format_note'] = f'{version}, {extra}'
                 formats.extend(frmt)
-
-            self._extract_subtitles_from_rendition(rendition, subtitles, parsed_urls)
         self._sort_formats(formats)
 
         return {
             'id': video_id,
             'title': video_id,
-            'subtitles': self.extract_subtitles(url, video_id, title, key, subtitles, parsed_urls),
+            'subtitles': self.extract_subtitles(url, video_id, title, key, parsed_urls),
             'formats': formats,
             'series': title,
             'season_number': int_or_none(
index dba82db5ff2897c25c0d2c01057ebddf5e89fcb9..603ce940ba547687e5c73cc380280cdc3927c455 100644 (file)
@@ -37,7 +37,7 @@ def _real_extract(self, url):
                     'filesize': int_or_none(fmt.get('filesize')),
                     'width': int_or_none(fmt.get('width')),
                     'height': int_or_none(fmt.get('height')),
-                    'codecs': parse_codecs(fmt.get('codecs')),
+                    **parse_codecs(fmt.get('codecs')),
                 })
         self._sort_formats(formats)
 
index 269e67a57e7ac074bfce3deda4ea0a7e027bbbdf..d0a62fb17ed073d80a2fde30668f577b49dd9cd9 100644 (file)
@@ -108,7 +108,7 @@ class PalcoMP3ArtistIE(PalcoMP3BaseIE):
     }
     name'''
 
-    @ classmethod
+    @classmethod
     def suitable(cls, url):
         return False if PalcoMP3IE._match_valid_url(url) else super(PalcoMP3ArtistIE, cls).suitable(url)
 
index a466fb4b03d0bc2aea0c25c3ac38f3951e89aa37..0e37ed8183cc4018e81b5072ff6f217cc022dfa1 100644 (file)
@@ -1,3 +1,4 @@
+import functools
 from threading import Lock
 from .utils import supports_terminal_sequences, TERMINAL_SEQUENCES
 
@@ -49,6 +50,7 @@ def __init__(self, stream=None, lines=1, preserve_output=True):
         self._HAVE_FULLCAP = supports_terminal_sequences(self.stream)
 
     def lock(func):
+        @functools.wraps(func)
         def wrapper(self, *args, **kwargs):
             with self._movelock:
                 return func(self, *args, **kwargs)
index 4652e8c589fcd56594c17f3c92b387485f8b6075..f45c548f2a7dc3b4785e00f33ecb8d1c023e2680 100644 (file)
@@ -971,9 +971,6 @@ def _dict_from_options_callback(
         dest='batchfile', metavar='FILE',
         help="File containing URLs to download ('-' for stdin), one URL per line. "
              "Lines starting with '#', ';' or ']' are considered as comments and ignored")
-    filesystem.add_option(
-        '--id', default=False,
-        action='store_true', dest='useid', help=optparse.SUPPRESS_HELP)
     filesystem.add_option(
         '-P', '--paths',
         metavar='[TYPES:]PATH', dest='paths', default={}, type='str',
@@ -1029,18 +1026,6 @@ def _dict_from_options_callback(
         '--trim-filenames', '--trim-file-names', metavar='LENGTH',
         dest='trim_file_name', default=0, type=int,
         help='Limit the filename length (excluding extension) to the specified number of characters')
-    filesystem.add_option(
-        '--auto-number',
-        action='store_true', dest='autonumber', default=False,
-        help=optparse.SUPPRESS_HELP)
-    filesystem.add_option(
-        '--title',
-        action='store_true', dest='usetitle', default=False,
-        help=optparse.SUPPRESS_HELP)
-    filesystem.add_option(
-        '--literal', default=False,
-        action='store_true', dest='usetitle',
-        help=optparse.SUPPRESS_HELP)
     filesystem.add_option(
         '-w', '--no-overwrites',
         action='store_false', dest='overwrites', default=None,
@@ -1625,7 +1610,7 @@ def get_configs():
         argv = configs['system'] + configs['user'] + configs['home'] + configs['portable'] + configs['custom'] + configs['command-line']
         opts, args = parser.parse_args(argv)
         if opts.verbose:
-            for label in ('System', 'User', 'Portable', 'Home', 'Custom', 'Command-line'):
+            for label in ('Command-line', 'Custom', 'Portable', 'Home', 'User', 'System'):
                 key = label.lower()
                 if paths.get(key):
                     write_string(f'[debug] {label} config file: {paths[key]}\n')
index 986e5bb228d8921ac964a1fe7c25a02ac7a55fee..d99b7ca331d66663289650b1f8269ad1dc969c09 100644 (file)
@@ -5,7 +5,7 @@
 
 
 # â„šī¸ Instructions on making extractors can be found at:
-# đŸ”— https://github.com/ytdl-org/youtube-dl#adding-support-for-a-new-site
+# đŸ”— https://github.com/yt-dlp/yt-dlp/blob/master/CONTRIBUTING.md#adding-support-for-a-new-site
 
 class SamplePluginIE(InfoExtractor):
     _WORKING = False