Programovací jazyk Python byl vydán v nové major verzi 3.15.0. Podrobný přehled novinek v aktualizované dokumentaci.
BIGWORDS.PAGE je open-source webová aplikace, která po otevření odkazu v prohlížeči vykreslí přes celou obrazovku jednoduché informační sdělení. Zpráva i její nastavení jsou uložené v části URL za znakem #, například odkaz https://bigwords.page/#abclinuxu zobrazí jako velký bílý nápis 'abclinuxu' na černém pozadí. Obsah odkazu lze upravovat i vestavěným editorem, ten umožňuje nastavovat formátování a vizuální efekty textu, časovače, QR kódy a obrázky. Zdrojový kód je dostupný pod licencí MIT na GitHubu.
V neděli 11. října proběhne rotace klíče kořenové zóny. Podruhé v historii. Ondřej Filip na blogu CZ.NIC: "Pokud je pro Vás DNS protokol spíše výzva, ale přesto spravujete nějakou síť či DNS resolver, zkuste si jednoduchý test, který připravila firma Cloudflare na této adrese. Obzvláště zbystřit byste měli, pokud uvidíte nějaká červená políčka."
Vláda Spojených států se rozhodla vyřadit americkou softwarovou společnost Microsoft a několik dalších velkých technologických podniků z programu, který umožňuje kvalifikovaným zahraničním pracovníkům získat povolení k trvalému pobytu. Oznámila to včera administrativa amerického prezidenta Donalda Trumpa. Opatření zdůvodnila rozsáhlým zneužíváním programu, který je dlouhodobě terčem kritiky ze strany Trumpových příznivců, neboť prý znevýhodňuje americké pracovníky.
Datové centrum největší ruské technologické společnosti Jandex v Rjazaňské oblasti se stalo cílem dronového útoku a zastavilo provoz. Jandexu se někdy přezdívá „ruský Google“. Provozuje nejoblíbenější internetový vyhledávač v Rusku nebo aplikace pro objednávky jídla a taxi. Využívají jej desítky milionů lidí v rusky mluvících zemích.
Francouzská společnost Mistral AI představila Mistral Large 4 (interně přezdívaný 'le Chonk', volně přeloženo 'pořádný macek'), 'open-weight multimodální hybridní instruct-and-reasoning model s architekturou granulárního MoE, nativně podporující více jak 160 jazyků'. Model má přes jeden bilión parametrů, z nichž při práci využívá 49 miliard, kontextové okno o délce milion tokenů a obrazový enkodér o 1,6 miliardách parametrů.
… více »Svobodný multiplatformní herní engine Bevy napsaný v Rustu byl vydán ve verzi 0.20. Díky 227 přispěvatelům.
Simon Long oznámil Raspberry Pi Desktop pro PC a Mac s Intelem postavený na aktualizovaném Debianu 13 Trixie. S klientem Raspberry Pi Connect pro vzdálenou správu. Ke stažení je vedle Raspberry Pi OS pro Raspberry Pi.
ESP32-C3 adblock přemění lacinou vývojovou desku ESP32‑C3 na samostatný DNS blokovač nejenom reklamních domén, minimalistickou alternativu k populárnímu Pi-hole. ESP32-C3 adblock místo objemných názvů domén ukládá jejich 40-bitové FNV-1a hashe do flash paměti, které pak binárně prohledává, kontrola jedné domény trvá přibližně 10 milisekund. Blocklist pojme až 537 tisíc domén a lze jej spravovat přes webové rozhraní. Projekt zatím
… více »ArtCraft je sada open source aplikací pro práci s obrázky a videi "inspirovaných" aplikacemi od Adobe. Napsaných v Rustu. Pro MacOS, Windows i Linux. Běží také ve webovém prohlížeči. Aktuálně se jedná o 7 aplikací: PhotoCraft (Photoshop), VectorCraft (Illustrator), FilmCraft (Premiere Pro), LightCraft (Lightroom), PdfCraft (Acrobat), EffectCraft (After Effects) a DesignCraft (InDesign). Zdrojové kódy jsou k dispozici na GitHubu.
UPDATE: nyní to funguje jednoduše pomocí yt-dlp, viz tento issue, takže stačí v řádku zadat yt-dlp URL_PORADU_NA_rozhlas.cz (poradí si i s vícedílnými pořady, viz komentáře).
Z webu českého rozhlasu si již nějakou dobou stahuji obsah pomocí rozšíření do prohlížeče VideoDownloadHelper. Bohužel se obsah stále častěji streamuje pomocí protokolu DASH v XML verzi, který není tímto rozšířením zatím podporován. Stále ale funguje stahování ručně, k čemuž jsem si napsal malý skript.
Nejprve je pomocí vývojářských nástrojů potřeba zjistit adresu manifestu, což je popsáno zde.
V případě, že je souborů na stránce více je lze všecchny zkopírovat postupem zde, což spočívá v zásadě na tom, že vývojářské nástroje běží v okně, pak se spustí vývojářské okno (CTRL+SHIFT+I) na toto okno a do konzole se napíše:
copy(UI.panels.network.networkLogView.dataGrid.rootNode().flatNodes.map(n => n.request().url()).join('\n'))
Samotný skript (uložil jsem si ho jako stahni_rozhlas.sh) je pak takovýto:
#!/bin/bash
for i in ./*
do COUNTER=0
sed -i '/^$/d' "$i" # odstraní případné prázné řádky na konci souboru
name=$( tail -n 1 "$i" ) # Jméno adresáře a souborů z posledního řádku souboru
mkdir "$name"
while IFS= read -r line || [ -n "$line" ] # přečte soubor řádku po řádce
do
if [[ $line == *.mpd ]] # stahujeme jen manifesty
then let COUNTER=COUNTER+1
echo "$line"
printf -v COUNTER_dec '%02d' $COUNTER # soubory číslujeme vždy dvěma číslicemi
yt-dlp $line -o "$name"/"$COUNTER_dec"_"$name".m4a
fi
done < "$i"
done
Předpokládá, že bude spuštěn v adresáři, kde jsou pouze soubory následující struktury:
https://croaod.cz/stream/b00ffa1f-90c1-4f56-8a31-f185325f606e.m4a/manifest.mpd https://croaod.cz/stream/ac2e5f60-295f-4d24-8641-0f52f623b4cb.m4a/manifest.mpd https://croaod.cz/stream/87d6504d-e8e6-4cd2-bdf5-d29b8b06fcde.m4a/manifest.mpd https://croaod.cz/stream/f7a34e65-680d-49c8-bd1c-474450546284.m4a/manifest.mpd https://croaod.cz/stream/ed0f47af-a475-4b9a-a2a2-cb259aee7496.m4a/manifest.mpd Osudy Jana Vlasáka
Poslední řádek je název adresáře, kam budou jednotlivé díly staženy do stejnojmených souborů očíslovaných vepředu dvěma číslicemi od 01. Všechny ostatní řádky jsou pak odkazy na manifesty jednotlivých dílů. Očekává se, že jsou popořadě.
Doufám, že VDH se tento typ stahování brzo naučí, otázal jsem se na to.
Tiskni
Sdílej:
něco podobnýho se tady už jednou řešilo hele :O ;D
ffmpeg -i "https://croaod.cz/stream/83478896-a9a9-4bf3-9b53-261cdff893ef.m4a/playlist.m3u8" cro_track.mp3
#!/bin/bash
echo
# Funkce pro získání řetězce mezi dvěma řetězci
get_string_between() {
start_str=$1
end_str=$2
input_str=$3
result=$(echo "$input_str" | awk -v a="$start_str" -v b="$end_str" 'BEGIN{FS=a} {split($2, parts, b); print parts[1]}')
echo "$result"
}
# Získání URL seriálu a názvu
read -p "Zadejte URL seriálu: " url
read -p "Zadejte název seriálu: " series_name
# Stažení obsahu URL adresy
echo
echo
echo
echo "Stahování obsahu URL adresy: $url ..."
echo
echo
echo
# Načtení stránky
page_content=$(curl -s "$url")
# Získání odkazů na audio soubory
audio_link=$(echo "$page_content" | grep -oE '"part"[^ ]*mpd')
#echo "RAW odkaz na audio soubor:"
#echo "$audio_link"
# Úprava odkazů pro stažení - odstranění zpětných lomítek a výměna "stream" za "download"
audio_link=$(echo "$audio_link" | sed -e 's/\\//g' -e 's/stream/download/g')
#echo "Upravený odkaz pro stažení:"
#echo "$audio_link"
readarray -t links_array <<< "$audio_link"
echo "----------------------------------------------------------"
# Procházení řádků s odkazy
for ((i=0; i<${#links_array[@]}; i++)); do
#echo ${links_array[$i]}
# Vyseparování čísla dílu
part_str='"part":"'
part=$(get_string_between "$part_str" '"' "${links_array[$i]}")
#echo "Číslo dílu: $part"
# Vyseparování odkazu na soubor
link=$(get_string_between "https" "m4a" "${links_array[$i]}")
odkaz="https"$link"m4a"
echo "$odkaz"
# vytvoření názvu ukládaného souboru s číslem dílu
# Pokud je číslo dílu menší než 10, vlož na začátek nulu kvůli řazení při přehrávání. Taky přidáme příponu
if [ $(( $part )) -lt 10 ]; then
new_filename="${series_name} 0$part.m4a"
else
new_filename="${series_name} $part.m4a"
fi
echo "$new_filename"
# Kontrola jestli již soubor existuje a pokud ne, tak jeho stažení
if [ -e "$new_filename" ]; then
echo "Soubor již existuje"
else
echo "Stahuji"
curl ${odkaz} -o "$new_filename"
#curl ${links_array[$i]} -o "$new_filename"
fi
echo "----------------------------------------------------------"
done
echo
echo
echo
echo "Stahování dokončeno."
echo
echo
echo
if [ $(( $part )) -lt 10 ]; then
new_filename="${series_name} 0$part.mp3"
else
new_filename="${series_name} $part.mp3"
fi
echo "$new_filename"
# Kontrola jestli již soubor existuje a pokud ne, tak jeho stažení
if [ -e "$new_filename" ]; then
echo "Soubor již existuje"
else
echo "Stahuji"
ffmpeg -v quiet -stats -i "${odkaz}" "$new_filename"
#!/bin/sh
IFS=$'
'
list=`cat $1`
#echo "$list"
for item in $list
do
yt-dlp -c --replace-in-metadata 'title,uploader,playlist' ':' ' -' "$item"
done
Když je více dílů (uloží se do společného adresáře)
#!/bin/sh
IFS=$'
'
list=`cat $1`
#echo "$list"
for item in $list
do
yt-dlp -c --replace-in-metadata 'title,uploader,playlist' ':' ' -' -o '%(playlist)s/%(playlist_index)s - %(title)s.%(ext)s' "$item"
done
Skripty říkají yt-dlp, aby přemazala metadata, pak používám easytag, který umí velmi jednodue hromadně vyplnit metadata tak, aby tag name odpovídal názvu souboru (včetně očíslování) - to se pak hodí pro přehrávání v přehrávači antennapod na Androidu.