background top icon
background center wave icon
background filled rhombus icon
background two lines icon
background stroke rhombus icon

Скачать "Spring Framework. Урок 19: Параметры GET запроса. Аннотация @RequestParam."

input logo icon
Теги видео
|

Теги видео

RequestParam
GET запрос
HttpServletRequest
spring java
spring видеоуроки
spring на русском
spring джава
spring для чайников
спринг
spring для начинающих
курс по Spring
курс по спринг
уроки по spring
спринг для начинающих
Spring MVC
Spring Core
java
джава
веб разработка
веб разработка на джава
web разработка
web разработка на Spring
maven
IntelliJ Idea
spring framework
программирование
программирование на java
веб приложение
Параметры запроса
Субтитры
|

Субтитры

subtitles menu arrow
  • enАнглийский
Скачать
00:00:01
параметрами get запроса и с аннотации
00:00:03
request парам спонсор этого урока
00:00:05
статический анализатор певец studio все
00:00:08
мы люди всем нам свойственно делать
00:00:10
ошибки и ошибки в коде неизбежно но с
00:00:13
помощью статического анализатора мы
00:00:14
можем обнаружить эти ошибки исправить их
00:00:17
и сделать наш код лучше
00:00:19
это похоже на процесс code review когда
00:00:22
в компаниях одни разработчики смотрят на
00:00:25
код других разработчиков
00:00:26
чтобы найти в нем ошибки только в случае
00:00:29
с певец studio
00:00:30
этот процесс полностью автоматизирован
00:00:32
занимает мало времени и удобен в
00:00:34
использовании
00:00:35
давайте прямо в коде продемонстрирую
00:00:37
работу период studio
00:00:39
первая ошибка классическая простейшая
00:00:42
у меня оно случалось много раз у нас
00:00:45
есть двумерный массив или матрица 10 на
00:00:48
10 и по этой матрицы мы хотим пройтись и
00:00:50
например заполнить ее каким-то числом
00:00:52
для этого мы заводим внешний цикл с
00:00:55
переменной
00:00:56
ой и заводим внутренний цикл с
00:00:58
переменной джей внешний цикл должен идти
00:01:00
по строкам а внутренний цикл должны идти
00:01:03
по столбцам и вот здесь очень легко допустить эту
00:01:06
ошибку когда мы инкрементируем не джей
00:01:11
а инкрементируем ой во внутреннем цикле
00:01:13
то есть если мы если бы мы здесь
00:01:15
написали j + +
00:01:16
то мы бы корректно проходились по всем
00:01:18
элементам этой матрицы но очень часто по
00:01:22
невнимательности или и когда мы копируем
00:01:25
код возникает вот такие ситуации когда
00:01:27
мы здесь инкрементируем ту же саму
00:01:29
переменную что его внешним цикле я
00:01:31
установил плагин для intel hd
00:01:34
поэтому я просто захожу во вкладку
00:01:36
онлайн и здесь мне есть певец studio
00:01:39
если мы запустим анализ
00:01:40
нажав на check car and file то мы увидим
00:01:43
что певец studio находит ошибку и здесь
00:01:48
очевидно что вот это выражение она
00:01:50
всегда true потому что у нас не
00:01:52
инкрементироваться джей и мы можем
00:01:54
увидеть увидев эту ошибку мы можем
00:01:56
исправить нашу
00:01:58
оплошность и наш код будет работать
00:02:00
правильно единственное что стоит
00:02:03
отметить то что для этого простого
00:02:05
случая для этой простой ошибки работает
00:02:08
встроенный анализатор кода который
00:02:10
встроен в среду разработки это лишь один
00:02:12
и он тоже по
00:02:13
называть нам эту ошибку давайте разберем
00:02:15
пример более сложных ошибок которые
00:02:18
пиве studio определяет а при этом
00:02:21
анализатор встроенный в среду разработки
00:02:24
intel очаге пропускает вот пример более
00:02:27
сложного кода у нас есть класс пресс или
00:02:30
по русский кошелек и в этом классе есть
00:02:32
два статических поля есть одно не
00:02:35
статическое поле и есть два конструктора
00:02:37
и на первый взгляд здесь вроде как все
00:02:40
хорошо он ошибок нет но здесь все-таки
00:02:43
есть одна тонкая
00:02:44
ошибка которую вы можете найти если
00:02:47
поставить это видео на паузу но я запущу
00:02:50
анализ от певец studio и посмотрю на то
00:02:54
какая ошибка будет найдена в результатах
00:02:57
анализов пиле studio мы видим какую-то
00:02:59
ошибку нам говорят о том что есть
00:03:01
какая-то цикличность при инициализации
00:03:03
класса давайте действительно подумаем
00:03:05
что происходит статические поля
00:03:07
инициализируется в порядке объявления у
00:03:10
нас сначала объявляется поле визоров
00:03:13
потом объявляется более скилл давайте
00:03:15
посмотрим на то что происходит при
00:03:17
инициализации поля резонов создается
00:03:20
новый объект пасть и используется
00:03:23
конструктор который принимает на вход
00:03:24
целое число то есть этот и в этом
00:03:27
конструкторе
00:03:28
используются значение поля скейл то есть
00:03:32
в инте лизации поля призеров мы
00:03:37
используем значение поля скейл который
00:03:40
еще не лицензирована то есть в этом поле
00:03:43
скилл по умолчанию будет лежать 0 потому
00:03:45
что еще до него не дошла очередь
00:03:48
инициализация
00:03:49
соответственно этот ноль будет
00:03:50
использован но это наверняка не то
00:03:52
поведения которое мы предполагали вы
00:03:55
предполагали что в поле скейл будет
00:03:57
лежать значение вот это соответственно
00:04:00
это очень тонкой ошибка которую не сразу
00:04:03
можно заметить эту ошибку не замечает
00:04:06
анализатор intel hd
00:04:08
но прогнав наш код через анализатор
00:04:11
певец studio мы видим что певец studio
00:04:14
заметил эту ошибку и теперь мы можем
00:04:15
очень легко исправить эту ошибку просто
00:04:17
поменяв порядок наших статических полей
00:04:20
если мы запустим анализ
00:04:22
от певец studio еще раз
00:04:24
мы видим то что ошибки больше нет
00:04:27
анализатор певец studio это
00:04:29
действительно полезный инструмент
00:04:30
который ищет ошибки вашем коде его можно
00:04:33
использовать как в учебных проектах так
00:04:35
и уже в существующих больших проектах
00:04:37
так как певец studio может гибко
00:04:39
настраиваться под нужды каждого проекта
00:04:41
в описании к видео вы найдёте промо код
00:04:44
который дает возможность скачать пробную
00:04:45
версию период studio на месяц переходите
00:04:48
по ссылке и скачивайте певец studio на
00:04:51
прошлом уроке мы разобрались с
00:04:52
из степи мы разобрались с get запросами
00:04:55
из-под запросами на этом уроке мы будем
00:04:57
разбираться с get запросами а конкретно
00:05:00
мы будем разбираться с тем как с помощью
00:05:03
get запросов можно передавать параметры
00:05:05
на сервер и как на сервере с помощью
00:05:08
spring framework можно эти параметры
00:05:09
обрабатывать давайте еще раз повторим то
00:05:12
что было на прошлом уроке у нас есть get
00:05:14
запросы к серверу это переходы по адресу
00:05:17
посылки и так далее и в get запросах
00:05:20
параметры запроса они передаются в you
00:05:23
real запроса у нас есть под запрос к
00:05:25
серверу
00:05:26
это как правило отправка данных с формы
00:05:28
на сервер загрузка данных и так далее и
00:05:31
параметры и данные у post запросы
00:05:33
передается в теле самого запроса и у нас
00:05:36
есть другие запросы под 5 уделит
00:05:38
с которыми мы разберемся в дальнейшем на
00:05:41
этом уроке мы разберемся с get запросам
00:05:43
и с тем как обрабатывать эти самые
00:05:45
параметры которые передаются в
00:05:47
you real запроса в самом адресе на наш
00:05:51
сервер как обрабатывать с помощью spring
00:05:53
framework их можно обрабатывать двумя
00:05:56
способами первый способ с помощью
00:05:57
объекта и чтб сервера the request
00:06:00
мы этот объект подпишем в параметрах
00:06:03
нашего метода в контроллере вот на этом
00:06:06
на этой картинке изображен метод help
00:06:09
each в контроллере в которой мы
00:06:11
реализовывали на уроке 17-м который
00:06:14
доступен по адресу follow
00:06:15
и если в этом контроллере в в этом
00:06:18
методе мы в параметры напишем еще типе
00:06:20
served request the spring сам внедрит
00:06:23
этот объект в этот метод контроллера то
00:06:26
есть вот этот request будет содержать
00:06:29
себе объект и части be served request и
00:06:31
при каждом запросе на этот метод
00:06:34
контроллера
00:06:35
там в этом параметре квест будет лежать
00:06:38
объект который собой олицетворяет из
00:06:41
степи запрос и
00:06:43
из этого и степи запроса с помощью
00:06:44
вызова метода get параметр и
00:06:47
с аргументами который равен названию
00:06:50
ключа мы в с помощью этого метода get параметр
00:06:53
можем получить значение параметра из get
00:06:56
запроса и когда мы вы получили мы с ним
00:06:59
уже можем делать что хотим мы можем его
00:07:01
как-то анализировать
00:07:02
мы например можем искать какие-то данные
00:07:05
из базы данных если у нас она подключена
00:07:08
к нашему проекту и например выдавать
00:07:10
пользователю какой-то результат поиска
00:07:12
соответственно пользователь в параметрах
00:07:15
запроса передает в гент запросе какие-то
00:07:18
например ключевые слова для поиска
00:07:20
а моему с эти ключевые слова ищем в базе
00:07:22
данных и выдаем ему ответ это
00:07:24
эти примеры мы будем реализовывать в
00:07:26
дальнейшем в этом курсе и второй способ
00:07:28
как можно обработать и получить
00:07:31
параметры из get запроса вас прям
00:07:34
фрайбург это с помощью аннотации request
00:07:36
парам эта нотация используется та же в
00:07:39
параметрах в методе в методах
00:07:41
контроллера мы ее ну применяем к
00:07:45
параметру в методе здесь у нас есть
00:07:47
параметр name и к нему мы применяем
00:07:49
аннотацию request парам и здесь мы
00:07:51
указываем название того ключ от того
00:07:54
параметра которое мы ожидаем в юрий ли
00:07:56
соответственно
00:07:57
spring сам возьмет этот параметр
00:08:01
и сверла из адреса сам положит нужное
00:08:04
значение в параметр name и этот name мы
00:08:08
сможем использовать в этом методе в
00:08:10
дальнейшем и получать значение это найм
00:08:13
и обрабатывать его так же как мы делали
00:08:15
в случае с первым способом эти два
00:08:18
способа практически ковалентные но если
00:08:20
вам нужны только параметры запроса
00:08:22
то я рекомендую вам использовать второй
00:08:23
способ и потому что во первых он короче
00:08:25
он более читаемый и во-вторых в первом
00:08:29
методе мы от спринга просим дать нам
00:08:33
доступ к такому объекту который содержит
00:08:36
себя все данные об экипе запросе и из
00:08:39
этого объекта мы получаем только
00:08:41
параметр запроса хотя этот объект хранит
00:08:43
множество других данных поэтому если вам
00:08:46
нужно работать в целом
00:08:48
ищите pizap
00:08:49
а сам и получать множество сведений об
00:08:51
этом запросе например там какие-то
00:08:54
фейдеры и так далее то вы можете
00:08:56
использовать первый метод потому что в
00:08:58
этом методе вы получаете полный доступ к
00:09:01
ищите запросу если же вам нужны только
00:09:04
параметры запроса
00:09:05
то лучше использовать второй метод где
00:09:07
мы конкретно получаем только параметры и
00:09:09
степи запроса
00:09:11
теперь давайте перейдем к практике я
00:09:14
перешел в среду разработки и открыл в
00:09:16
ней проект из урока 17
00:09:18
где мы разрабатывали два контроллера и в
00:09:21
этом уроке мы будем использовать только
00:09:23
один метод
00:09:24
одного контроллера мы будем все делать в
00:09:26
методе хлопаешь контроллеров раз
00:09:28
контроллер давайте запустим это
00:09:31
приложение вспомню как она работает мы
00:09:33
здесь переходим на адрес слэш просто
00:09:37
школ и получаем доступ к странице
00:09:40
я пришел браузер если мы сделаем запрос
00:09:42
get запрос как мы уже знаем на этот
00:09:45
адрес стоят 4 школ то мы перейдем на
00:09:48
страницу которое выдается нам этим
00:09:51
методом контроллера но давайте теперь в
00:09:54
нашем get запросе в параметрах нашего
00:09:58
юрий la будем в этот метод передавать
00:10:01
какие-то параметры для того чтобы эти
00:10:03
параметры принимать мы здесь должны
00:10:05
внедрить объект еще тебе served request
00:10:10
этот объект будет внедрен с принтом и в
00:10:14
этом объекте содержатся все сведения о
00:10:17
поступающем из степи запросе от
00:10:19
пользователя из этого объекта мы можем
00:10:22
получить как раз таки параметры запроса
00:10:24
давайте скажем что в юре ли пользователь
00:10:27
должен будет передавать два параметра
00:10:29
имя и фамилия и давайте эти два
00:10:31
параметра мы будем получать в методе
00:10:33
контроллера давайте получим первый
00:10:35
параметр
00:10:36
имя request get параметров и давайте
00:10:41
этот параметр будет иметь ключ на им
00:10:45
получим второй параметр он будет иметь
00:10:50
ключ сорные сделаем что-нибудь в нашем
00:10:54
методе контроллера давайте сделаем что
00:10:56
не простое и давайте например вы видим
00:10:58
эти два этих эти две строки на экран в
00:11:02
консоль с помощью метода система принтер
00:11:05
напишем на им плюс сольный
00:11:10
здесь мы видим еще приветствие халлоу
00:11:17
так теперь перезапустим наш сервер и
00:11:20
попробуем опять
00:11:22
отправить get запрос на этот метод
00:11:24
контроллера и уже передать в параметрах
00:11:28
передать твою рейли параметры для этого
00:11:31
запроса я пришел обратно в браузер
00:11:33
теперь давайте
00:11:34
в юрий ли нашего запроса укажем
00:11:36
параметры это мы сделаем после знака вот
00:11:40
это вопросительного знака
00:11:41
укажем параметр name давайте у него
00:11:45
будет значение какой-нибудь там например
00:11:47
и через знак ampersand мы укажем второй
00:11:50
параметр который будет ключ сольным и
00:11:53
давайте здесь будет какая-то фамилия
00:11:55
сделаем этот get запрос в наш контроллер
00:11:58
и перейдем обратно в среду разработки
00:12:01
здесь мы видим сообщение hla у
00:12:04
том джонс в нашей консоли то есть мы в
00:12:07
методе контроллера успешно получили
00:12:09
доступ к параметрам из get запроса и
00:12:11
вывелись с помощью system of print лэн
00:12:13
сообщения в консоль если мы перейдем
00:12:17
обратно в браузер и совершим get запрос
00:12:19
в наш контроллер без параметров то есть
00:12:23
просто на адрес слэш просто школ
00:12:25
давайте это сделаем мы совершили get
00:12:29
запрос и здесь мы видим такое
00:12:32
приветствие hla у null null то есть мы
00:12:35
попробовали получить параметры значения
00:12:38
параметров с этими ключами
00:12:40
но их не было в get запросе их не было в
00:12:43
юра или поэтому здесь в эти переменные
00:12:46
поместилось значение null то есть нечто
00:12:48
и это значение мы увидели в нашей
00:12:50
консоли теперь давайте пойдем дальше и
00:12:53
применим аннотации request парам для
00:12:55
того чтобы сделать то же самое то есть
00:12:57
здесь мы используем большой и большой
00:13:00
объект request который в себе содержит
00:13:02
все сведения об ищите при запросе
00:13:04
поступающим из него мы берем только
00:13:06
параметры давайте используем специальную
00:13:08
нотацию которая предназначена специально
00:13:10
для того чтобы извлекать только
00:13:12
параметры из поступающего get запроса
00:13:14
для этого давайте используем аннотации
00:13:17
request парам ей мы передаем ключ на им
00:13:22
и значение поэтому включенным будет
00:13:25
положено в параметр name
00:13:27
и то же самое мы делаем для фамилия
00:13:30
здесь мы передаем ключ сольные и
00:13:33
значение для этого значение которой
00:13:36
лежит по этому ключу сольные она будет
00:13:39
положено в параметр сольный это нам
00:13:43
теперь больше ненужна мы это убираем
00:13:46
этот сесть и могут print он остается
00:13:48
таким же то есть spring за нас возьмет
00:13:51
значение из юрий ла с этими ключами эти
00:13:54
значения положат в эти параметры и эти
00:13:57
параметры уже будут внутри этого метода
00:13:59
содержать в себе эти значения если мы
00:14:01
перезапустим наш проект наш сервер и
00:14:05
перейдём в браузер и совершим еще один
00:14:08
get запрос
00:14:09
давайте опять положим значение в
00:14:13
параметры совершим наш get запрос
00:14:16
перейдем обратно в среду разработки
00:14:19
увидим в консоли приветствиях лол том
00:14:21
джонс давайте попробуем тоже сделать то
00:14:25
же самое что мы делали с еще теперь
00:14:27
сергей3 квестом давайте не будем
00:14:29
передавать параметры в гент запросе и в
00:14:33
этом случае мы видим ошибку то есть в
00:14:36
отличие от each теперь сервер просто
00:14:38
который в случае если мы не передаем
00:14:41
параметры просто кладет в переменной
00:14:43
null аннотация рекорд парам на так не
00:14:46
поступает она ждет что мы в юрьеве
00:14:49
передадим эти параметры и если этих
00:14:51
параметров юра или нет то это аннотации
00:14:54
вызывает ошибку поэтому здесь
00:14:57
если мы используем эту аннотацию в таком
00:14:59
виде в нам обязательно при каждом get
00:15:01
запросе
00:15:02
в этот метод контроллера необходимо
00:15:04
передавать эти параметры в адресе если
00:15:07
мы не хотим такого поведения мы можем в
00:15:09
эта нотация использовать
00:15:10
вот такой вот конструкцию рик elite
00:15:13
force если мы пишем рекорд фолз то это
00:15:16
означает что если мы передаем fucked
00:15:20
запросе эти параметры то эти параметры
00:15:22
внедряются в эти в эти переменные name
00:15:25
is your name
00:15:26
если же мы в нашем запросе не не пишем
00:15:31
эти параметры в юрий лета в этих двух
00:15:34
переменных будет просто лежать ну
00:15:36
перезапустим наш сервер и теперь мы
00:15:39
опять совершим get запрос на наш метод
00:15:42
контроллера ошибка пропадет и здесь в
00:15:45
консоли мы увидим опять hla у null null
00:15:48
и последнее что я хотел бы показать на
00:15:50
этом уроке это то как параметры в get
00:15:53
запросе передаются при нажатии на ссылку
00:15:55
у нас вот на страницах low есть пару
00:15:58
ссылок
00:15:59
давайте добавим еще одну ссылку для
00:16:01
этого используем вот этот тег эй и в
00:16:04
значении и шрифт давайте укажем
00:16:06
тоже адрес слэш слэш claw
00:16:09
то есть мы будем обращаться к вот этому
00:16:13
месту контроллера к методу хлопаешь но
00:16:17
так как это ссылка в значении через она
00:16:21
содержит url-адрес в этом адресе
00:16:24
мы можем указать параметры нашего get
00:16:27
запрос а то есть при нажатии на ссылку
00:16:28
совершается get запрос по указанному
00:16:31
адресу и в этом get запросе мы тоже
00:16:33
можем в юре ли указать параметры запроса
00:16:35
давайте после вопросительного знака
00:16:38
укажем name какое-нибудь имя и сорные
00:16:44
какой-нибудь фамилию и давайте эту
00:16:47
ссылку назовем например request
00:16:51
будет рандерс
00:16:55
перезапустим опять сервер обновим нашу
00:16:59
страницу слэш слэш халлоу и теперь если
00:17:03
мы нажмём на эту ссылку то будет
00:17:05
совершён get запрос на наш метод
00:17:08
контроллера и ему в параметрах будут
00:17:13
переданы два параметра ним и сырный и мы
00:17:16
видим в нашем контроллере что
00:17:19
отображается
00:17:20
эти параметры были получены от бед
00:17:22
запроса и они отображаются в консоли и
00:17:25
также мы видим что эти два параметры
00:17:27
видны в а строке браузера так как мы
00:17:29
переходим по этому адресу этот адрес
00:17:33
отображается в нашем браузере

