Объединяем видео и аудио потоки
Итак, дополнение к предыдущему посту.
Из-за технологии потоковой передачи DASH (Dynamic Adaptive Streaming over HTTP), используемой youtube, мы не можем получить сразу видео в нужном качестве со звуковой дорожкой из-за ее отсутствия в потоке.
В качестве решения мы можем по отдельности забрать аудио и видео и объединить с помощью утилиты ffmpeg. Для этого выбираем нужные потоки
#youtube
Итак, дополнение к предыдущему посту.
Из-за технологии потоковой передачи DASH (Dynamic Adaptive Streaming over HTTP), используемой youtube, мы не можем получить сразу видео в нужном качестве со звуковой дорожкой из-за ее отсутствия в потоке.
В качестве решения мы можем по отдельности забрать аудио и видео и объединить с помощью утилиты ffmpeg. Для этого выбираем нужные потоки
video
и audio
, после чего передаем url
'ы в команду для инициирования создания процесса для скачивания и объединения потоков с помощью ffmpeg
.#youtube
Библиотека Numpy. Манипуляции с формой
Как мы уже говорили у массива можно посмотреть его форму через атрибут shape. Но его можно изменить, вместе с этим изменится и форма массива. Как это работает?
Сначала массив будет приведен к одномерному, а после изменится так, как мы его зададим. Мы можем сделать массив одномерным через метод revel(). Аналогом изменения атрибута служит метод reshape()
Еще один метод для манипуляции с формой - transpose(). Он берет столбы и превращает в строки.
#numpy
Как мы уже говорили у массива можно посмотреть его форму через атрибут shape. Но его можно изменить, вместе с этим изменится и форма массива. Как это работает?
Сначала массив будет приведен к одномерному, а после изменится так, как мы его зададим. Мы можем сделать массив одномерным через метод revel(). Аналогом изменения атрибута служит метод reshape()
Еще один метод для манипуляции с формой - transpose(). Он берет столбы и превращает в строки.
#numpy
Что выведет данный код?
Anonymous Poll
12%
False, False
18%
True, False
15%
False, True
21%
True, True
35%
Узнать ответ
Работаем с буффером обмена
Здесь всё просто: есть пакет
В этом пакете есть две основные функции —
Таким образом, можно прямо через код копировать вывод программы в буфер обмена вместо того, чтобы делать это вручную.
#pyperclip
Здесь всё просто: есть пакет
pyperclip
, который позволяют отправлять текст в буфер обмена вашего компьютера и получать его оттуда.В этом пакете есть две основные функции —
copy()
и paste()
, по названию которых понятно их предназначения.Таким образом, можно прямо через код копировать вывод программы в буфер обмена вместо того, чтобы делать это вручную.
#pyperclip
Что выведет данный код?
Anonymous Poll
18%
69
10%
420
15%
489
33%
True
18%
False
3%
0
5%
Узнать ответ
Как работают статические методы
Статические методы создаются в классе при помощи декоратора
Такой тип методов не может модифицировать ни объект, ни сам класс. То есть передавать объект или класс и прописывать
Обычную функцию стоит вносить в класс в качестве статического метода в том случае, когда эта функция логически относится к классу и имеет смысл там быть.
#ооп
Статические методы создаются в классе при помощи декоратора
@staticmethod
. Такие методы привязаны к классу, а не объекту — в этом и есть основное отличие.Такой тип методов не может модифицировать ни объект, ни сам класс. То есть передавать объект или класс и прописывать
self
или cls
в аргументах не нужно.Обычную функцию стоит вносить в класс в качестве статического метода в том случае, когда эта функция логически относится к классу и имеет смысл там быть.
#ооп
Топ. Как парсить YouTube: скрапинг видео, комментариев и других данных
Ищете подходящий YouTube-скрапер? В этой статье вы найдёте лучшие веб-скраперы, которые можно использовать для извлечения данных из YouTube, а также узнаете об особенностях создания собственного скрапера.
Читать статью
#топ
Ищете подходящий YouTube-скрапер? В этой статье вы найдёте лучшие веб-скраперы, которые можно использовать для извлечения данных из YouTube, а также узнаете об особенностях создания собственного скрапера.
Читать статью
#топ
Оператор неравенства и Дядя Бэрри
Вспомним немного историю: 1 апреля 2009 года выпустили PEP 401, в котором говорилось, что Гвидо ван Россум покидает команду Python.
На его замену должен был прийти Barry Warsaw, который имел официальный статус Friendly Language Uncle For Life (FLUFL) — в переводе, дружелюбный дядя языка на всю жизнь.
И этот Дядя Бэрри предложил заменить "противный" знак неравенства
Для этого можно импортировать
Это всё, конечно же, было первоапрельской шуткой, но оператор
#пасхалка
Вспомним немного историю: 1 апреля 2009 года выпустили PEP 401, в котором говорилось, что Гвидо ван Россум покидает команду Python.
На его замену должен был прийти Barry Warsaw, который имел официальный статус Friendly Language Uncle For Life (FLUFL) — в переводе, дружелюбный дядя языка на всю жизнь.
И этот Дядя Бэрри предложил заменить "противный" знак неравенства
!=
на <>
. Изменения обещали выпустить в последующих версиях, но его можно было протестировать и раньше времени.Для этого можно импортировать
barry_as_FLUFL
из пакета __future__
. Результат можете посмотреть на картинке сверху.Это всё, конечно же, было первоапрельской шуткой, но оператор
<>
всё ещё доступен и является некой пасхалкой.#пасхалка
Хэширование
Хэш — это целое число фиксированного размера, которое идентифицирует определенное значение. Каждое уникальное значение должно иметь свой собственный хэш.
Для хэширования значений есть встроенная функция
Но изменяемые объекты по типу списков и словарей нельзя хэшировать — интерпретатор выбросит соответствующую ошибку.
Здесь, кстати, есть две пасхалки. Хэш бесконечности равен перым цифрам числа Пи, а хэш Not a Number равен нулю.
А еще случаются коллизии: например, хэши чисел -1 и -2 одинаковы.
#hash
Хэш — это целое число фиксированного размера, которое идентифицирует определенное значение. Каждое уникальное значение должно иметь свой собственный хэш.
Для хэширования значений есть встроенная функция
hash()
. Используется она в основном для сравнения значений разных объектов — сравнивать хэши легче и выгоднее.Но изменяемые объекты по типу списков и словарей нельзя хэшировать — интерпретатор выбросит соответствующую ошибку.
Здесь, кстати, есть две пасхалки. Хэш бесконечности равен перым цифрам числа Пи, а хэш Not a Number равен нулю.
А еще случаются коллизии: например, хэши чисел -1 и -2 одинаковы.
#hash
Анонимные функции
Короткая запись простой функции, необходимая для решения одной конкретной задачи удобная вещь. Дабы не нагромождать код кучей функцией, использующихся один раз удобнее использовать анонимные функции.
lambda - ключевое слово для объявления анонимной функции.
На примере
1. Обычная функция сложения
2. Анонимная функция, помещенная в переменную
3. Обособленная анонимная функция в операторе print().
Короткая запись простой функции, необходимая для решения одной конкретной задачи удобная вещь. Дабы не нагромождать код кучей функцией, использующихся один раз удобнее использовать анонимные функции.
lambda - ключевое слово для объявления анонимной функции.
На примере
1. Обычная функция сложения
2. Анонимная функция, помещенная в переменную
3. Обособленная анонимная функция в операторе print().
Каким будет результат выполнения кода?
Anonymous Poll
22%
0
3%
2
14%
7
42%
5
6%
1
6%
Error
8%
Узнать ответ