Youtube-dlc – Download videos from YouTube or other video platforms(github.com)
github.com
Youtube-dlc – Download videos from YouTube or other video platforms
https://github.com/blackjack4494/yt-dlc
48 コメント
No. Tests are an internal technical detail and not part of the product offering to users. Apart from that, a download from youtube in itself does not violate copyright laws.
Well the tests can also be found under the DMCA repo history too, so I guess we need to take that repo down.
If someone closes the PR and fully deletes the tree from GitHub then the repo should be fine.
What's preventing this one from being taken down too?
Exposure? Widespread adoption? Luck? You know as well as I do I'd wager.
The maintainers behind this repo may also have more interest in filing a DMCA counter-notice.
The maintainers of the previous repo didn't get a chance to file a counter-notice. That's why many people are upset at github about this, they took down the repo (and all of the forks, I think?) as soon as they received the letter from the RIAA.
You can file a counter-notice after it gets taken down, and then the repo will be reinstated. That's my understanding of how it usually works.
I suspect the problem is the counter notice. You must agree to be held to US law and the maintainer resides in Germany.
According to the DMCA, the entity that files a counter notice consents to jurisdiction of the US district court of their residence. If not a resident of the US, jurisdiction is the district where the service provider is located. Once a counter notice is filed, one cannot argue the law doesn't apply because of lack of jurisdiction.
According to the DMCA, the entity that files a counter notice consents to jurisdiction of the US district court of their residence. If not a resident of the US, jurisdiction is the district where the service provider is located. Once a counter notice is filed, one cannot argue the law doesn't apply because of lack of jurisdiction.
so instead,they probably have to sue github in germany
I think for one, it does not have references to specific videos in the documentation.
AIUI this was never the case; it was in a unit test.
I find this whole chain of comments in every single youtube-dl thread, lol.
Probably my fault. For the first hour or so, this is what my top comment to the original HN post claimed. Fortunately I caught it before the edit window closed, but I imagine it was seen by a lot of people by that point. I suspect the RIAA intended on being misleading about exactly how prominently the references existed to push the argument that it was part of the “marketing.” They reference the README a couple paragraphs up, but then become very vague about the references to copyrighted material.
Does this distinction really matter? Everyone is so quick to mention this, but personally 1. I see unit tests as examples of how you can use the software and 2. It's still a link to copyrighted content is software that can be used to download said content. Doesn't matter if it's in documentation, unit test or even code comment.
It does in the sense of intent -- if they built the tool for the express purpose of avoiding copyright restriction, they would do more than hide it in a random unit test or code comment.
Putting it in the README itself would be a far stronger signal of intentional malfeasance.
In the unit test... it's pretty clear the original developer's intent was simply to pick a video, and chose a trivially popular one (taylor swift), with likely no mind towards copyright (or its avoidance).
That is, the tool happens to be capable of the job, because it simply has purpose to download videos, with no awareness of copyright law.
Putting it in the README itself would be a far stronger signal of intentional malfeasance.
In the unit test... it's pretty clear the original developer's intent was simply to pick a video, and chose a trivially popular one (taylor swift), with likely no mind towards copyright (or its avoidance).
That is, the tool happens to be capable of the job, because it simply has purpose to download videos, with no awareness of copyright law.
Unit tests are explicit examples of how the program works. It's showing by example things the program can do. Hell, it's even testing them to make sure they still and always will work. You may as well name the unit test "testCanDownloadIllegalContent()"
Does anyone know why the README for this warns "DO NOT UPDATE using -U ! instead download binaries again or when installed with pip use a described above when installing."
Why is that? Why leave the -U option there?
Why is that? Why leave the -U option there?
yt-dl binaries from the previous repo will update from that same repo, which basically 451s now.
Presumably, the update mechanism in this repo has been pointed to itself rather than upstream, and once you get binaries from it, you can resume updating them with -U.
Presumably, the update mechanism in this repo has been pointed to itself rather than upstream, and once you get binaries from it, you can resume updating them with -U.
Does this repo fixed the issue with the unit test downloading a copyright video?
If the test was downloading a video; it's not a unit test. I know that the definition gets stretched, but at the very least, a unit test should be deterministic. A test relying on a network communication with a third party system stretches the adjective 'unit' to beyond usefulness.
What would a unit test look like for a tool that downloads videos from third party sites?
One option is to simply write end to end tests, and not bother with unit tests at all. This does mean that you don't know if tests are failing because of a new code change or if the world has changed from underneath you.
If you want to write a unit test, then the test would mock the response from the server. You would have an expected sequence of expected requests and their responses. You would only be testing that you made the correct requests and, given the same response from the server, your code parsed it correctly and gave the expected outputs.
If the server bans your IP, or changes their response codes, your unit tests will still pass, as they should. Notification that the world has changed around you is not the purpose of a unit test. It is to allow you to feel confident of claims "I refactored the code and behavior is unchanged." or "I changed the behavior and this is how it has changed" or "I know that my code handles all known error codes from the server."
This is important when the world does change around you; as it lets you identify when that happens.
I recognize that test terminology is vague, and people will use competing definitions (I have seen 'functional', 'integration', and 'end to end' all used to describe non-unit tests, and I've seen each used to mean the others). I recognize this may seem as an exercise in pedantry. However, there is a valuable distinction to be made between tests that can be run deterministically, and tests that rely on the behavior of third parties outside of your control. These tests types will differ in terms of speed of execution, infrastructure setup (many test environments may not have network access, or may need special credential access)[1], reliability, and also, importantly, the proper response to a failure.
[1] Also, if you're doing mobile app development, you very much want to distinguish between tests that require a device and ones that don't. You will likely have multiple test classifications if you're doing mobile development.
If you want to write a unit test, then the test would mock the response from the server. You would have an expected sequence of expected requests and their responses. You would only be testing that you made the correct requests and, given the same response from the server, your code parsed it correctly and gave the expected outputs.
If the server bans your IP, or changes their response codes, your unit tests will still pass, as they should. Notification that the world has changed around you is not the purpose of a unit test. It is to allow you to feel confident of claims "I refactored the code and behavior is unchanged." or "I changed the behavior and this is how it has changed" or "I know that my code handles all known error codes from the server."
This is important when the world does change around you; as it lets you identify when that happens.
I recognize that test terminology is vague, and people will use competing definitions (I have seen 'functional', 'integration', and 'end to end' all used to describe non-unit tests, and I've seen each used to mean the others). I recognize this may seem as an exercise in pedantry. However, there is a valuable distinction to be made between tests that can be run deterministically, and tests that rely on the behavior of third parties outside of your control. These tests types will differ in terms of speed of execution, infrastructure setup (many test environments may not have network access, or may need special credential access)[1], reliability, and also, importantly, the proper response to a failure.
[1] Also, if you're doing mobile app development, you very much want to distinguish between tests that require a device and ones that don't. You will likely have multiple test classifications if you're doing mobile development.
I guess the difference with youtube-dl is that there can be a change in the code base aswell as a server side change.
The unit tests should only cover changes in the codebase... probing whether something serverside changed and whether the source material can still be downloaded can also be automated, but preferably not in a pipeline triggered by commits.
The unit tests should only cover changes in the codebase... probing whether something serverside changed and whether the source material can still be downloaded can also be automated, but preferably not in a pipeline triggered by commits.
[deleted]
Weren't the tests under discussion from the original repo only downloading the first <10k or so?
eg just enough to verify the content being pulled down was as expected, as would make sense for a video unit test
eg just enough to verify the content being pulled down was as expected, as would make sense for a video unit test
[deleted]
[deleted]
Yes.
[deleted]
I recently submitted this repo 4 days ago, and it was flagged :)
https://news.ycombinator.com/item?id=24878283
Now this submit is on the top of HN, and I still don't know why.
https://news.ycombinator.com/item?id=24878283
Now this submit is on the top of HN, and I still don't know why.
Ok, but so what? Do you care about sharing with people (accomplished) or about getting karma points?
I mean, it's kind of naff, but the karma points are there because people like getting them.
The karma points are there to prevent spammers. It's effective enough.
It makes people wonder how fair the process is.
Discussed here 46 days ago:
https://news.ycombinator.com/item?id=24450560 (199 points/104 comments)
https://news.ycombinator.com/item?id=24450560 (199 points/104 comments)
nitinreddy88(1)
Would it be safer to thoroughly delete these tests from the git history?