Описание:

Промокод #alishev дает возможность скачать пробную версию PVS-Studio на месяц вместо 7 дней. Скачать PVS-Studio: https://pvs-studio.ru/ru/pvs-studio/download/?promo=alishev ПОЛНЫЙ КУРС ПО SPRING (Hibernate, REST, Boot, Security): https://swiftbook.org/courses/438/show_promo/ Продвинутая Java - https://swiftbook.org/courses/415/show_promo/ Мои уроки по Java EE - https://www.youtube.com/playlist?list=PLAma_mKffTOTTFqIkLXgHqVuL6xJhb0mr Репозиторий прошлого урока (Стартовый проект) - https://github.com/NeilAlishev/SpringCourse/tree/master/Lesson19_Starter.SpringRequestParameters Репозиторий урока - https://github.com/NeilAlishev/SpringCourse/tree/master/Lesson19.SpringRequestParameters Реклама и сотрудничество: [email protected]

Готовим варианты загрузки

popular icon
Популярные
hd icon
HD видео
audio icon
Только звук
total icon
Все форматы
* — Если видео проигрывается в новой вкладке, перейдите в неё, а затем кликните по видео правой кнопкой мыши и выберите пункт "Сохранить видео как..."
** — Ссылка предназначенная для онлайн воспроизведения в специализированных плеерах

