Category: it

Category was added automatically. Read all entries about "it".

Facebook встраивает скрытый код-трекер в загружаемые фото пользователей

Monitoring of important emais from ak545

Предыстория

Сразу надо сказать, что для связи с общественностью у нашей компании, как и у других, есть публичный почтовый ящик. Разумеется, он почти на 99% заполняется различным мусором и спамом. Но, тем не менее, он нужен.

И вот, как-то раз, пришёл я на работу после отпуска, и первым же делом стал проверять почту. И тогда, после удаления тонны спама, я обнаружил одно важное письмо из Роскомнадзора. Хорошо, что я его не удалил, приняв за спам. В письме говорилось о том, что на одном из наших ресурсов в Сети (ссылку указали), имеется материал, подлежащий удалению. На исполнение требования по устранению нарушения нам дали всего одни сутки с момента отправки данного письма, по истечении которых, в случае невыполнения данного требования, наш сетевой ресурс попал бы в реестр запрещённых в РФ сайтов (не иронизируйте - подобные реестры имеются почти во всех странах, но о попрании свободы слова и свободы мнений принято почему-то говорить только в отношении России).

Письмо пришло в наш публичный почтовый ящик за трое суток до того, как я вернулся из отпуска. Наш сетевой ресурс к тому времени уже был в реестре запрещённых в РФ сайтов.

Проблему мы решили моментально - указанный в письме контент удалили, автора контента заблокировали навсегда, ответ в Роскомнадзор о принятых мерах написали, из реестра запрещённых в РФ сайтов наш сетевой ресурс отозвали.

Но осадочек, как говорится, остался.
Collapse )

Ghost in zshell


Многие любят головоломки.
Редакция N1+ представила на суд вариант, который требует определённых навыков в программировании и системном администрировании.
Это отпугивает значительную часть любителей загадок, поэтому я решил немного помочь с решением, как минимум, чисто технической части.

И так, как решать?

1. Сперва поработаем с консолью.

Попробуем ввести команду Help:

Collapse )

NBG ClØck & CØmbats RadiØ Player [BASS 2.4.14] for Windows x64 (06.07.2019)

Исправил, но не до конца (надо понаблюдать за ситуацией) кнопку «Лайкнуть». Она не была доступной при прослушивании некоторых радиостанций, в частности, «DragRadio» (которая раньше была «Радио Сальвейра»).

NBG ClØck & CØmbats RadiØ Player [BASS 2.4.14] for Windows x64
NBG ClØck & CØmbats RadiØ Player [BASS 2.4.14] for Windows x64

Версия для Microsoft Windows 7/8/10 64-разрядная платформа, x64.
Брать здесь.

get.coursehunters.net.py

Набросал очередной python скрипт для загрузки курсов с сайта https://coursehunters.net/.
Сайт представляет возможность пройти обучение по какой-либо IT-дисциплине путём просмотра тематических видео. К курсам иногда прилагается дополнительный материал (например, исходные коды ПО).

Что делает скрипт?
1. Извлекает название курса (это название служит для имени под-папки, куда потом будет загружаться контент курса;
2. Извлекает описание курса (сохраняет его в файле description.txt);
3. Скачивает все найденные видео курса;
4. Если имеется дополнительный материал, скачивает и его.


Скрипт можно взять здесь

dns-domain-expiration-checker version 0.2.3

Добавил поддержку стоимости продления домена.

Брать тут: https://github.com/ak545/dns-domain-expiration-checker

Вкратце:
Теперь в списке доменных имён можно для каждого домена опционально прописать стоимость его продления.  Стоимость всех доменов, попавших под критерий «пора продлевать» и/или «скоро пора продлевать» суммируется, давая таким образом понять системного администратору, сколько денег необходимо зарезервировать для продления доменов.


Как научиться программировать за час?

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

Collapse )

Теперь, когда вы познакомились с основами программирования, давайте подведём итог.
Как научиться программировать за час?

Collapse )

Python #3.0 yt_dl.py

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



Для чего этот скрипт?
Скрипт предназначен для облегчения загрузки видео с очень большого количества известных сайтов, таких, как youtube, vimeo, vk, facebook.com и т.п.
Загрузка возможна, как отдельных видео файлов, так и видео плейлистов.
В некоторых случаях поддерживается загрузка потоков трансляции (прямых эфиров).
Кроме того, возможна загрузка обложек, описаний, субтитров.
Скрипт так же позволяет извлекать из видео только аудиодорожки и сохранять их в аудиофайлах.

Скрипт, по сути своей, это простая обёртка для youtube-dl и ffmpeg.
Чтобы упростить пользователю работу с этим программным обеспечением, я и создал этот скрипт, сократив набор возможных параметров до минимума. Скрипт объединяет в себе возможности упомянутых ранее программных средств.


Для работы скрипта необходим Python версии 3.6 или выше, ffmpeg и ряд зависимостей.

Python брать здесь: https://www.python.org/downloads/release/python-371/
Для 64-битных Windows: https://www.python.org/ftp/python/3.7.1/python-3.7.1-amd64.exe
Для 32-битных Windows: https://www.python.org/ftp/python/3.7.1/python-3.7.1.exe

Для Linux Python 3 обычно установлен уже по-умолчанию. Если нет, то ставим примерно так (для разных версий Linix существует множество способов установки):
# Ubuntu:
$ sudo apt update
$ sudo apt -y upgrade
$ sudo apt install -y python3.7
$ sudo apt install -y python3-pip

# CentOS 6: https://www.2daygeek.com/3-methods-to-install-latest-python3-package-on-centos-6-system/
$ sudo yum install -y epel-release
$ sudo yum --disablerepo="*" --enablerepo="epel" -y install python37
$ curl -O https://bootstrap.pypa.io/get-pip.py
$ /usr/bin/python3.7 get-pip.py

# CentOS 7
$ sudo yum install -y epel-release
$ sudo yum -y upgrade
$ sudo yum install -y python37
$ sudo yum install -y python37-pip

# Fedora
$ sudo dnf -y upgrade
$ sudo dnf install python37
$ sudo dnf install -y python37-pip

# Manjaro 
$ sudo pacman -S python
# или
$ yaourt -S python

# Установка зависимостей (модулей Python)
$ pip3 -m user install package_name







Для Mac OS X: https://www.python.org/ftp/python/3.7.2/python-3.7.2rc1-macosx10.9.pkg

FFMPEG: https://ffmpeg.zeranoe.com/builds/


Для 64-битных Windows: https://ffmpeg.zeranoe.com/builds/win64/static/ffmpeg-20181215-011c911-win64-static.zip
Для 32-битных Windows: https://ffmpeg.zeranoe.com/builds/win32/static/ffmpeg-20181215-011c911-win32-static.zip

После установки ffmpeg, необходимо добавить путь до ffmpeg.exe в переменную PATH системного окружения.
Как это сделать, смотрим здесь:
https://github.com/adaptlearning/adapt_authoring/wiki/Installing-FFmpeg
Ну или тыканием так:


Mac OS X: https://ffmpeg.zeranoe.com/builds/macos64/static/ffmpeg-20181215-011c911-macos64-static.zip

Для Linux:
# Для Ubuntu:
$ sudo add-apt-repository ppa:mc3man/trusty-media
$ sudo apt update && sudo apt upgrade
$ sudo apt install ffmpeg

# Для RHEL/CentOS/Fedora:
# FFmpeg уже включён в официальные репозитории RPM в таких дистрибутивах, как RHEL, Fedora и CentOS.
# В некоторых случаях, понадобится подключить дополнительный репозиторий или EPEL или RPMFusion.

# Для RHEL 6.x/CentOS 6.x:
$ sudo yum install epel-release
$ sudo yum install ffmpeg ffmpeg-devel

# Для RHEL 7.x/CentOS 7.x/Fedora 22 и новее:
# Прежде добавьте репозиторий EPEL или RPMFusion.
$ sudo dnf install ffmpeg ffmpeg-devel

# Для Arch/Manjaro:
$ sudo pacman -S ffmpeg
# или
$ yaourt -S ffmpeg-full-git







Установка зависимостей (модулей Python):
# Предварительно, возможно понадобится обновить сам pip (установщик модулей Python)
python -m pip install --upgrade pip

# Установка зависимостей
pip install youtube_dl
pip install colorama

# Обновление зависимостей
pip install --upgrade youtube_dl
pip install --upgrade colorama







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

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

Если используется сразу оба способа, то параметры, заданные 1-м способом перекроют (переопределят) те же параметры, заданные в конфигурационном файле.

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

