Vikhrmodels/habr_qa_sbs huggingface dataset:
Вопрос: Как преобразовать строку в оператор?

Лучший ответ:
еще можно сделать как в питоне
d = {'+': (a,b) => a+b, '-': (a,b) => a-b }
const sum = '+'
d[sum](123,321)
444

const minus = '-'
d[minus](123,321)
-198

хотя это тот же свич по сути

Худший ответ:
const a = "10";
const b = "20";
const operator = "+";

const formula = a + operator + b;

console.log(eval(formula)); // 30

Помните о том что `eval()` - опасная штука. Может выполнить все что угодно.

https://jsfiddle.net/c9L4j1bq/
Вопрос: Есть ли у кого то опыт покупки Б\У серверов?

Лучший ответ:
Ну у меня есть :)
Есть конторы, которые барыжат серверами, снятыми с датацентров пяти-семилетней давности. Они разумеется, далеко не новые, но для сохо вполне подойдут. У них там техника уже и ТО прошла и проверена, что работает и с документами проблем не будет - контора же.
Далее реклама :)Вот, например

Худший ответ:
Да нормально всё, проверяете, как обычный ПК и вперёд.
Я даже запчасти для б/у серверов покупал.
Вопрос: User managment php lib — библиотека для работы пользователями, какие есть?

Лучший ответ:
Уже давно написал бы на Ларе, чем ходить искать "без фреймворков".

Фреймворкофобия - это болезнь, надо лечиться.

Худший ответ:
Был взят FusionAuth  
как самое адекватное АПИ и нормальная документация
Вопрос: Кто может объяснить суть решения задачи?

Лучший ответ:
Числа у тебя в десятичной системе. Следовательно, каждый разряд числа может быть представлен одной из десяти цифр.

n % 10 - получаешь остаток от деления всего твоего числа на 10. Так ты получаешь младший разряд.
Пример: 
12345678 % 10 = 8.

Math.trunc( n / 10 ) - отбрасывание дробной части. В данном случае операция нужна для того, чтобы выбрасывать на каждом шаге младший разряд.
Пример: 
12345678 / 10 = 1234567.8
Math.trunc( 1234567.8 ) = 1234567

Худший ответ:
Гриша, не забывай, что всегда существуют и другие способы). Например, немножко подумавши), можно и так:
function getSumNumber(number) {
    let toArr = number.toString().split('');
    let summ = 0;
    for(let i = 0; i <= toArr.length - 1; i++) {
        summ += +toArr[i];
    };
    return summ;
};

let result = getSumNumber(58769);
console.log(result) // 35

И для понимания может полегче)
Вопрос: С чего вообще начать разработку комплекса ПО для таксопарка?

Лучший ответ:
Слишком много неизвестных
Вам нужно понять, что требуется всем сторонам, понять их минимальные и основные требования
Описать юзкейсы всех учасников
А также понять мотивы всех учасниковсделать конкуренцию гигантам в этом бизнесе за счет значительно низкой ценой.цена не всегда ключевой показатель. 
Кроме того есть множество цен: стартовая цена, цена владения, цена модификации, % с продаж и тд и тп
С технической стороны: если у вас человек знающий, как организовать колл-центр, то половина дела сделана
Вторая половина - апи карт
Ну и оставшиеся 80% - свести весь зоопарк воедино

Худший ответ:
Имхо, сначала нужно проанализировать рынок имеющихся решений; посмотреть, как устроены они; какие имеют достоинства и недостатки; оценить стоимость разработки/сопровождения своими силами. После этого может внезапно оказаться, что выгоднее стать местными внедренцами/сопровожденцами/кастомизаторами готового решения, чем разрабатывать что-то свое(хотя это интереснее :)).
Вопрос: Как получить ориентацию в Xamarin Android?

Лучший ответ:
Код выше не соотвествует задаче. В базовых доках есть пример public override void OnConfigurationChanged (Android.Content.Res.Configuration newConfig)
  {
    base.OnConfigurationChanged (newConfig);
                        
    if (newConfig.Orientation == Android.Content.Res.Orientation.Portrait) {
      _tv.LayoutParameters = _layoutParamsPortrait;
      _tv.Text = "Changed to portrait";
    } else if (newConfig.Orientation == Android.Content.Res.Orientation.Landscape) {
      _tv.LayoutParameters = _layoutParamsLandscape;
      _tv.Text = "Changed to landscape";
    }
  }
}