Вопросы о скачивании видео

mobile menu iconКак можно скачать видео "Spring Framework. Урок 19: Параметры GET запроса. Аннотация @RequestParam."?mobile menu icon

  • Сайт http://unidownloader.com/ — лучший способ скачать видео или отдельно аудиодорожку, если хочется обойтись без установки программ и расширений. Расширение UDL Helper — удобная кнопка, которая органично встраивается на сайты YouTube, Instagram и OK.ru для быстрого скачивания контента.

  • Программа UDL Client (для Windows) — самое мощное решение, поддерживающее более 900 сайтов, социальных сетей и видеохостингов, а также любое качество видео, которое доступно в источнике.

  • UDL Lite — представляет собой удобный доступ к сайту с мобильного устройства. С его помощью вы можете легко скачивать видео прямо на смартфон.

mobile menu iconКакой формат видео "Spring Framework. Урок 19: Параметры GET запроса. Аннотация @RequestParam." выбрать?mobile menu icon

  • Наилучшее качество имеют форматы FullHD (1080p), 2K (1440p), 4K (2160p) и 8K (4320p). Чем больше разрешение вашего экрана, тем выше должно быть качество видео. Однако следует учесть и другие факторы: скорость скачивания, количество свободного места, а также производительность устройства при воспроизведении.