e:\>yt_dl.py
        Python  : 3.7.1 (v3.7.1:260ec2c36a, Oct 20 2018, 14:57:15) [MSC v.1915 64 bit (AMD64)]
        Node    : ak545-work
        Home    : C:\Users\Andre
        OS      : Windows
        Release : 10
        Version : 10.0.17763
        Arch    : AMD64
        CPU     : Intel64 Family 6 Model 60 Stepping 3, GenuineIntel

        The ffmpeg found in: c:\ffmpeg\bin\ffmpeg.exe
        Ошибка: необходимо использовать один из параметров: -l, -i или -c.


        usage:
               yt_dl.py [-h] [-u] [-v] [-c FILE]
               или
               yt_dl.py [-h] [-u] [-v] [-l URL] [-i FILE] [-o DIR] [-x TXT] [-m EXT]
                        [-f EXT] [-e] [-a] [-t] [-s] [-d] [-y URL]
                        [-u LOGIN] [-p PSWD]

        Скрипт для загрузки видео с очень большого количества известных сайтов, таких,
        как youtube, vimeo, vk, facebook.com и т.п.
        Загрузка возможна как отдельных видео файлов, так и видео плейлистов.
        В некоторых случаях поддерживается загрузка потоков трансляции (прямых эфиров).
        Кроме того, возможна загрузка обложек, описаний, субтитров.


        Параметры:
        -h, --help            Справка
        -g, --usage           Показать примеры использования
        -v, --version         Вывести номер версии
        -c FILE, --config-file FILE
                              Ссылка на файл конфигурации, содержащий параметры запуска скрипта.
                              В этом файле могут содержаться все нижеследующие параметры:
        ------------------------------------------------------------------------------------------------
        -l URL, --link URL    Ссылка на http(s) ресурс
        -i FILE, --file FILE  Ссылка на файл, содержащий список http(s) ресурсов
        -l и -i               Взаимно-исключающие параметры

        -o DIR, --out DIR     Корневая папка для сохранения загруженного материала,
                              например: e:\Downloads
        -x TXT, --prefix TXT  Подпапка 1 уровня (имя задаётся значением параметра).
                              Если параметр не задан или пустой, его место занимает
                              подпапка 2-го уровня.
        -m EXT, --merge-output-format EXT
                              Формат выходного файла, например: mp4, mkv, avi.
                              По-умолчанию: mkv
        -f EXT, --format EXT  Формат исходных данных,
                              например: 'bestvideo[ext=mp4]+bestaudio[ext=m4a]/bestvideo+bestaudio'.
                              По-умолчанию: 'bestvideo+bestaudio/best'
        -e, --extractor       Подпапка 2 уровня (имя задаётся по типу сайта
                              источника, например: Youtube)
        -a, --uploader        Подпапка 3 уровня (имя задаётся значением автора
                              загрузки на сайте источнике)
        -t, --thumbnail       Загружать обложки
        -s, --subtitles       Загружать субтитры
        -d, --description     Загружать описание
        -y URL, --proxy URL   Ссылка на прокси, например: socks5://127.0.0.1:9150
        -u LOGIN, --username LOGIN
                             Username for authentication purposes
        -p PSWD, --password PSWD
                             Password for authentication purposes

        (c) AK545 (Andrey Klimov) 2018, e-mail: ak545@mail.ru

e:\_@Python>







e:\_@Python>yt_dl.py -g
        Python  : 3.7.1 (v3.7.1:260ec2c36a, Oct 20 2018, 14:57:15) [MSC v.1915 64 bit (AMD64)]
        Node    : ak545-work
        Home    : C:\Users\Andre
        OS      : Windows
        Release : 10
        Version : 10.0.17763
        Arch    : AMD64
        CPU     : Intel64 Family 6 Model 60 Stepping 3, GenuineIntel

        The ffmpeg found in: c:\ffmpeg\bin\ffmpeg.exe

Примеры использования:
*******************************************************************************
E:\yt_dl.py [Параметры]
или
python{3} E:\yt_dl.py [Параметры]
*******************************************************************************
E:\yt_dl.py -l https://www.youtube.com/watch?v=V_VztHT5BzY -o e:\Downloads
E:\yt_dl.py -l ytuser:user -o e:\Downloads
E:\yt_dl.py -l http://vimeo.com/channels/keypeele/75629013 -o e:\Downloads
E:\yt_dl.py -l https://vk.com/videos-46252034 -o e:\Downloads
E:\yt_dl.py -i e:\src-video.txt -o e:\Downloads
E:\yt_dl.py -i e:\src-audio.txt -o e:\Downloads
E:\yt_dl.py -x '(ru)' -i e:\src-audio.txt -o e:\Downloads
E:\yt_dl.py -e -i e:\src-audio.txt -o e:\Downloads
E:\yt_dl.py -e -a -i e:\src-audio.txt -o e:\Downloads
E:\yt_dl.py -e -a -t -s -d -i e:\src-audio.txt -o e:\Downloads
E:\yt_dl.py -e -a -t -s -d -l https://vk.com/videos-46252034 -u 'login' -p 'password' -o e:\Downloads
E:\yt_dl.py -e -a -t -s -d -l https://www.youtube.com/watch?v=V_VztHT5BzY -y 'socks5://127.0.0.1:9150' -o e:\Downloads
E:\yt_dl.py -e -a -t -s -d -m mkv -i e:\src-audio.txt -o e:\Downloads
E:\yt_dl.py -e -a -t -s -d -f 'bestvideo[ext=mp4]+bestaudio[ext=m4a]/bestvideo+bestaudio' -i e:\src-audio.txt -o e:\Downloads
E:\yt_dl.py -r "[{'key': 'FFmpegExtractAudio','preferredcodec': 'mp3','preferredquality': '192',}]" -i e:\src-audio.txt -o e:\Downloads
E:\yt_dl.py -c e:\video.cfg
E:\yt_dl.py -c e:\audio.cfg
E:\yt_dl.py -c e:\audio.cfg -o e:\Downloads
*******************************************************************************