Худший ответ:
попробуй так https://docs.microsoft.com/ru-ru/xamarin/essential...
Вопрос: Как правильно работать с сторонним api?

Лучший ответ:
Сделайте сервис. В нем обращайтесь к этому api ну или к свой заглушке на время тестирования. Там же сможете трансформировать данные если они корявые. Обработку ошибок можно как вынести выше так и гасить по месту отправляя в логи сообщение и на вызов пустой объект

Худший ответ:
Конечно контроллер - не место для подобных действий. 

Как правильно указал Владимир Коротенко - перенос кода, отвечающего за работу с внешним API в отдельный сервис - это первое что вам нужно сделать. Это действие открывает для вас массу возможностей: подмена сервиса для разных сценариев, использование заглушек для тестов, вызовы вне контроллеров и т.д. Кроме того сам код при этом становится более простым и поддерживаемым, а также лучше соответствует принципам SOLID. 

Если после выделения сервиса вы поймёте что для вас необходима возможность изменения его реализации - важно выделить ключевые методы в интерфейс и использовать именно интерфейс для внедрения зависимостей в те же контроллеры.

Для реализации самих запросов внутри сервиса логично использовать Symfony HTTP Client.

После этого у вас возможны различные сценарии в зависимости от того что же этот API делает. 

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

Если вы забираете из API данные для подготовки своего ответа, но сами эти данные меняются не постоянно - логично будет добавить в ваш сервис поддержку кэширования с использованием Symfony Cache.

Если вы забираете данные из API или отправляете данные туда, но они не зависят от контекста текущего запроса - этот процесс логичнее всего вынести в консольную команду, реализованную через Symfony Console и дёргать её по cron'у. 

Альтернативно, если вы используете Symfony 4.4 или 5.x - вы можете организовать этот процесс через новый Symfony Messenger. Он же будет лучшим вариантом если, к примеру, запросов много или они тяжёлые и вам нужно организовать их распределение.
Вопрос: Какие книги лучше подойдут новичку по bash?

Лучший ответ:
Начните с этого например: https://www.opennet.ru/docs/RUS/bash_scripting_guide/

Худший ответ:
Вики с практическими примерами
Вопрос: Что делать, если символы вместо русских букв?

Лучший ответ:
https://codepen.io/yura-kotov/pen/OJMOWgg

что-то не вижу у тебя некаких каракулей. Сам посмотри.

открой файл нотепадом++, выдели весь текст и преобразуй его в UTF-8 без bom

Худший ответ:
Код не отображается)
Вопрос: Что использовать для подсветки материала произвольной формы?

Лучший ответ:
Лазерная указка + шаговые двигатели

Худший ответ:
Ещё вариант погуглить "звёздное небо"
В карте сверлится миллион отверстий 1 мм, в каждое отверстие вставляется световод, который посдвечивается индивидуальным светодиодом, светодиоды уже программируются контроллером.

Но самое простое (хотя кому как) это просто поставить проектор и выводить всё что хочется.
Гуглить "интерактивная песочница", если карта будет нейтрального цвета, то разукрашивать можно будет в динамике, то есть например бегающих человечков, ездящие автомобили, текущие реки и т.п.
Вопрос: Тег P и H1. Как их писать правильно с точки зрения SEO?

Лучший ответ:
Разница есть: в первом случае Вы получите 3 предложения, каждое с ключом, а во втором - одно предложение с тремя ключами ибо тег <br> лишь визуально форматирует контент, но не разбивает текст на пассажи.
Я бы рекомендовал не использовать <br>, чтобы исключить элемент неопределённости при продвижении.

Худший ответ:
Нет  правил SEO, об этом постоянно пишут поисковики, они настаивают на семантической модели. 
Заголовки предназначены для формирования структуры документа, параграфы для блоков текста, болд для выделения важных логически частей текста. 
Все остальное хаки, которые могут действовать, а могут и нет.
Вопрос: Чем и как корректно померять производительность СХД?

Лучший ответ:
IO depth = 1 -- это ни о чём, так в жизни не бывает. Даже один потребитель будет генерить IO операции в несколько потоков. 4 воркера в IOmeter с IO depth = 8 -- вот это ближе к делу, и тогда при различных типах RAID-ов увидите разную производительность.

Худший ответ:
Чтобы что-то тестировать нужно вообще представлять что вы тестируете, зачем, в чем это измеряется, и от чего зависит. А если просто запускать тесты - они будут показывать погоду в африке.Чем и как корректно померять производительность СХД?Вы перечислили довольно много средств тестирования.Результаты получаю странные, количество IOPS почти не меняется между рейд 10 на 12 голов и на 4 головы.А должно?Настройки иометер такие: 20/80 запись/чтение, 8КБ блок, очередь макс 1 IO (Burst Length), доступ рандом.Низкая очередь или ее отсутствие характерна для работы пользователя. Если СХД будет обслуживать одного пользователя который будет работать печатать документы в ворде и сохранять их на СХД это вполне адекватный тест.
Вопрос: Нужен ли специальный драйвер для Samsung evo 860 SSD?

Лучший ответ:
Не нужно, т.к. у накопителя внутри свой контроллер, который и выполняет всю логику работы с ним. Всё, что нужно винде - это драйвера на SATA-контроллер, чтобы видеть SATA-диски и отправлять им нужные команды для доступа к данным, а такие драйвера стандартом идут с любой современной виндой, начиная с висты.

Худший ответ:
Поставьте Magician Software
https://www.samsung.com/ru/support/model/MZ-76E250BW/

Так на всякий случай, она вроде обновляет микрокод
Вопрос: Блокировка сайтов, справится ли dns?

Лучший ответ:
Можно, справится.
Хотя надо понимать что обойти такую блокировку очень просто - достаточно прописать себе другой DNS.

Способов много, все хорошие, все имеют свои плюсы и минусы.
И на каждый способ блокировки есть способ обойти эту блокировку.

Какой вам удобнее и выгоднее будет - зависит от ситуации и задач.

Худший ответ:
Можно, справится, причем это самый легкий по CPU способ.
Что бы не обходили блокировку, можно заблокировать выход в мир на 53 порт или еще схитрить (если роутер на базе Mikrotik  или Linux) заворачивать все запросы в мир на 53 порт в сторону вашего DNS.

Но особо умный пользователи смогут это обойти. В некоторый браузерах уже есть поддержка DOH который работает через 443 порт и зашифрован.
Вопрос: Можно ли в письмо вставить пиксель Метрики и собрать ClientID?

Лучший ответ:
Нет.
А если сможете, то вы нашли уязвимость, либо адресат пользуется чем-то очень устаревшим.

Худший ответ:
Теоретически можно, спецификация протоколов не мешает.
Практически толку не будет, ибо:
- В MS Outlook картинки могут не показываться настройками юзера или политиками
- В TB картинки совершенно точно не показываются по умолчанию
- Люблй корпоративный почтовый сервак может сделать с письмом все что угодно. Здесь "все, что угодно" - понимается буквально. Он может его как угодно преобразовать, что угодно из него выкинуть, ободрать до голого текста, вырезать ссылки
Годится, если Ваша ЦА - лабухи, сидящие на почтовиках типа gmail/yandex/mail.ru
Вопрос: Начинающий тестировщик, с чего начать, где практиковаться?

Лучший ответ:
Я бы не стал тратить время на курсы, там толкового мало, наверное.
На счёт литературы, то советую прочесть: Роман Савин "тестирование дотком", Святослав Куликов "Тестирование программного обеспечения. Базовый курс" и Сэм Канер "тестирование программного обеспечения" (именно в таком порядке)
Этого должно хватить для начала. 

На счёт стажировки советую штурмовать всевозможные сайты по поиску работы (linkedin очень хорошая штука для айтишников), кто-то да наймёт новичка.

Худший ответ:
Курсы - любые, но от крупных компаний: Software-testing.ru, Geekbrains, Яндекс.Практикум итд. 
Курсы - это хорошо, но недостаточно. Дадут базовые знания и направление, в котором можно двигаться.
Поэтому параллельно читаем книги:
Святослав Куликов, «Тестирование программного обеспечения. Базовый курс»
Гленфорд Майерс, Том Баджетт, Кори Сандлер, «Искусство тестирования программ»
Борис Бейзер «Тестирование черного ящика. Технологии функционального тестирования программного обеспечения и систем»

Ну и курим вдоль и поперек https://www.software-testing.ru/ с форумами, блогами, статьями итд

Если есть возможность ходить на бесплатные конфы и митапы - можно сходить, посмотреть, как оно там внутри устроено, современное тестирование..
Вопрос: Как проверить ошибки в вводимом тексте?

Лучший ответ:
Нужен словарь, представленный в виде дерева, где в узлах буквы, а любое слово - это проход от корня до листа. Тогда задача обнаружения ошибки сводится к проверке достижимости листа из корня при заданном наборе букв (слове), а предлагаемые подсказки выводятся из ближайших соседей

Худший ответ:
Я бы поискал какой-нибудь бесплатный spellchecker. Самому такое слишком затратно делать. Сходу нашлось пара заброшенных проектов для golang.
Вопрос: Как сверстать такой блок (фото прилагается)?

Лучший ответ:
псевдоэлемент after

Худший ответ:
добавьте псевдокласс before с градиентом так:

html
<div class='block'></div>

css
.block {
width: 0; 
height: 0;
border-top: 50px solid transparent;
border-left: 50px solid #D0D4DC;
border-bottom: 50px solid transparent;
}
Вопрос: Как защитить исходный код?

Лучший ответ:
Господи, опять очередной защитник. 

Главное плагина ещё нет, покупателей ни одного, языка толком не знает - но уже страдания об упущенной прибыли.  

Варианты есть такие:
1. Быть чуточку поскромнее. И осознать, что никому твой г-код не нужен, ни за деньги, ни бесплатно. 
2. Быть чуточку адекватнее. И сначала написать код, потом найти покупателей и толкьо потом уже думать о защите.
3. Расти надо собой и првратиться через несколько лет в человека, который действительно может написать что-то ценное.
4. после этого уже иметь представление о сервисах работающих через API и не иметь проблема реализовать такой самостоятельно не задавая глупых вопросов на тостере

Худший ответ:
Защитить код довольно просто, нужно просто запутать его ровно на столько, чтобы расшифровка была не выгодной и не имела смысла - дешевле будет купить, чем распутать. Чем более говнокодистее код напишите, тем лучше.
Вопрос: Что значит вилка зп, которую пишут в вакансиях?

Лучший ответ:
Нет, эта вилка относится конкретно к тому, за какую сумму компания готова нанять работника. 

Повышение отдельно обговаривается.

Худший ответ:
Нет, эта вилка относится конкретно к тому, за какую сумму компания готова нанять работника. 

Повышение отдельно обговаривается.
Вопрос: Как составить план обучения html и css?

Лучший ответ:
основы в htmlacademy
потом вот подробный план обучения
webmasters.teamdev.com
решает в итоге практика, бери psd и верстай, смотри как это делают в ютубе

Худший ответ:
Начал с академии, прошёл наспех все. Толку 50 на 50. Рассказывается что такое бордер допустим и тут же сделайте бордер такой как мы скажем. Не тот формат что мне нравится. Взял платный на месяц формат академии, уже лучше, приходится думать. Верный вариант это взять любой макет, если знаешь минимум вёрстки и стилей то сразу делать его. 100% что получится дерьмо, 100% что ты будешь искать как сделать блок, кнопку, ещё что то, но как только ты доделаешь ты уже будешь частично в теме, после 5-10 шаблона я взял тупо открыл первый попавшийся сайт и решил сверстать. Я не идеален до сих пор, но что было до и сейчас, намного отличается, а значит - это работает)
Вопрос: В чем отличие загрузочной флешки от live usb?

Лучший ответ:
Термин "live" CD/DVD/USB - накопитель, который позволяет загрузиться с него и запустить одну (или несколько) операционных систем и работать в ней.
Термин "bootable" (загрузочный) - более широкий, включает всё предыдущее, но также - варианты типа загрузочных дисков для установки ОС (OS installation disk), для запуска каких-то сервисных программ (тестирование и восстановление дисков) и не предполагающих произвольную работу в ОС (и наличие ОС на этом диске вообще).

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