mobile menu iconПочему компьютер зависает при загрузке видео "Spring Framework. Урок 19: Параметры GET запроса. Аннотация @RequestParam."?mobile menu icon

  • Полностью зависать браузер/компьютер не должен! Если это произошло, просьба сообщить об этом, указав ссылку на видео. Иногда видео нельзя скачать напрямую в подходящем формате, поэтому мы добавили возможность конвертации файла в нужный формат. В отдельных случаях этот процесс может активно использовать ресурсы компьютера.

mobile menu iconКак скачать видео "Spring Framework. Урок 19: Параметры GET запроса. Аннотация @RequestParam." на телефон?mobile menu icon

  • Вы можете скачать видео на свой смартфон с помощью сайта или pwa-приложения UDL Lite. Также есть возможность отправить ссылку на скачивание через QR-код с помощью расширения UDL Helper.

mobile menu iconКак скачать аудиодорожку (музыку) в MP3 "Spring Framework. Урок 19: Параметры GET запроса. Аннотация @RequestParam."?mobile menu icon

  • Самый удобный способ — воспользоваться программой UDL Client, которая поддерживает конвертацию видео в формат MP3. В некоторых случаях MP3 можно скачать и через расширение UDL Helper.

mobile menu iconКак сохранить кадр из видео "Spring Framework. Урок 19: Параметры GET запроса. Аннотация @RequestParam."?mobile menu icon

  • Эта функция доступна в расширении UDL Helper. Убедитесь, что в настройках отмечен пункт «Отображать кнопку сохранения скриншота из видео». В правом нижнем углу плеера левее иконки «Настройки» должна появиться иконка камеры, по нажатию на которую текущий кадр из видео будет сохранён на ваш компьютер в формате JPEG.

mobile menu iconСколько это всё стоит?mobile menu icon

  • Нисколько. Наши сервисы абсолютно бесплатны для всех пользователей. Здесь нет PRO подписок, нет ограничений на количество или максимальную длину скачиваемого видео.