# Пример конфиг файла

{
#-------------------------------------
# Файл со списком источников
"file": "e:\src-audio.txt",

# Ссылка на источник
#"link": "https://www.youtube.com/watch?v=EVkodhicZps",

# Допускается использовать или только link или только file

#-------------------------------------
# Корневая папка для записи загруженного контента
"out": "e:\audio",
#-------------------------------------
# Далее, от корневой папки, создаются подпапки в следующем порядке:
#-------------------------------------
# Префикс подпапки
"prefix": "( ru ) ",
# Тип источника (если есть)
"extractor": True,
# Автор источника
"uploader": True,
#-------------------------------------
# Предпочитаемый формат исходных данных
"format": "bestaudio/best",

#-------------------------------------
# Пытаться загрузить так же:
# Загружать обложки к видео (если есть)
"thumbnail": True,

# Загружать субтитры к видео (если есть)
#"subtitles": True,

# Загружать описания к видео (если есть)
#"description": True,

#-------------------------------------
# ПОСТОБРАБОТКА
#-------------------------------------
# Формат финального файла
# (если не используется параметр postprocessors)
#"merge-output-format": "mkv",

# Задаёт постпроцессор для извлечения из видео
# аудиодорожки и конвертации её в финальный аудио файл
# параметр merge-output-format при этом игнорируется
"postprocessors": [
        {
                "key": "FFmpegExtractAudio",
                "preferredcodec": "mp3",
                "preferredquality": "192",
        }],

# Загруженные части видео после слияния их в финальное видео
# не будут удаляться
# "keepvideo": True,

# Создаёт в папке загрузки файл истории загруженных видео.
# Видео из этой истории повторно загружаться не будут
# Этот параметр полезно задавать, если вы извлекаете аудио из видео
"download_archive": True,

#-------------------------------------
# ДАННЫЕ ДЛЯ АУТЕНТИФИКАЦИИ
#-------------------------------------
#"username": "login",
#"password": "password",

}

*******************************************************************************
Для корректного завершения скрипта в процессе работы на платформе win32
нажмите: [ CTRL+BREAK ]
*******************************************************************************
e:\>







Формат файла-источника очень простой:
*******************************************************************************
# Яндекс.Музыка - Трек
https://music.yandex.ru/album/11570/track/122698
https://music.yandex.ru/album/11570/track/122697
https://music.yandex.ru/album/11570/track/122699
https://music.yandex.ru/album/11570/track/122703
https://music.yandex.ru/album/11570/track/122695
https://music.yandex.ru/album/11570/track/122700
https://music.yandex.ru/album/11570/track/122702
https://music.yandex.ru/album/11570/track/122701
https://music.yandex.ru/album/11570/track/122696

# Модель для сборки
https://www.youtube.com/channel/UC-TmwyyefjjM9fZdRX7xIWQ/playlists






*******************************************************************************

Для обхода различных блокировок можно использовать браузер Tor.
Запускаем браузер Tor, и не закрывая его добавляем к скрипту опцию:
-y "socks5://127.0.0.1:9150"






Скорость загрузки при этом, надо понимать - будет очень низкой. Но зато таким образом можно очень просто обойти блокировки.

Если для загрузки каких-то видео с сайта источника требуется авторизация, добавляем необходимые опции:
-u "login" -p "password"









Исходники скрипта

Скрипт, разумеется, не идеален. Доработки и развитие в планах. Предложения и замечания принимаются. Никаких гарантий не даю. Использование - свободное.