add media api
This commit is contained in:
parent
53c94bbeff
commit
d2fb6b4fed
2 changed files with 452 additions and 212 deletions
306
posh.txt
306
posh.txt
|
|
@ -7,9 +7,7 @@ GitHub Repo stars: https://img.shields.io/github/stars/Lifailon/PS-Commands
|
|||
|
||||
Большая база заметок PowerShell на русском языке.
|
||||
|
||||
Веб-версия (https://lifailon.github.io/)
|
||||
|
||||
WinForms - тестовый стенд с примерами (https://github.com/Lifailon/PS-Commands/blob/rsa/WinForms/WinForms-Test-Stend.ps1)
|
||||
Веб-версия (https://lifailon.github.io)
|
||||
|
||||
Habr: PowerShell и его возможности (https://habr.com/ru/articles/782592/)
|
||||
|
||||
|
|
@ -18,7 +16,9 @@ Habr: PowerShell и его возможности (https://habr.com/ru/articles/
|
|||
# npp
|
||||
# Regex
|
||||
# DataType
|
||||
# Module
|
||||
# Bit
|
||||
# Cycle
|
||||
# Files
|
||||
# Credential
|
||||
# WinEvent
|
||||
|
|
@ -97,13 +97,16 @@ Habr: PowerShell и его возможности (https://habr.com/ru/articles/
|
|||
# Git
|
||||
# DSC
|
||||
# Ansible
|
||||
# Win_Modules
|
||||
# GigaChat
|
||||
# YandexGPT
|
||||
# SuperAGI
|
||||
# Replicate
|
||||
# Google-Filter
|
||||
# Google-API
|
||||
# RapidAPI
|
||||
# TMDB
|
||||
# OMDb
|
||||
# ivi
|
||||
# Kinopoisk
|
||||
# VideoCDN
|
||||
|
|
@ -111,8 +114,8 @@ Habr: PowerShell и его возможности (https://habr.com/ru/articles/
|
|||
# Discord
|
||||
# oh-my-posh
|
||||
# Pester
|
||||
# FFmpeg
|
||||
# Pandoc
|
||||
# FFmpeg
|
||||
# ImageMagick
|
||||
|
||||
# Help
|
||||
|
|
@ -332,6 +335,65 @@ $(foreach ($Group in $Groups) {
|
|||
$Group.Group[0]
|
||||
}) | Format-Table
|
||||
|
||||
### Error
|
||||
|
||||
$Error # выводит все ошибки текущего сеанса
|
||||
$Error[0].InvocationInfo # развернутый отчет об ошибке
|
||||
$Error.clear()
|
||||
$LASTEXITCODE # результат выполнения последней команды (0 - успех)
|
||||
exit 1 # код завершения, который возвращается $LASTEXITCODE
|
||||
|
||||
### Property
|
||||
|
||||
$srv.Count # кол-во элементов в массиве
|
||||
$srv.Length # содержит количество символом строки переменной [string] или количество значений (строк) объекта
|
||||
$srv.Chars(2) # отобразить 3-й символ в строке
|
||||
$srv[2] # отобразить 3-ю строку в массиве
|
||||
|
||||
### Method
|
||||
|
||||
$srv.Insert(0,"https://") # добавить значение перед первым символом
|
||||
$srv.Substring(4) # удалить (из всего массива) первые 4 символа
|
||||
$srv.Remove(3) # удалить из всего массива все после 3 символа
|
||||
$string = "123" # создать строку
|
||||
$int = [convert]::ToInt32($string) # преобразовать строку в тип данных число
|
||||
[string]::Concat($text,$num) # объеденить переменные в одну строку
|
||||
[string]::Join(":",$text,$num) # объеденить используя разделитель
|
||||
[string]::Compare($text,$num,$true) # выдает 0 при совпадении или 1/-1 при несовпадении, $true (без учета регистра) или $false (с учетом регистра)
|
||||
[string]::Equals($text,$num) # производит сравнение двух строк и выдает $true при их совпадении или $false при несовпадении
|
||||
[string]::IsNullOrEmpty($text) # проверяет наличие строки, если строка пуста $true, если нет $false
|
||||
[string]::IsNullOrWhiteSpace($text2) # проверяет на наличие только символов пробел, табуляция или символ новой строки
|
||||
|
||||
### DateTime
|
||||
|
||||
Get-TimeZone # часовой пояс
|
||||
[DateTime]::UtcNow # время в формате UTC 0
|
||||
(Get-Date).AddHours(-3)
|
||||
$Date = (Get-Date -Format "dd/MM/yyyy hh:mm:ss")
|
||||
$Date = Get-Date -f "dd/MM/yyyy" # получаем тип данных [string]
|
||||
[DateTime]$gDate = Get-Date "$Date" # преобразовать в тип [DateTime]
|
||||
[int32]$days=($fDate-$gDate).Days # получить разницу в днях
|
||||
"5/7/07" -as [DateTime] # преобразовать входные данные в тип данных [DateTime]
|
||||
New-TimeSpan -Start $VBRRP.CreationTimeUTC -End $VBRRP.CompletionTimeUTC # получить разницу во времени
|
||||
|
||||
### Measure-Command
|
||||
|
||||
(Measure-Command {ping ya.ru}).TotalSeconds # узнать только время выполнения
|
||||
(Get-History)[-1] | select @{Name="RunTime"; Expression={$_.EndExecutionTime - $_.StartExecutionTime}},ExecutionStatus,CommandLine # посчитать время работы последней [-1] (select -Last 1) выполненной команды и ее узнать статус
|
||||
|
||||
### Timer
|
||||
|
||||
$start_time = Get-Date # зафиксировать время до выполнения команды
|
||||
$end_time = Get-Date # зафиксировать время по завершению
|
||||
$time = $end_time - $start_time # высчитать время работы скрипта
|
||||
$min = $time.minutes
|
||||
$sec = $time.seconds
|
||||
Write-Host "$min минут $sec секунд"
|
||||
$timer = [System.Diagnostics.Stopwatch]::StartNew() # запустить таймер
|
||||
$timer.IsRunning # статус работы таймера
|
||||
$timer.Elapsed.TotalSeconds # отобразить время с момента запуска (в секундах)
|
||||
$timer.Stop() # остановить таймер
|
||||
|
||||
# npp
|
||||
|
||||
pwsh -NoExit -ExecutionPolicy Unrestricted -WindowStyle Maximized -File "$(FULL_CURRENT_PATH)"
|
||||
|
|
@ -550,31 +612,79 @@ $srv -isnot [System.Object] # проверка на несоответствие
|
|||
[Char] # cимвол Юникода (16-разрядный)
|
||||
$char = $srv.ToCharArray() # разбить строку [string] на массив [System.Array] из букв
|
||||
|
||||
# Module
|
||||
|
||||
### psd1
|
||||
|
||||
@{
|
||||
RootModule = "Get-Function.psm1"
|
||||
ModuleVersion = "0.1"
|
||||
Author = "Lifailon"
|
||||
CompanyName = "Open Source Community"
|
||||
Copyright = "Apache-2.0"
|
||||
Description = "Function example"
|
||||
PowerShellVersion = "7.2"
|
||||
PrivateData = @{
|
||||
PSData = @{
|
||||
Tags = @("Function","Example")
|
||||
ProjectUri = "https://github.com/Lifailon/PS-Commands"
|
||||
LicenseUri = "https://github.com/Lifailon/Console-Translate/blob/rsa/LICENSE"
|
||||
ReleaseNotes = "Second release"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
### psm1
|
||||
|
||||
function Get-Function {
|
||||
<#
|
||||
.SYNOPSIS
|
||||
Описание
|
||||
.DESCRIPTION
|
||||
Описание
|
||||
.LINK
|
||||
https://github.com/Lifailon/PS-Commands
|
||||
#>
|
||||
param (
|
||||
[Parameter(Mandatory,ValueFromPipeline)][string]$Text,
|
||||
[ValidateSet("Test1","Test2")][string]$Provider = "Test1",
|
||||
[ValidateRange(1,3)][int]$Number = 2,
|
||||
[Switch]$Switch
|
||||
)
|
||||
Write-Host Param Text: $Text
|
||||
Write-Host Param Provider: $Provider
|
||||
Write-Host Param Number: $Number
|
||||
Write-Host Param Switch: $Switch
|
||||
}
|
||||
|
||||
Get-Function Test
|
||||
|
||||
### Switch
|
||||
|
||||
$MMM = Get-Date -UFormat "%m"
|
||||
switch($MMM) {
|
||||
"01" {$Month = 'Jan'}
|
||||
"02" {$Month = 'Feb'}
|
||||
"03" {$Month = 'Mar'}
|
||||
"04" {$Month = 'Apr'}
|
||||
"05" {$Month = 'May'}
|
||||
"06" {$Month = 'Jun'}
|
||||
"07" {$Month = 'Jul'}
|
||||
"08" {$Month = 'Aug'}
|
||||
"09" {$Month = 'Sep'}
|
||||
"10" {$Month = 'Oct'}
|
||||
"11" {$Month = 'Nov'}
|
||||
"12" {$Month = 'Dec'}
|
||||
"01" {$Month = 'Jan'}
|
||||
"02" {$Month = 'Feb'}
|
||||
"03" {$Month = 'Mar'}
|
||||
"04" {$Month = 'Apr'}
|
||||
"05" {$Month = 'May'}
|
||||
"06" {$Month = 'Jun'}
|
||||
"07" {$Month = 'Jul'}
|
||||
"08" {$Month = 'Aug'}
|
||||
"09" {$Month = 'Sep'}
|
||||
"10" {$Month = 'Oct'}
|
||||
"11" {$Month = 'Nov'}
|
||||
"12" {$Month = 'Dec'}
|
||||
}
|
||||
|
||||
### function switch
|
||||
|
||||
Function fun-switch (
|
||||
[switch]$param
|
||||
[switch]$param
|
||||
) {
|
||||
If ($param) {"yes"} else {"no"}
|
||||
If ($param) {"yes"} else {"no"}
|
||||
}
|
||||
|
||||
fun-switch -param
|
||||
|
||||
# Bit
|
||||
|
|
@ -687,53 +797,10 @@ Get-Process pwsh | fl ProcessorAffinity # привязка процесса к
|
|||
(Get-Process pwsh).ProcessorAffinity = 61440 # 1111000000000000 присвоить 4 последних ядра
|
||||
(Get-Process pwsh).ProcessorAffinity = (ConvertFrom-Bit 1111000000000000)
|
||||
|
||||
### Property
|
||||
$srv.Count # кол-во элементов в массиве
|
||||
$srv.Length # содержит количество символом строки переменной [string] или количество значений (строк) объекта
|
||||
$srv.Chars(2) # отобразить 3-й символ в строке
|
||||
$srv[2] # отобразить 3-ю строку в массиве
|
||||
|
||||
### Method
|
||||
$srv.Insert(0,"https://") # добавить значение перед первым символом
|
||||
$srv.Substring(4) # удалить (из всего массива) первые 4 символа
|
||||
$srv.Remove(3) # удалить из всего массива все после 3 символа
|
||||
$string = "123" # создать строку
|
||||
$int = [convert]::ToInt32($string) # преобразовать строку в тип данных число
|
||||
[string]::Concat($text,$num) # объеденить переменные в одну строку
|
||||
[string]::Join(":",$text,$num) # объеденить используя разделитель
|
||||
[string]::Compare($text,$num,$true) # выдает 0 при совпадении или 1/-1 при несовпадении, $true (без учета регистра) или $false (с учетом регистра)
|
||||
[string]::Equals($text,$num) # производит сравнение двух строк и выдает $true при их совпадении или $false при несовпадении
|
||||
[string]::IsNullOrEmpty($text) # проверяет наличие строки, если строка пуста $true, если нет $false
|
||||
[string]::IsNullOrWhiteSpace($text2) # проверяет на наличие только символов пробел, табуляция или символ новой строки
|
||||
|
||||
### DateTime
|
||||
Get-TimeZone # часовой пояс
|
||||
[DateTime]::UtcNow # время в формате UTC 0
|
||||
(Get-Date).AddHours(-3)
|
||||
$Date = (Get-Date -Format "dd/MM/yyyy hh:mm:ss")
|
||||
$Date = Get-Date -f "dd/MM/yyyy" # получаем тип данных [string]
|
||||
[DateTime]$gDate = Get-Date "$Date" # преобразовать в тип [DateTime]
|
||||
[int32]$days=($fDate-$gDate).Days # получить разницу в днях
|
||||
"5/7/07" -as [DateTime] # преобразовать входные данные в тип данных [DateTime]
|
||||
New-TimeSpan -Start $VBRRP.CreationTimeUTC -End $VBRRP.CompletionTimeUTC # получить разницу во времени
|
||||
|
||||
### Measure-Command
|
||||
(Measure-Command {ping ya.ru}).TotalSeconds # узнать только время выполнения
|
||||
(Get-History)[-1] | select @{Name="RunTime"; Expression={$_.EndExecutionTime - $_.StartExecutionTime}},ExecutionStatus,CommandLine # посчитать время работы последней [-1] (select -Last 1) выполненной команды и ее узнать статус
|
||||
|
||||
### Timer
|
||||
$start_time = Get-Date # зафиксировать время до выполнения команды
|
||||
$end_time = Get-Date # зафиксировать время по завершению
|
||||
$time = $end_time - $start_time # высчитать время работы скрипта
|
||||
$min = $time.minutes
|
||||
$sec = $time.seconds
|
||||
Write-Host "$min минут $sec секунд"
|
||||
$timer = [System.Diagnostics.Stopwatch]::StartNew() # запустить таймер
|
||||
$timer.IsRunning # статус работы таймера
|
||||
$timer.Elapsed.TotalSeconds # отобразить время с момента запуска (в секундах)
|
||||
$timer.Stop() # остановить таймер
|
||||
# Cycle
|
||||
|
||||
### Foreach
|
||||
|
||||
$list = 100..110 # создать массив из цифр от 100 до 110
|
||||
foreach ($srv in $list) {ping 192.168.3.$srv -n 1 -w 50} # $srv хранит текущий элемент из $list и повторяет команду до последнего элемента в массиве
|
||||
$foreach.Current # текущий элемент в цикле
|
||||
|
|
@ -741,6 +808,7 @@ $foreach.Reset() # обнуляет итерацию, перебор начне
|
|||
$foreach.MoveNext() # переход к следующему элементу в цикле
|
||||
|
||||
### ForEach-Object (%)
|
||||
|
||||
100..110 | %{ping -n 1 -w 50 192.168.3.$_ > $null
|
||||
if ($LastExitCode -eq 0) {Write-Host "192.168.3.$_" -ForegroundColor green
|
||||
} else {
|
||||
|
|
@ -750,6 +818,7 @@ $_ # переменная цикла и конвеера ($PSItem)
|
|||
gwmi Win32_QuickFixEngineering | where {$_.InstalledOn.ToString() -match "2022"} | %{($_.HotFixID.Substring(2))} # gwmi создает массив, вывод команды передается where для поиска подходящих под критерии объектов. По конвееру передается в цикл для удаления первых (2) символов методом Substring из всех объектов HotFixID.
|
||||
|
||||
### While
|
||||
|
||||
$srv = "yandex.ru"
|
||||
$out2 = "Есть пинг"
|
||||
$out3 = "Нет пинга"
|
||||
|
|
@ -773,13 +842,6 @@ Try {$out = pping 192.168.3.1}
|
|||
Catch {Write-Warning "$($error[0])"} # выводит в случае ошибки (вместо ошибки)
|
||||
finally {$out = "End"} # выполняется в конце в любом случае
|
||||
|
||||
### Error
|
||||
$Error # выводит все ошибки текущего сеанса
|
||||
$Error[0].InvocationInfo # развернутый отчет об ошибке
|
||||
$Error.clear()
|
||||
$LASTEXITCODE # результат выполнения последней команды (0 - успех)
|
||||
exit 1 # код завершения, который возвращается $LASTEXITCODE
|
||||
|
||||
# Files
|
||||
|
||||
$file = [System.IO.File]::Create("$home\desktop\test.txt") # создать файл
|
||||
|
|
@ -791,6 +853,7 @@ $file.ReadLine() # построчный вывод
|
|||
$file.ReadToEnd() # прочитать файл целиком
|
||||
|
||||
### Read/Write Bytes
|
||||
|
||||
$file = [io.file]::ReadAllBytes("$home\desktop\powershell.jpg") # метод открывает двоичный файл, считывает его в массив байт и закрывает файл
|
||||
[io.file]::WriteAllBytes("$home\desktop\tloztotk-2.jpg",$file) # сохранить байты в файл (можно использовать для выгрузки двоичных файлов из БД)
|
||||
|
||||
|
|
@ -4975,10 +5038,11 @@ New-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\SNMP\Parameters\
|
|||
Get-Service SNMP | Restart-Service
|
||||
|
||||
### snmpwalk
|
||||
|
||||
snmpwalk -v 2c -c public 192.168.3.100
|
||||
snmpwalk -v 2c -c public -O e 192.168.3.100
|
||||
|
||||
### Modules
|
||||
### SNMP Modules
|
||||
|
||||
Install-Module -Name SNMP
|
||||
Get-SnmpData -IP 192.168.3.100 -OID 1.3.6.1.2.1.1.4.0 -UDPport 161 -Community public
|
||||
|
|
@ -6074,7 +6138,7 @@ ansible_shell_type=powershell
|
|||
|
||||
ansible-inventory --list # проверить конфигурацию (читает в формате JSON) или YAML (-y) с просмотром все применяемых переменных
|
||||
|
||||
# Modules
|
||||
# Win_Modules
|
||||
|
||||
ansible us -m ping
|
||||
ansible win_ssh -m ping
|
||||
|
|
@ -6742,6 +6806,23 @@ while ($response.status -ne "succeeded") {
|
|||
}
|
||||
$response.output
|
||||
|
||||
# Google-Filter
|
||||
|
||||
https://www.google.com/search?q=the+rookie+2018+imdb # формат url-запроса поиска с пробелами
|
||||
https://www.google.com/search?q=the+rookie+2018+site:imdb.com # поиск по сайту
|
||||
https://www.google.com/search?q=the+rookie+intitle:index.of+"last modified"+(mkv|avi) # искать страницы, на которых указано "last modified" (последние изменения), заголовок страницы через расширенный оператор поиска (все перечисленные слова должны встречаться в заголовке) содержит слово "index.of" (указывает на директорию на веб-сервере, которая содержит список файлов) и искать файлы с расширениями .mkv или (|) .avi
|
||||
https://www.google.com/search?q=the+rookie+2018+filetype:torrent
|
||||
инструкция gopro hero 11 filetype:pdf # искать сразу документ (на странице .pdf или загрузка)
|
||||
"действия/глаголы, утвержденные для использования в командлетах" # искать по фразе целиком, без разбиения на отдельные слова
|
||||
"ягуар скорость -животное -xe -xj" # узнаем скорость Ягуара, исключаем животное и модели автомобиля
|
||||
"intitle:лучшие фильмы 2023" # запрос ищет страницы, заголовки (title HTML документа) которых содержат слова "лучшие", "фильмы" и "2023" (все слова должны быть в заголовке)
|
||||
"allintitle:лучшие фильмы 2023" # запрос ищет страницы, заголовки (title HTML документа) которых содержат слова "лучшие", "фильмы" или "2023" (одно из)
|
||||
"intext:telegram бот powershell" # поиск страниц, содержащих указанное ключевое слово в тексте страницы (а не только в заголовке)
|
||||
"inurl:lifailon" # поиск страниц, в URL которых содержится указанное ключевое слово
|
||||
intitle:index.of "game of thrones" mkv daterange:2010..2015 # фильтрация по дате изменения, оператор позволяет задать диапазон дат в формате YYYYMMDD..YYYYMMDD
|
||||
intitle:index.of "game of thrones" mkv after:2015 # ограничить результаты поиска файлов, измененных до (before) или после (after) указанной даты
|
||||
intitle:index.of "game of thrones" mkv from:2010 to:2015 # фильтрация по диапазону дат
|
||||
|
||||
# Google-API
|
||||
|
||||
### Google-Translate
|
||||
|
|
@ -6834,6 +6915,20 @@ $(Invoke-RestMethod -Uri $url -Method Get) # список сезонов (.seaso
|
|||
(Invoke-RestMethod -Uri "https://api.themoviedb.org/3/tv/$id/season/2?api_key=$Token" -Method Get).episodes # вывести 2 сезон
|
||||
Invoke-RestMethod -Uri "https://api.themoviedb.org/3/tv/$id/season/2/episode/8?api_key=$Token" -Method Get # вывести 8 эпизод
|
||||
|
||||
# OMDb
|
||||
|
||||
Получение API ключа по email (https://www.omdbapi.com)
|
||||
|
||||
$API_KEY = "XXXXXXXX"
|
||||
$IMDb_ID = "tt7587890"
|
||||
curl -s "https://omdbapi.com/?apikey=$($API_KEY)&i=$($IMDb_ID)" | jq .
|
||||
curl -s "https://omdbapi.com/?apikey=$($API_KEY)&i=$($IMDb_ID)" | ConvertFrom-Json
|
||||
Invoke-RestMethod "https://omdbapi.com/?apikey=$($API_KEY)&s=The Rookie"
|
||||
Invoke-RestMethod "https://omdbapi.com/?apikey=$($API_KEY)&t=The Rookie" # поиск по Title
|
||||
Invoke-RestMethod "https://omdbapi.com/?apikey=$($API_KEY)&t=The Rookie&y=1990" # поиск по Title и году выхода
|
||||
Invoke-RestMethod "https://omdbapi.com/?apikey=$($API_KEY)&t=The Rookie&type=movie" # поиск только фильма (movie) или сериала (series)
|
||||
$(Invoke-RestMethod "https://omdbapi.com/?apikey=$($API_KEY)&s=The Rookie").Search # поиск всех совпадений (фильмы и сериалы)
|
||||
|
||||
# ivi
|
||||
|
||||
https://ask.ivi.ru/knowledge-bases/10/articles/51697-dokumentatsiya-dlya-api-ivi
|
||||
|
|
@ -6853,7 +6948,7 @@ id=$(curl -s https://api.ivi.ru/mobileapi/search/v7/?query=zimorodok | jq .resul
|
|||
|
||||
id=5106881
|
||||
get=$(curl -s https://www.kinopoisk.ru/film/$id/episodes/)
|
||||
printf "%s\n" "${get[@]}" | grep -A 1 "Сезон 2" | grep "эпизодов" | sed -r "s/^.+\: //" # количество эпиздовод во втором сезоне (8)
|
||||
printf "%s\n" "${get[@]}" | grep -A 1 "Сезон 2" | grep "эпизодов" | sed -r "s/^.+\: //" # количество эпиздовод во втором сезоне
|
||||
|
||||
### kinopoisk.dev
|
||||
|
||||
|
|
@ -6943,6 +7038,31 @@ percent-decode() {
|
|||
}
|
||||
percent-decode "%D0%B7%D0%B8%D0%BC%D0%BE%D1%80%D0%BE%D0%B4%D0%BE%D0%BA"
|
||||
|
||||
### KinopoiskApiUnofficial
|
||||
|
||||
Бесплатно 500 запросов в сутки. Swagger documentation (https://kinopoiskapiunofficial.tech/documentation/api)
|
||||
|
||||
API_KEY="828ec96a-f45d-4e3d-84b1-XXXXXXXXXXXX"
|
||||
$headers = @{
|
||||
"accept" = "application/json"
|
||||
"X-API-KEY" = "$API_KEY"
|
||||
}
|
||||
Invoke-RestMethod -Uri 'https://kinopoiskapiunofficial.tech/api/v2.2/films/1142153' -Headers $headers
|
||||
|
||||
curl -s "https://kinopoiskapiunofficial.tech/api/v2.2/films/1142153" -H "accept: application/json" -H "X-API-KEY: $API_KEY" | jq .
|
||||
|
||||
### Kinobox
|
||||
|
||||
$url = "https://www.kinopoisk.ru/film/694051"
|
||||
$kp_id = $url -replace ".+/"
|
||||
https://kinomix.web.app/#694051
|
||||
curl -s -X GET "https://kinobox.tv/api/players/main?kinopoisk=$kp_id" -H "accept: application/json" # поиск по id Кинопоиск
|
||||
curl -s -X GET "https://kinobox.tv/api/players/main?imdb=tt2293640" -H "accept: application/json" # поиск по id IMDb
|
||||
curl -s -X GET "https://kinobox.tv/api/players/main?title=minions" -H "accept: application/json" # поиск основных плееров по названию
|
||||
curl -s -X GET "https://kinobox.tv/api/players/all?title=minions" -H "accept: application/json" # поиск всех плееров
|
||||
curl -s -X GET "https://kinobox.tv/api/popular/films" -H "accept: application/json" # популярные фильмы
|
||||
curl -s -X GET "https://kinobox.tv/api/popular/series" -H "accept: application/json" # популярные сериалы
|
||||
|
||||
# VideoCDN
|
||||
|
||||
https://github.com/notssh/videocdn-api
|
||||
|
|
@ -7277,26 +7397,6 @@ Describe "Get-RunningProcess" {
|
|||
}
|
||||
}
|
||||
|
||||
# FFmpeg
|
||||
|
||||
$release_latest = Invoke-RestMethod "https://api.github.com/repos/BtbN/FFmpeg-Builds/releases/latest"
|
||||
$url = $($release_latest.assets | Where-Object name -match "ffmpeg-master-latest-win64-gpl.zip").browser_download_url
|
||||
Invoke-RestMethod $url -OutFile $home\Downloads\ffmpeg-master-latest-win64-gpl.zip
|
||||
Expand-Archive -Path "$home\Downloads\ffmpeg-master-latest-win64-gpl.zip" -DestinationPath "$home\Downloads\"
|
||||
Copy-Item -Path "$home\Downloads\ffmpeg-master-latest-win64-gpl\bin\ffmpeg.exe" -Destination "C:\Windows\System32\ffmpeg.exe"
|
||||
Remove-Item "$home\Downloads\ffmpeg-*" -Force -Recurse
|
||||
|
||||
ffmpeg -i input.mp4 output.gif # конвертировать mp4 в gif
|
||||
ffmpeg -i input.mp4 -filter_complex "scale=1440:-1:flags=lanczos" output.gif # изменить разрешение на выходе
|
||||
ffmpeg -i input.mp4 -filter_complex "scale=1440:-1:flags=lanczos" -r 10 output.gif # изменить количество кадров в секунду на выходе
|
||||
ffmpeg -i input.mp4 -filter_complex "fps=5,scale=960:-1:flags=lanczos,split[s0][s1];[s0]palettegen=max_colors=32[p];[s1][p]paletteuse=dither=bayer" output.gif # сжатие за счет цветовой политры
|
||||
ffmpeg -i input.mp4 -ss 00:00:10 -frames:v 1 -q:v 1 output.jpg # вытащить скриншот из видео на 10 секунде
|
||||
ffmpeg -i input.mp4 -ss 00:00:05 -to 00:00:10 -c copy output.mp4 # вытащить кусок видео
|
||||
ffmpeg -i "%d.jpeg" -framerate 2 -c:v libx264 -r 30 -pix_fmt yuv420p output.mp4 # создать видео из фото (1.jpeg, 2.jpeg и т.д.) с framerate (частотой кадров) в создаваемом видео 2 кадра в секунду
|
||||
ffmpeg -i "rtsp://admin:password@192.168.3.201:554" -rtsp_transport tcp -c:v copy -c:a aac -strict experimental output.mp4 # запись без перекодирования (copy) RTSP-потока с камеры видеонаблюдения (+ аудио в кодеке AAC) в файл
|
||||
ffmpeg -i "rtsp://admin:password@192.168.3.201:554" -rtsp_transport tcp -c:v copy -c:a aac -strict experimental -movflags +faststart+frag_keyframe+empty_moov output.mp4 # переместить метаданные в начало файла, что позволяет начать воспроизведение файла в видеоплеере до его полной загрузки
|
||||
ffmpeg -i "rtsp://admin:password@192.168.3.201:554" -rtsp_transport tcp -frames:v 1 -c:v mjpeg output.jpg # сделать скриншот
|
||||
|
||||
# Pandoc
|
||||
|
||||
$release_latest = Invoke-RestMethod "https://api.github.com/repos/jgm/pandoc/releases/latest"
|
||||
|
|
@ -7318,6 +7418,26 @@ Import-Module ImportExcel
|
|||
Import-Excel -Path srv.xlsx | Export-Csv -Path $csvFilePath -NoTypeInformation -Encoding UTF8 # конвертация Excel в csv
|
||||
pandoc -s -f csv -t markdown input.csv -o output.md # конвертация таблицу csv в markdown
|
||||
|
||||
# FFmpeg
|
||||
|
||||
$release_latest = Invoke-RestMethod "https://api.github.com/repos/BtbN/FFmpeg-Builds/releases/latest"
|
||||
$url = $($release_latest.assets | Where-Object name -match "ffmpeg-master-latest-win64-gpl.zip").browser_download_url
|
||||
Invoke-RestMethod $url -OutFile $home\Downloads\ffmpeg-master-latest-win64-gpl.zip
|
||||
Expand-Archive -Path "$home\Downloads\ffmpeg-master-latest-win64-gpl.zip" -DestinationPath "$home\Downloads\"
|
||||
Copy-Item -Path "$home\Downloads\ffmpeg-master-latest-win64-gpl\bin\ffmpeg.exe" -Destination "C:\Windows\System32\ffmpeg.exe"
|
||||
Remove-Item "$home\Downloads\ffmpeg-*" -Force -Recurse
|
||||
|
||||
ffmpeg -i input.mp4 output.gif # конвертировать mp4 в gif
|
||||
ffmpeg -i input.mp4 -filter_complex "scale=1440:-1:flags=lanczos" output.gif # изменить разрешение на выходе
|
||||
ffmpeg -i input.mp4 -filter_complex "scale=1440:-1:flags=lanczos" -r 10 output.gif # изменить количество кадров в секунду на выходе
|
||||
ffmpeg -i input.mp4 -filter_complex "fps=5,scale=960:-1:flags=lanczos,split[s0][s1];[s0]palettegen=max_colors=32[p];[s1][p]paletteuse=dither=bayer" output.gif # сжатие за счет цветовой политры
|
||||
ffmpeg -i input.mp4 -ss 00:00:10 -frames:v 1 -q:v 1 output.jpg # вытащить скриншот из видео на 10 секунде
|
||||
ffmpeg -i input.mp4 -ss 00:00:05 -to 00:00:10 -c copy output.mp4 # вытащить кусок видео
|
||||
ffmpeg -i "%d.jpeg" -framerate 2 -c:v libx264 -r 30 -pix_fmt yuv420p output.mp4 # создать видео из фото (1.jpeg, 2.jpeg и т.д.) с framerate (частотой кадров) в создаваемом видео 2 кадра в секунду
|
||||
ffmpeg -i "rtsp://admin:password@192.168.3.201:554" -rtsp_transport tcp -c:v copy -c:a aac -strict experimental output.mp4 # запись без перекодирования (copy) RTSP-потока с камеры видеонаблюдения (+ аудио в кодеке AAC) в файл
|
||||
ffmpeg -i "rtsp://admin:password@192.168.3.201:554" -rtsp_transport tcp -c:v copy -c:a aac -strict experimental -movflags +faststart+frag_keyframe+empty_moov output.mp4 # переместить метаданные в начало файла, что позволяет начать воспроизведение файла в видеоплеере до его полной загрузки
|
||||
ffmpeg -i "rtsp://admin:password@192.168.3.201:554" -rtsp_transport tcp -frames:v 1 -c:v mjpeg output.jpg # сделать скриншот
|
||||
|
||||
# ImageMagick
|
||||
|
||||
Source (https://sourceforge.net/projects/imagemagick)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue