Update .forgejo/scripts/radio.py
This commit is contained in:
parent
32104965dd
commit
2cb6190a42
1 changed files with 11 additions and 13 deletions
|
|
@ -122,7 +122,7 @@ def fetch_stations_with_retry(rb, country_code, max_retries=5, initial_backoff=1
|
||||||
def create_multi_country_playlist(country_codes, output_file=None, group_title="Radio Stations",
|
def create_multi_country_playlist(country_codes, output_file=None, group_title="Radio Stations",
|
||||||
default_logo_url="https://amz.odjezdy.online/xbackbone/VUne9/HilOMeka75.png/raw",
|
default_logo_url="https://amz.odjezdy.online/xbackbone/VUne9/HilOMeka75.png/raw",
|
||||||
use_country_as_group=False,
|
use_country_as_group=False,
|
||||||
tvh_compatible=False): # <<< ZMĚNA: Přidán nový argument
|
tvh_compatible=False):
|
||||||
rb = init_radio_browser() # použije autodetekovaný mirror
|
rb = init_radio_browser() # použije autodetekovaný mirror
|
||||||
output_file = generate_safe_output_path(output_file, country_codes)
|
output_file = generate_safe_output_path(output_file, country_codes)
|
||||||
|
|
||||||
|
|
@ -186,23 +186,25 @@ def create_multi_country_playlist(country_codes, output_file=None, group_title="
|
||||||
group = s['country_name'] if use_country_as_group else group_title
|
group = s['country_name'] if use_country_as_group else group_title
|
||||||
stream_url = s['url']
|
stream_url = s['url']
|
||||||
|
|
||||||
# <<< ZMĚNA: Blok pro formátování URL pro Tvheadend
|
# Blok pro formátování URL pro Tvheadend
|
||||||
if tvh_compatible:
|
if tvh_compatible:
|
||||||
# Připravíme metadata - odstraníme mezery a problematické znaky
|
# Připravíme metadata - odstraníme mezery a problematické znaky
|
||||||
service_name = name.replace(" ", "_").replace('"', "'").replace("=", "-").replace(":", "-")
|
service_name = name.replace(" ", "_").replace('"', "'").replace("=", "-").replace(":", "-")
|
||||||
provider_name = stream_url # Poskytovatel je URL, jak je v textu
|
provider_name = "RadioBrowser" # Jednoduchý string místo URL
|
||||||
|
|
||||||
|
# Escapujeme URL pro bezpečné použití v shellu
|
||||||
|
escaped_url = stream_url.replace('"', '\\"').replace("'", "\\'")
|
||||||
|
|
||||||
url_to_write = (
|
url_to_write = (
|
||||||
f"pipe://ffmpeg -loglevel fatal -i {stream_url} -vn -acodec copy -flags +global_header "
|
f'pipe://ffmpeg -loglevel fatal -i "{escaped_url}" -vn -acodec copy -flags +global_header '
|
||||||
f"-strict -2 -metadata service_provider={provider_name} "
|
f'-strict -2 -metadata service_provider="{provider_name}" '
|
||||||
f"-metadata service_name={service_name} -f mpegts -mpegts_service_type digital_radio pipe:1"
|
f'-metadata service_name="{service_name}" -f mpegts -mpegts_service_type digital_radio pipe:1'
|
||||||
)
|
)
|
||||||
else:
|
else:
|
||||||
url_to_write = stream_url
|
url_to_write = stream_url
|
||||||
# <<< KONEC ZMĚNY
|
|
||||||
|
|
||||||
f.write(f'#EXTINF:-1 group-title="{group}" tvg-logo="{logo}",{s["country_code"]} | {name}\n')
|
f.write(f'#EXTINF:-1 group-title="{group}" tvg-logo="{logo}",{s["country_code"]} | {name}\n')
|
||||||
f.write(f"{url_to_write}\n") # Použijeme upravenou nebo původní URL
|
f.write(f"{url_to_write}\n")
|
||||||
|
|
||||||
print(f"🎧 Playlist vytvořen: {output_file} ({len(unique_stations)} stanic)")
|
print(f"🎧 Playlist vytvořen: {output_file} ({len(unique_stations)} stanic)")
|
||||||
return output_file
|
return output_file
|
||||||
|
|
@ -216,15 +218,12 @@ def main():
|
||||||
parser.add_argument("country_codes", nargs="*", help="Two-letter country codes")
|
parser.add_argument("country_codes", nargs="*", help="Two-letter country codes")
|
||||||
parser.add_argument("-o", "--output", help="Output file path")
|
parser.add_argument("-o", "--output", help="Output file path")
|
||||||
parser.add_argument("-g", "--group", default="Radio Stations", help="Group title")
|
parser.add_argument("-g", "--group", default="Radio Stations", help="Group title")
|
||||||
parser.add_argument("--logo", default="https://amz.odjezdy.online/xbackbone/VUne9/HilOMeka75.png/raw",
|
parser.add_argument("--logo", default="https://amz.odjezdy.online/xbackend/VUne9/HilOMeka75.png/raw",
|
||||||
help="Default logo URL")
|
help="Default logo URL")
|
||||||
parser.add_argument("--use-country-as-group", "-ucag", action="store_true",
|
parser.add_argument("--use-country-as-group", "-ucag", action="store_true",
|
||||||
help="Use full country name as group-title")
|
help="Use full country name as group-title")
|
||||||
|
|
||||||
# <<< ZMĚNA: Přidán argument pro TVH kompatibilitu
|
|
||||||
parser.add_argument("--tvh-compatible", "-tvh", action="store_true",
|
parser.add_argument("--tvh-compatible", "-tvh", action="store_true",
|
||||||
help="Generovat M3U kompatibilní s Tvheadend (pipe://ffmpeg)")
|
help="Generovat M3U kompatibilní s Tvheadend (pipe://ffmpeg)")
|
||||||
# <<< KONEC ZMĚNY
|
|
||||||
|
|
||||||
args = parser.parse_args()
|
args = parser.parse_args()
|
||||||
|
|
||||||
|
|
@ -237,7 +236,6 @@ def main():
|
||||||
sys.exit(1)
|
sys.exit(1)
|
||||||
|
|
||||||
try:
|
try:
|
||||||
# <<< ZMĚNA: Předání nového argumentu
|
|
||||||
create_multi_country_playlist(codes, args.output, args.group, args.logo,
|
create_multi_country_playlist(codes, args.output, args.group, args.logo,
|
||||||
args.use_country_as_group, args.tvh_compatible)
|
args.use_country_as_group, args.tvh_compatible)
|
||||||
except KeyboardInterrupt:
|
except KeyboardInterrupt:
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue