Взять код из чужого проекта

Здравствуйте. Всех с наступающим! :palm_tree:
Интересует вопрос.
Я написал небольшую программу на питоне и в ней мне нужна часть кода от проекта yt-dlp. Если я правильно понимаю, этот проект ведётся параллельно с youtube-dl, но пилится активнее.
Так вот, от-туда мне был нужен только их интерпретатор JSa. Я его взял (плюс понадобились ещё несколько функций из utils.py, чтобы он работал), прикрутил к своему коду и залил себе на гитхаб. Потом интерпретатор перестал быть нужен и в одном из последних коммитов я его выпилил.
Теперь вопрос: всё ли правильно? Мог ли я так делать? Или нужно перезалить проект заново (вообще без этого интерпретатора), во имя луны и соблюдения чьих-то там авторских прав и/или каких-то лицензий?

Мог ли я так делать?

Это надо было проверять сразу в момент деяния. Раз стёр - можешь расслабиться, нарушение ты уже устранил.

Чтобы избежать ошибок в будущем, уточните, “проверять” что?

Ну там осталось по мелочи. Несколько регулярок и тел HTTP-запросов скопипащено (и имена некоторых функций совпадают, но код в них отличается). Я подумал, это не так важно. Их тоже, получается, надо выпиливать? :thinking:

Проверять лицензию заимствуемого кода. Лицензия - это какие права вам передаёт автор. Есть права - отлично, используем. Нет прав - разрабатываем своё такое же, но другое.

Их тоже, получается, надо выпиливать?

Я не разбирался, там по месту надо смотреть.

Короче, проект из общего доступа я пока убрал (сделал его приватным). Всё-равно, на ютубе опять изменилось API и свою главную функцию он больше не выполняет (хоть с интерпретатором, хоть без него).

У них там висит лицензия Unlicense license. А в самой лицензии, кроме прочего, написано:

Anyone is free to copy, modify, publish, use, compile, sell, or
distribute this software, either in source code form or as a compiled
binary, for any purpose, commercial or non-commercial, and by any means.

Это значит, что я могу копипастить у них что хочу?

Вот тут я не совсем понимаю. “разработать своё такое же” :thinking: На сколько оно должно быть “не таким же, как то”, чтобы считаться “другим”? Каким мерилом это измеряется?
Ведь не всегда код можно написать по-разному, чтобы в результате получить одно и тоже. Чем проще код (и его меньше), тем сложнее это сделать. Например, регулярное выражение. Если мне нужно найти тот же кусок текста, как обойтись без копипаста регулярки? :thinking: Я сейчас имею ввиду сам паттерн, а не обвеску (коей в упомянутых выше проектах много). Ну то есть, нельзя ведь написать какой-то другой паттерн, чтобы найти тот же кусок текста, правильно?

Ну вот например паттерны регулярных выражений. Считается ли их копипаст нарушением чего-то там?
Или HTTP-запросы. Они же и так, по-идее, находятся в открытом доступе. Большинство из них можно просто посмотреть в dev.tools браузера. А некоторые палятся только сниффером, наверное. Например, запросы из всяких приложух на мобилках. Но в обоих случаях ничего не шифруется же, вроде. Всё открыто.
Так какая разница, возьму я их из чьего-то кода или выцеплю из браузера сам? :man_shrugging: Запрос-то в результате одинаковый получится.
Или какой-нибудь рейтрейсинг взять, как пример. Геометрические формулы нельзя написать “по-другому”. И код шейдеров / матриц всегда будет плюс-минус одинаковым.

Да, судя по процитированному куску лицензии копировать было можно

Хорошо. Но проект всё-равно пока больше не нужен.
С интерпретатором я поторопился, конечно. Возможно, в качестве интерпретатора можно было взять какую-нибудь библиотеку.