Лучший ответ:
русскоязычные люди (бывшие советские граждане)  не способны создавать сообщества
это наша национальная черта - мы не умеем совместно жить и работать
когда-то давно в ссср могли но сдулись и деградировали
и до ссср в 1917м государство тоже самоубилось как в 1991м

например здесь на тостере хорошо помогают
но тут нет нормального полноценного сообщества
это сообщество индивидуалистов атомизированных 

хорошее сообщество это община, как семья, как родня
где старшие заботятся о младших, где стимулируют талантливых
русская общинность исчезла лет 50 назад
последний рывок был - индустриализация, война и послевоенное строительство
и всё, люди из общинных патриархальных деревень были переселены в города, и люди разучились жить

и всё так потому что в современном обществе главное это деньги
не творчество наука и изобретение и тд
всё измеряется деньгами
деньги это высшая ценность
это культ бабла и потребления в котором человек человеку волк
люди стали похожи на паразитов пожирающих биосферу

с другой стороны ты ничем не ограничен - создавай любую социальную платформу и программируй сообщество
просто большинство людей тупо не понимают как это делать
некоторые даже скажут - фу! как можно программировать людей!
да, люди программируются через обучение и воспитание
и сообщество программируется через идеологию и закон

это называется социальное программирование

некоторые считают что нельзя программировать людей и любые идеологии должны быть запрещены - это философия одноклеточных анархистов-либералов-нигилистов-демократов, то есть невежественных атомизированных людей которых теперь большинство

Худший ответ:
Сервисы совместного кодинга с голосовыми конференциями: получите желаемое.
Затем, уйдёте в гит и забудете про всё это, как про страшный сон.
Вопрос: Есть ли возможность работать со вторым компьютером в рабочем пространстве первого, по аналогии с единым режимом в vmware?

Лучший ответ:
Терминальный сервер. Если на нем настроить публикацию приложений - будет примерно то же самое

Худший ответ:
Remote APP из Terminal Server, но боюсь - это из пушки по воробьям.
Вопрос: Как стилизовать полосу прокрутки в CSS?

Лучший ответ:
Можно, но поддерживает только браузеры на базе webkit, оптимально использовать плагин

Худший ответ:
Есть какие-то способы, слабо работающие. Советую вот это https://grsmto.github.io/simplebar/ .
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/simplebar@latest/dist/simplebar.css">
<script src="https://cdn.jsdelivr.net/npm/simplebar@latest/dist/simplebar.min.js"></script>

Сам пользуюсь
Вопрос: Как разбить том в Windows 10, если мешают неперемещаемые файлы?

Лучший ответ:
Файл подкачки, гибернация, точки восстановления - удалить.
Дефрагментировать 
Сжать.
После чего все вернете назад.

Худший ответ:
А в чем проблема оставить семерке 300 Гб? Ну и проблемы у людей
Вопрос: Где найти хедер OpenGL/gl3.h?

Лучший ответ:
sudo apt-get install build-essential libgl1-mesa-devПопробуйте подключить так:
#include <GL/gl.h>

Худший ответ:
Решил, скачал либу с гита под Линукс)
Вопрос: Как спарсить информацию с сайта, который не размещен на сервере?

Лучший ответ:
Если сайт лежит в виде статических файлов на диске, то надо просто читать эти файлы с диска вместо запросов с сервера и свободно обрабатывать теми же самыми регулярками, lxml, bs4 и ещё чем душе угодно. Тут даже проще будет - не надо разгадывать капчи, сохранять куки и всё такое.

Конечно, можно поднять локально web-сервер, но это как вызвать команду геодезистов с теодолитом для измерения своей гостиной, хотя лучше было бы просто купить рулетку.

Худший ответ:
Файл прочитайте
Вопрос: Что учить front-end разработчику в 2019?

Лучший ответ:
Английский

Худший ответ:
Htmlacademy.ru
Learn.javascript.ru
Лучше для новичка нет.
Вопрос: Почему HashSet быстрее TreeSet?

Лучший ответ:
Потому что доступ к ячейке памяти с известным адресом очевидно быстрее обхода дерева.

Худший ответ:
ну этого много в интернете есть, например вот
Вопрос: Как сократить выражение?

Лучший ответ:
Быстрого общего способа нет.
Всякий многочлен с вещественными коэффициентами можно разложить в произведение линейных и квадратичных множителей с вещественными коэффициентами (wiki). Но задача поиска этого разложения эквивалентна задаче вычисления всех корней этого многочлена, которая (задача) неразрешима в радикалах для полиномов  пятой степени и выше.

Худший ответ:
https://ru.m.wikipedia.org/wiki/%D0%A4%D0%BE%D1%80...
Да, и чтобы найти такой ответ поиском, нужно либо знать термин "формула сокращённого умножения" из школьной программы, либо читать раздел основ линейной алгебры в каком-либо учебнике (что тоже требует знания того, что это - линейная алгебра). Это к вопросу о тех индивидуумах, которые любят бубнить "математика не нужна, всё можно найти".
Вопрос: Чистый IKEv2 туннель между linux (as a server) и mikrotik (as a client, dynamic IP)?

Лучший ответ:
Только не IKE. IKE - Internet Key Exchange - протокол обмена ключами - используется для установления IPSec-туннелей (использующих протокол ESP для транспорта пакетов). 
А так - работает только в путь! Вот я сейчас например сижу дома, а каталог "Мои документы" подключен через IPSec-туннель к серверу, который находится примерно в пяти километрах (если по прямой) от меня...
Roadwarrior-конфигурация называется. На сайте strongswan множество примеров.

Худший ответ:
Можно, работает.
Вопрос: Как еще не совсем состоявшемуся junior-у найти работу/стажировку/наставника?

Лучший ответ:
Первые 2 года пусть только учится. Без подработок.
Во-первых и так после школы смена "ритма". Во-вторых первое время надо "работать" на отношение к ней преподавателей. Покажет "тягу к знаниям" и понимание, возможно (от преподавателей уже зависит) потом будет получать половину сессии автоматом.

Худший ответ:
Как можно больше изучать ЯП, работу ПК, сетей и еще много всяких мелочей.
Если с этим проблем нету, то на собесе можно сказать, что руководили крупным проектом, который закрылся по вине владельца и тд., главное не говорить, что вы вообще ничего не знаете и только с универа.

Без опыта редко берут, очень. Если имеешь отличные знания, начиная от мидл разработчика, то можно пытаться пробиваться, а там всё само закрутиться.

В свободное время совершенствовать навыки и знания, чаще писать код, обращать внимание на то, как пишете код - красиво или нет.

ps. полностью моё мнение, основанное на рассказал знакомых программистов
Вопрос: Как оправдать намерение поставить в офисе Jabber-клиент?

Лучший ответ:
Как оправдать намерение поставить в офисе Jabber-клиент?А зачем? Кому оно нужно? Если руководству нужно - оно скажет вам поставить, если не нужно - не скажет.
В крупной компании где сотни работников есть смысл в своем сервере. 
Плюсы - данные не уходят за пределы компании. 
Минусы - нужно администрировать.
В небольшой компании смысла нет, проще пользоваться популярными клиентами.
Поскольку компания небольшая - внутреннее общение не так актуально, а внешнее - в любом случае не от вас зависит, а от того какой мессенджер используют ваши контрагенты.
Как правило вайбер используют - есть у большинства контрагентов, ставиться как на компьютер, так и на телефон.
У сотрудников которые работают с клиентами - и вайбер, ватсап, майл.ру агент, скайп.

Худший ответ:
Закопайте уже несчастного жабера
посмотри slack и его опенсорсную альтернативу (плюс onprem вариант) rocket.chat
а вообще, если это только тебе одному нужно, то тебе же и придется подстраиваться под остальных, а не наоборот
и в этой ситуации лучше всего подойдет телеграм, потому как он много у кого есть и можно самописными ботами расширить функционал. 
к примеру ставишь какой нибудь redmine как issue tracker, а задачи юзеры в телеграме заводят и отслеживают
Вопрос: Как реализовать загрузку видео-файла с помощью php?

Лучший ответ:
за вас гуглить никто не будет, есть много примеров уже

Худший ответ:
Загружать файл на FTP и сохранять в БД ссылку на этот файл. Скачать видео с ютуб по ссылке можно использовать сторонние сервисы которые предоставляют API или библиотеку для питон YouTube-DL. Но помните что скачивание с ютуб, противоречит их политике.