TV MEDIA

Veröffentliche deine funktionierenden Skripte und Funktionen

Moderator: jNizM

garry
Posts: 3770
Joined: 22 Dec 2013, 12:50

TV MEDIA

10 Jun 2022, 15:20

Idea / Skript = @effel
PLAY mit VLC in GUI / wähle Zeit mit links/rechts oder mit Maus im Balken
record und recordselected : für m3u8 (SRF / ORF ) braucht's youtube-dl und ffmpeg , definiere downloadordner
Listbox : select genre , oder unten links : Stichwort
Image

Code: Select all

;- MODIFIED= 20220328
;- CREATED = 20210205
;-
;- search in mediathek , PLAY  with vlc / RECORD as MP4
;- 
;- Needed : to PLAY                           =  vlc.exe 
;-          to convert m3u8 to MP4 SRF & ORF  =  youtube-dl.exe /  ffmpeg.exe  
;-
;- https://github.com/yt-dlp/yt-dlp#update
;- https://github.com/yt-dlp/yt-dlp
;- https://write.corbpie.com/downloading-youtube-videos-and-playlists-with-yt-dlp/
;- https://youtube-dl.org/latest/youtube-dl.exe      ( here faster as yt-dlp )
;- https://ffmpeg.org/download.html#build-windows    ( needed for MP3 or M3u8  / 7zip-file)
;-
;==============================================
;-
;------ needed  VARIABLES --------------
Name1  :="LB_LV_PLAY_MEDIATHEK_F04"
FOLDER1:="D:\M_MEDIA\M_FILME\"                                  ;- save here MP4
PR1    := a_scriptdir . "\YT-DLP_FFMPEG_FOLDER\yt-dlp.exe"      ;- yt-dlp     + ffmpeg + ffprobe for m3u8 SRF ORF
PR2    := a_scriptdir . "\YT-DLP_FFMPEG_FOLDER\youtube-dl.exe"  ;- youtube-dl + ffmpeg + ffprobe for m3u8 SRF ORF
;--------------------------------------- 
ifexist,%pr1%
 {
 loop,%pr1%        
   SP1:=A_loopFileShortPath    ;- yt-dlp.exe
 }
ifexist,%pr2%
 {
 loop,%pr2%        
   SP2:=A_loopFileShortPath    ;- youtube-dl.exe
 }
SPX:=SP2
;---------------------------------------
;---------------------------------------
;----
#Noenv
Setworkingdir,%a_scriptdir%
;-
Menu,S1a,add,EDIT_ThisScript         ,MH1a
Menu,S1b,add,OPEN_ThisFolder         ,MH1b
Menu,S3a,add,RELOAD                  ,MH3a
Menu,S4 ,add,UPDATE                  ,MH4
Menu,S4a,add,UPDATE_youtube-dl       ,MH4a
Menu,S5 ,add,HELP                    ,MH5
Menu,S9 ,add,Folder                  ,MH9
;---
menu,myMenuBar,Add,Edit_ThisScript  ,:S1a
menu,myMenuBar,Add,Edit_ThisFolder  ,:S1b
menu,myMenuBar,Add,Reload           ,:S3a
menu,myMenuBar,Add,YT-dlp_UPDATE    ,:S4
menu,myMenuBar,Add,Youtube-dl_UPDATE,:S4a
menu,myMenuBar,Add,YT-dlp_HELP      ,:S5
menu,myMenuBar,Add,FOLDER           ,:S9
;--
Menu, dddd, Add, SRF_Archive        ,SRF_Archive
Menu, dddd, Add, SRF_Audio          ,SRF_Audio
Menu, dddd, Add, ARD_Retro          ,ARD_Retro
Menu, dddd, Add, ARD_Retro_SR       ,ARD_Retro_SR
Menu, dddd, Add, DLF_Info           ,DLF_INFO
Menu, dddd, Add, Dailymotion        ,Dailymotion    
Menu, dddd, Add, Vimeo              ,Vimeo
Menu, dddd, Add, VaVideo            ,VaVideo
Menu, dddd, Add, Mediathekviewweb   ,Mediathekviewweb
Menu, dddd, Add, Mediathekview      ,Mediathekview
Menu, dddd, Add, Youtube            ,Youtube
Menu, MyMenuBar, Add,LINKS1,         :dddd
;---
Menu, eeee, Add, VoxNews            ,VoxNews
Menu, eeee, Add, PT_Miguel          ,PT_MIGUEL
Menu, MyMenuBar, Add,YT_LINKS,       :eeee
;---
gui,1:menu,MyMenuBar
;-------------------------------------------------


SetBatchLines, -1
Settitlematchmode,2
SetFormat, float, 02
transform, ux,chr,34
transform,s,chr,32
transform,b,chr,08
transform,dlm,chr,127     ;- delimiter
global localpath,recx
;--------------------------------------
Gui,1:default
Gui,1: -DPIScale
Gui,1:Color,Black,Black
Gui,1:Font,S13 CYellow,Lucida Console
Gui,1: +HwndAId  +0x2000000
;Gui,1: +HwndAId  +0x16000000
;-------------------------------------------
vlc1=%A_programfiles%\VideoLAN\VLC\vlc.exe
xxe =VideoLAN.VLCPlugin.2
ifexist,%vlc1%
  {
  settimer,aas1,1000
  settimer,aas1,off
  }
else
  {
  msgbox, 262208, ,VLC needed`nCheck path from VLC=`n%vlc1%
  exitapp
  }
;---------------------------------------------------  
Hotkey,ESC,PAUSE1,ON
;Hotkey,SPACE,pause1,ON
;-----------------------------------------------------  
wa:=A_screenwidth,ha:=A_screenHeight,xx:=100
;-----------------------------------------------------
whr:= ComObjCreate("WinHttp.WinHttpRequest.5.1")
ComObjError(false)
whr.Silent := True    ;- script failure = off
whr.SetTimeouts(500,500,500,500)
;-----------------------------------------------------


gosub,Filee5
;-----------
x:=(wa*1)/xx,y:=(ha*.5)/xx,W :=(wa*12)/xx,H :=(ha*10)/xx
Gui,1:add,dropdownlist, x%x% y%y% w%w% vDDL1 gDDL2,%e5x%          ;- DropDownList
;-------------------------------------------------------


x:=(wa*1)/xx,y:=(ha*3)/xx,w:=(wa*12)/xx,h:=(ha*78)/xx
Gui,1:add,Listbox,x%x% y%y% w%w% h%h% Sort vLB1 gLB cGray          ;- ListBox
;-----------------------------------------------------
x :=(wa*1)/xx ,y:=(ha*81)/xx,w :=(wa*12)/xx,h :=(ha*2.4)/xx
Gui,1: Add,Edit,cWhite x%x%  y%y%  w%w%  h%h% vED11                ;- search in mediathek
;-----------------------------------------------------


;----------------- CHECKBOX ------------------------------------------
x :=(wa*.7)/xx,y:=(ha*85)/xx
Gui,1: Add, CheckBox,x%x%  y%y%  gLBc vAllSearch  checked , AllSearch   ;- search in all also in description
;-----------------------------------------------------------
x :=(wa*7)/xx,y:=(ha*85)/xx,w :=(wa*12)/xx,h :=(ha*2.4)/xx
Gui,1: Add, CheckBox,x%x%  y%y%  gLBc vFuture  checked    , Future      ;- show future
;-----------------------------------------------------------
;-----------------------------------------------------
color1=D4D0C8          ;- gray normal msgbox
x:=(wa*13.5)/xx,y:=(ha*.3)/xx,w:=(wa*86)/xx,h:=(ha*80)/xx               ;- Listviewx        
Gui,1:Add, ListView,background%color1% cBlack grid x%x% y%y% h%h% w%w% +hscroll altsubmit checked gLW1 +HWNDLV1 vLV1,!SENDER|#THEMA|+TITEL|*BESCHREIBUNG|DATE|DAUER|LENGTH-MB|URL1|URL2|WEB
P1:=(wa*4)/xx,P2:=(wa*5)/xx,P3:=(wa*36)/xx,P4:=(wa*25)/xx,P5:=(wa*7)/xx,P6:=(wa*4.5)/xx,P7:=(wa*0)/xx,P8:=(wa*0)/xx,P9:=(wa*0)/xx,P10:=(wa*3)/xx
LV_ModifyCol(1,P1),LV_ModifyCol(2,P2),LV_ModifyCol(3,P3),LV_ModifyCol(4,P4),LV_ModifyCol(5,P5),LV_ModifyCol(6,P6),LV_ModifyCol(7,P7),LV_ModifyCol(8,P8),LV_ModifyCol(9,P9),LV_ModifyCol(10,P10)
LV_ModifyCol(5,"center"),LV_ModifyCol(6,"center"),LV_ModifyCol(7,"Integer"),LV_ModifyCol(7,"right")
TOTAL:=LV_GetCount("Column")
;---------------------------
x :=(wa*14)/xx,y:=(ha*81)/xx,w :=(wa*10)/xx,h :=(ha*2.4)/xx
Gui,1: Add,Edit,cWhite x%x%  y%y%  w%w%  h%h% hwndHED12 gSearchLV vsearchLV        ;- search in Listview
SetEditCueBanner(HED12, "Search in LV")
;-------------------------------------------------------
;-----------------------------------------------------
x :=(wa*25)/xx ,y:=(ha*81)/xx,w :=(wa*4)/xx,h :=(ha*2.4)/xx
Gui,1: Add,Edit,cWhite x%x%  y%y%  w%w%  h%h% right vCountfile1                     ;- countfile
;-----------------------------------------------------
;-------- SELECT/DESELECT ROWS -------------------------
x :=(wa*30)/xx,y :=(ha*81)/xx,w :=(wa*4.7)/xx,h :=(ha*2.5)/xx
Gui,1:add,button,   x%x%  y%y%  w%w%  h%h% gSelectall   ,RowSELECT                  ;- select all
;-------------------------------------------------------
x :=(wa*35)/xx,y :=(ha*81)/xx,w :=(wa*4.7)/xx,h :=(ha*2.5)/xx
Gui,1:add,button,   x%x%  y%y%  w%w%  h%h% gDESelectall ,DESELECT                   ;- deselect all
;-------------------------------------------------------
;------------ RECORD selected rows -------------------------------------------
x :=(wa*40)/xx,y :=(ha*81)/xx, w :=(wa*10)/xx,h :=(ha*2.5)/xx
Gui,1: add,button,     x%x%  y%y%  w%w%  h%h% gRECselected vBTRECselected ,RECORD_SELECTED  ;- Button RECORD SELECTED
;-------------------------------------------------------
x :=(wa*51)/xx,y :=(ha*81)/xx,w :=(wa*35.5)/xx
Gui,1: Add,Edit, x%x%  y%y%  w%w%  h%h%  readonly cRED vEDRECselected   ,        ;- show what RECORD / PLAY      
;-------------------------------------------------------




x:=(wa*1)/xx,y:=(ha*91)/xx,w:=(wa*7)/xx
Gui,1:add,Text,x%x% y%y% cYellow,[ESC=PAUSE/PLAY] 
;---------------------------
;----------------------------
x:=(wa*9)/xx,y:=(ha*91)/xx,w:=(wa*5)/xx,h:=(ha*2.3)/xx
Gui,1:Add,Button,           x%x%  y%y%    w%w%   h%h%   gSTOP vSTOP ,STOP    ;-STOP
;----------------------------
x:=(wa*15)/xx,y:=(ha*91)/xx,w:=(wa*5)/xx,h:=(ha*2.3)/xx
Gui,1:Add,Button,           x%x%  y%y%    w%w%   h%h%   gPLAY vPLAY ,PLAY    ;-PLAY
;----------------------------

;----------------------------
a5xx=00:00:10   ;- Jump Back
a6xx=00:00:20   ;- Jump Forward
;----------------------------
Gui,1:Font,  S14 cGray ,Lucida Console
x:=(wa*24)/xx,y:=(ha*91)/xx,w:=(wa*5)/xx,h:=(ha*2.3)/xx
Gui,1:Add,Edit,cGray right  x%x%  y%y%    w%w%   h%h%   vJumpB,%a5xx%        ;-- Jump backward
;----------------------------
x:=(wa*30)/xx,y:=(ha*91)/xx
Gui,1:Add,Button,           x%x%  y%y%    w%w%   h%h%   gGoto1B   vGoto1B2   ,<SKIP
;----------------------------
x:=(wa*42)/xx,y:=(ha*91)/xx
Gui,1:Add,Edit,cGray right  x%x%  y%y%    w%w%   h%h%   vJumpF,%a6xx%        ;-- Jump forward
;----------------------------
x:=(wa*36)/xx,y:=(ha*91)/xx
Gui,1:Add,Button,           x%x%  y%y%    w%w%   h%h%   gGoto1F   vGoto1F2   ,SKIP>
;----------------------------
;=========== RECORD -progressbar  ==========================
;--------------------- record-button ----------------------
x:=(wa*49)/xx ,y:=(ha*91)/xx,w:=(wa*6)/xx,h:=(ha*2.5)/xx
Gui,1: Add, Progress, x%x% y%y% w%w% h%h% Disabled BackgroundRed
Gui,1: Add, Text, xp yp wp hp BackgroundTrans 0x200 cYellow center vBTRecord1 gRECORDx,RECORD ;- Record-Button
;------------
;-- progressbar--------------------------------------------
x:=(wa*56)/xx ,y:=(ha*91)/xx,w:=(wa*24)/xx,h:=(ha*2)/xx
Gui,1: Add, TEXT    , x%x%  y%y% w%w% h%h%  vTEXTPR
Gui,1: Add, Progress, x%x%  y%y% w%w% h%h% vRecordbar cFF7200 range0-100 disabled            ;- Record Progressbar
;Gui,1: Add, TEXT, x%x%  y%y% w%w%   vTEXTPR
;--------------
x:=(wa*81)/xx ,y:=(ha*91)/xx,w:=(wa*7)/xx,h:=(ha*2)/xx
Gui,1: Add,Edit, x%x%  y%y% w%w%  h%h% vDownloadedsize readonly right cYellow                 ;-- Downloaded-SIZE
;--------------
x:=(wa*89)/xx ,y:=(ha*91)/xx,w:=(wa*7)/xx,h:=(ha*2)/xx
Gui,1: Add,Edit, x%x%  y%y% w%w%  h%h% vTotalsize readonly right cYellow                      ;-- Total-SIZE
;-----------------------------------------------------------------------
;-
;-------------------------------------------------------------
x:=(wa*15)/xx , y:=(ha*85)/xx,w:=(wa*4.2)/xx,
Gui,1:Add,Text,       x%x%   y%y% w%w%     vT2 cYellow                                        ;- played time actual
;-------------------------------------------------------------
x:=(wa*20)/xx ,  y:=(ha*85)/xx,w:=(wa*73)/xx,h:=(ha*2.5)/xx,
Gui,1:Add,Edit,x%x% y%y% w%w% h%h% center   vED3 cYellow                                      ;- LV_Row_C1-Title
;-------------------------------------------------------------
x:=(wa*94)/xx,y:=(ha*85)/xx,w:=(wa*4.2)/xx,
Gui,1:Add,Text,       x%x% y%y% w%w%       vT3 cYellow                                        ;- total lenght from video
;-------------------------------------------------------------
x:=(wa*0)/xx   ,y:=(ha*88)/xx , w:=(wa*99.8)/xx ,h:=(ha*2)/xx
Gui,1:Add, Progress,  x%x%   y%y% w%w% h%h% vPRBAR backgroundGray range0-100 Disabled         ;- progressbar PLAYED-TIME / for click
Gui,1:Add, Text, x%x% y%y% w%w% h%h% gPrBar1 ,
;-------------------------------------------------------------
;-
;----------------------------------------------------------
x:=(wa*.1)/xx,y:=(ha*.1)/xx,w:=(wa*99.8)/xx,h:=(ha*94.5)/xx
Gui,1:Show,x%x% y%y% w%w% h%h%,%name1%
;---------------------------------------------------------------------------------------------------------------------------------------------
Guicontrol,1:,LB1,%e1%
GuiControl,1: Disable,BTRecord1
;GuiControl,1:Focus,ED11
sleep,100
GuiControl,1:Choose,ddl1,SENDER_1
gosub,ddl2                                            ;--<<<<
GuiControl,1: ChooseString, LB1,!ARTE.de
;GuiControl,1:Choose,LB1,3
GuiControl,1:,ED11,!ARTE.DE
GuiControl,1:Focus,ED11
GuiControl,1:,textpr,TEXT
gosub,lbc  
Return
;==========================================================================
Guiclose:
if (recx=1)
  {
  msgbox, 262208,DOWNLOAD ,RECORD is running
  return
  }
else
 {
 Gui,3:destroy
 sleep,500
 }
Exitapp
;------------------------------------------

ddl2:
Gui,1:submit,nohide
Guicontrol,1:,LB1,|
gosub,%ddl1%
return

;================== SEARCH in Listview ====================
searchLV:
Gui,1:default
Gui,1:submit,nohide
Gui,1:ListView, LV1
SetKeyDelay,20,20
LV_Delete()
I2=0
GuiControl,1: -Redraw,LV1
row := []
for x,y in strsplit(e,"`n","`r")
	{
	if (y="")
	  break
	if instr(y,searchlv)
		{
		loop, parse, y, %dlm%
			row.push(a_loopfield)
        i2++
		LV_add("",row*)	
		row := []
		}
	}
GuiControl,1: +Redraw,LV1
Guicontrol,1:,CountFile1,%I2%
return
;==================================================


;----------------- MENU -------------------------
mh1a:
run, notepad %a_scriptfullpath%
return
mh1b:
run,%a_scriptdir%
return
mh3a:
if (recx=1)
  {
  msgbox, 262208,DOWNLOAD ,RECORD is running
  return
  }
else
 reload
return
mh4:
RunWait, %comspec% /k %sp1% -U      ;- Update yt-dlp
return
mh4a:
RunWait, %comspec% /k %sp2% -U      ;- Update youtube-dl
return
mh5:
RunWait, %comspec% /k %sp1% -h      ;- HELP  yt-dlp
return
mh9:
run,%folder1%
return
ARD_Retro:
run,https://www.ardmediathek.de/retro
return
ARD_Retro_SR:
run,https://www.ardmediathek.de/sr/sr_retro
return
SRF_Archive:
run,https://www.srf.ch/play/tv/sendung/archivperlen?id=eb4f3b13-0362-4ea8-b7b3-325382c86ef2
return
SRF_Audio:
run,https://www.srf.ch/audio?q=Zeitblende&date=all&page=0
return
DLF_Info:
run,https://www.deutschlandfunk.de/informationen-am-morgen-102.xml
return
Dailymotion:
run,https://www.dailymotion.com/search/jim`%20reeves/videos
return
Vimeo:
run,https://vimeo.com/search?q=jim`%20reeves
return
Vavideo:
run,https://www.vavideo.de/suche?q=antwerpen
return
Mediathekviewweb:
run,https://mediathekviewweb.de/#future=false
return
MediathekView:
run,https://mediathekview.de/
return
Youtube:
run,https://www.youtube.com/
return
voxnews:
run,https://www.youtube.com/user/voxdotcom/videos
return
PT_MIGUEL:
run,https://www.youtube.com/channel/UCLcXSPiATFcJU0ddNywFmFw/videos
return
;---------------------------------

;------------------------------------------
#IfWinActive,MEDIATHEK ahk_class AutoHotkeyGUI
*~$enter::
#IfWinActive
;-----------------------
Lbc:
guicontrolget,ed11
guicontrolget,allsearch
guicontrolget,future
lb1=%ED11%
goto,lbb
;-----------------------
LB:
Gui,1:Submit,nohide
Guicontrol,1:,ED11,%LB1%
LBb:
LV_Delete()
sleep,100
gosub,stop
aac:=EncodeDecodeURI(lb1,, false)
stringreplace,aac,aac,#,`%23,all
 stringreplace,aac,aac,!,`%21,all
 stringreplace,aac,aac,#,`%23,all
 stringreplace,aac,aac,+,`%2B,all
 stringreplace,aac,aac,*,`%2A,all
 stringreplace,aac,aac,%a_space%,`%20,all
;--------------------- 
if (future=1)
  futurex:="&future=false"
else
  futurex:=""
if (allsearch=1)
  url:="https://mediathekviewweb.de/feed?query=" . aac . "&everywhere=true" . futurex
else
  url:="https://mediathekviewweb.de/feed?query=" . aac . futurex
;---------------------
whr.Open("GET",URL, true)
whr.Send()
whr.WaitForResponse()
Arr := Whr.responseBody
pData := NumGet(ComObjValue(arr) + 8 + A_PtrSize)
length := arr.MaxIndex() + 1
Haystack := StrGet(pData, length, "UTF-8")
;===============================================================================================
;--------------------------------------------------------------------------------
 A1x :="<title><![CDATA["        , B1x:="]]></title>"
 A2x :="<description><![CDATA["  , B2x:="]]></description>"
 A3x :="<link>"                  , B3x:="</link>"
 A5x :="<category><![CDATA["     , B5x :="]]></category>"
 A6x :="<dc:creator><![CDATA["   , B6x :="]]></dc:creator>"
 A7x :="<pubDate>"               , B7x :="GMT</pubDate>"
 A8x :="<enclosure url=" . ux    , B8x := ux
 A81 :="length=" . ux            , B81 := ux
 A9x :="<duration>"              , B9x :="</duration>"
 A10x:="<websiteUrl>"            , B10x:="</websiteUrl>"
;--------------------------------------------------------------------------------
e:=""
elf:=""
i=0
ix:=0
klm1:=""
;--------------------------------------------------------------------------------
Loop,parse,Haystack,`n,`r
 {
 x:=a_loopfield
 ;------------------- 
 if x contains <item>
   {
   y=1
   i++
   continue
   }
 ;--------------------------------------------------------------------------------
 ;===========================
 if x contains </item>
   {
   i++
   if (i=2)
     titlefirst:=xStr(klm1,,a1x , b1x )
   titel       :=xStr(klm1,,a1x , b1x )
   description :=xStr(klm1,,a2x , b2x )
   url1        :=xStr(klm1,,a3x , b3x )
   THEMA       :=xStr(klm1,,a5x , b5x )
   SENDER      :=xStr(klm1,,a6x , b6x )
   ;---------------------------------------------
   a7          :=xStr(klm1,,a7x , b7x )    ;- date
   date:=""
     if a7<>
       {
       stringreplace,a7,a7,Jan,01,all
       stringreplace,a7,a7,Feb,02,all
       stringreplace,a7,a7,Mar,03,all
       stringreplace,a7,a7,Apr,04,all
       stringreplace,a7,a7,May,05,all
       stringreplace,a7,a7,Jun,06,all
       stringreplace,a7,a7,Jul,07,all
       stringreplace,a7,a7,Aug,08,all
       stringreplace,a7,a7,Sep,09,all
       stringreplace,a7,a7,Oct,10,all
       stringreplace,a7,a7,Nov,11,all
       stringreplace,a7,a7,Dec,12,all
       stringsplit,q,a7,%a_space%
       stringtrimright,q5,q5,3
       datax=%q4%%q3%%q2% %q5%
       date:=datax
       }
    ;--------------------------------  
    ext:=""
    url2:=""
    url2 :=xStr(klm1,,a8x , b8x )        ;- 
    SplitPath,url2, name, dir, ext, name_no_ext, drive
    ;--------------------------------
    size:=""   
    s8 :=xStr(klm1,,a81 , b81 )          ; length= / size
     if s8<>
       {
       s8a:=(s8//1000000) 
       if (ext="m3u8")
         size:="m3u8"
       else
         {
         s8a:=SubStr(000 s8a, -3)
         s8:=Separate(s8)
         size:=s8a . "_   " . s8 
         }
       }
   ;---------------------------------------------
   duration:=""
   a9 :=xStr(klm1,,a9x , b9x )
     if a9<>
       {
       bcx:=a9
       hours   := (bcx//3600)
       minutes := (bcx - hours * 3600)// 60
       seconds := (bcx - hours * 3600 - minutes * 60)
       hours  +=0.00 ,       minutes+=0.00 ,       seconds+=0.00
       bcx=%hours%:%minutes%:%seconds%
       duration:=bcx
       }
   ;---------------------------------------------
   website:=xStr(klm1,,a10x, b10x)
   ;---------------------------------------------
   e .= sender . dlm . thema . dlm . titel . dlm . description . dlm . date . dlm . duration . dlm . size . dlm . url1 . dlm . url2 . dlm . website . "`r`n"
   y=0
   klm1:=""
   continue
   }
 ;===========================
 ;------------------- 
 if (y=1)
  {
  klm1 .= x
  }
 ;-------------------- 
 }
;=======================================
;msgbox,%e%
;return
;=======================================

i=0
GuiControl,1: -Redraw,LV1
for each, Line in StrSplit(e, "`n", "`r")
{
if line=
  continue
i++
i:=SubStr(00 i, -2)
Columns := StrSplit(Line,dlm)              ;- without numbering
;Columns := StrSplit(i . "-" . Line,dlm)
LV_Add("",Columns*)
}
GuiControl,1: +Redraw,LV1
Guicontrol,1:,CountFile1,%I%
return
;------------------------------------------

;============= LISTVIEW =====================================
LW1:
Gui,Submit,nohide
Gui,ListView, LV1
LV_GetText(C1 ,A_EventInfo,1)
LV_GetText(C2 ,A_EventInfo,2)
LV_GetText(C3 ,A_EventInfo,3)
LV_GetText(C4 ,A_EventInfo,4)
LV_GetText(C5 ,A_EventInfo,5)
LV_GetText(C6 ,A_EventInfo,6)
LV_GetText(C7 ,A_EventInfo,7)
LV_GetText(C8 ,A_EventInfo,8)
LV_GetText(C9 ,A_EventInfo,9)
LV_GetText(C10,A_EventInfo,10)
  
  RN:=LV_GetNext("C")
  RF:=LV_GetNext("F")
  GC:=LV_GetCount()


if A_GuiEvent = Normal
 {
 if (rn=0)
    return
 ;msgbox, 262208,,C1=%c1%`nC2=%c2%`nC3=%c3%`n----------------------------`nC4=`n%c4%`n--------------------------------`nC5=%c5%`nC6=%c6%`nC7=%c7%`nC8=%c8%`nC9=%c9%`n----------------------------`nC10=%c10%
 Row := A_EventInfo
 Col := LV_SubitemHitTest(LV1)
 LV_GetText(result, Row, Col)
 stringmid,urlx ,result,1,4
 stringmid,pathx,result,2,2
 if (col=3) 
       {
       SplitPath,C8, name, dir, ext, name_no_ext, drive
       StringSplit,hhz,ext, `?
       ext=%hhz1%
       extensions:="mp4,m3u8,mpg,flv,mkv,mpeg,vob,webm,avi,mov,asf,3gp"
       ;audioxx:="m3u8,m3u,mp3,aac,aiff,m4a,oggra,rm,ram,wav,wma,flac,3gp,dss,dvf"
       stringsplit,v,C7,_
       v2=%v2%
       filesize:=V2
       if ext in %extensions%
         {
         if (ext="mp4")
            {
            Whr.Open("HEAD",C8)
            Whr.Send()
            ;- bytesize1 is bigger as filesize C7
            ByteSize1:= Whr.GetResponseHeader("Content-Length")
            ByteSize2:=Separate(ByteSize1)
            Bytesize2=%Bytesize2%
            stringreplace,v2a,v2,`',,all         ;- V2a is C7
            ;msgbox, 262208, ,Length C7=%v2a%`nBytesize1=%bytesize1%`nBytesize2=%bytesize2%
            ;return
            ;- make bytesize1 to 120% for compare it with C7  (V2a)
            xxcv:=(bytesize1*120)//100 
            if (v2a>xxcv or ((V2a="0" and bytesize1="0") or bytesize1<1000))
               {
               casex=casemp4small
               goto,msgboxx1
               }
            else
               {
               casex=caseMP4
               goto,msgboxx1
               }    
            }
           ;--------- end MP4 ---------
		   if (ext="m3u8")
              {
              casex=caseM3u8
              goto,msgboxx1
              }
         }
       }
  if (col=10) 
       {
	   msgbox, 262180, ,%c4%`n------------------`n%c10%`n--------------------`nWant you run WEB-URL ?
	   ifmsgbox,no
	      return
	   try
         run,%c10%	   
	   }	  
	   
 }
return

;================= END  LISTVIEW ============================
;================== MSGBOX ======================================================
msgboxx1:
Gui,9:destroy
Gui,1:submit,nohide
Gui,9: +AlwaysOnTop -DPIScale -Theme -caption
Gui,9:Color,Black,Black                        ; GUI black   / EDIT is BLACK
Gui,9:Font,CYellow s12,Lucida Console          ; set FONT , SIZE=12 , EDIT-TEXT is Yellow 
;--------------------
if (casex="caseMP4")
    textx=Dauer     = %C6%`nC7_Length = %Filesize% `nBytesize  = %Bytesize2%`n--------------`n%c3%`n--------------------`n%C4%`n-------------`n
;--------------------
if (casex="caseMP4small")
  textx=Dauer     = %C6%`nC7_Length = %Filesize% `nBytesize  = %Bytesize2%`n--------------`n%c3%`n--------------------`n%C4%`n-------------`nMAYBE VIDEO NOT EXIST or C7(=0)=%v2a% or Bytesize1<1000=%Bytesize1%`nIf C7=0 and Bytesize1=0 = NO SUCCES`notherwise maybe GEO-Blocking`nWant you really TRY ?`n---------------`nMaybe download here : https://convert-video-online.com/`nuntil size < 1-GB`n----------`nUse button CONVERT`nClick URL and then use ctrl+v
;--------------------
if (casex="caseM3u8")
  textx=Dauer     = %C6%`nC7_Length = 0-m3u8 `nBytesize  = 0-m3u8`n--------------`n%c3%`n--------------------`n%C4%`n-------------`n--------------`nFOR RECORD >>> NEEDS yt-dlp & ffmpeg`n---------------------`n
;-------------------
;-------------------
x:=(wa*.5)/xx,y:=(ha*.5)/xx,w:=(wa*30)/xx,h:=(ha*35)/xx
Gui,9:add,Edit,    x%x%   y%y%   w%w%  h%h%   readonly vED1x -vscroll,%textx%
;--------------------------
;------------------------------------------------------------------------------
if ((casex="caseMP4") or (casex="caseM3u8"))
{
x:=(wa*1)/xx,y:=(ha*36)/xx,w:=(wa*4)/xx,h:=(ha*2.6)/xx
Gui,9: Add, Progress, x%x% y%y% w%w% h%h% Disabled Background87CEEB
Gui,9: Add, Text, xp yp wp hp BackgroundTrans 0x201 cBlack  +Border gPLAY9,PLAY
;--
x:=(wa*6)/xx
Gui,9: Add, Progress, x%x% y%y% w%w% h%h% Disabled BackgroundRed
Gui,9: Add, Text, xp yp wp hp BackgroundTrans 0x201 cYellow  +Border vRecMsgbox gRECORD9,RECORD
}
;------------------------
;-------------------------
if (casex="caseMP4small")
{
clipboard=%c8%
x:=(wa*.5)/xx,y:=(ha*36)/xx,w:=(wa*5)/xx,h:=(ha*2.6)/xx
Gui,9: Add, Progress, x%x% y%y% w%w% h%h% Disabled Background87CEEB
Gui,9: Add, Text, xp yp wp hp BackgroundTrans 0x201 cBlack  +Border gPLAY9,PLAY-(?)
;--
x:=(wa*6)/xx
Gui,9: Add, Progress, x%x% y%y% w%w% h%h% Disabled BackgroundRed
Gui,9: Add, Text, xp yp wp hp BackgroundTrans 0x201 cYellow  +Border gConvert9,CONVERT
;--
x:=(wa*.5)/xx,y:=(ha*39)/xx,w:=(wa*5)/xx,h:=(ha*2.6)/xx
Gui,9: Add, Progress, x%x% y%y% w%w% h%h% Disabled Background87CEEB
Gui,9: Add, Text, xp yp wp hp BackgroundTrans 0x201 cBlack  +Border vRecMsgbox gRECORD9,RECORD-(?)
;--
x:=(wa*6)/xx,y:=(ha*39)/xx,w:=(wa*7)/xx,h:=(ha*2.6)/xx
Gui,9: Add, Progress, x%x% y%y% w%w% h%h% Disabled Background87CEEB
Gui,9: Add, Text, xp yp wp hp BackgroundTrans 0x201 cBlack  +Border gMediathekView1,Mediathekview
}
;-------------------------------------------------------------------------------------------------
x:=(wa*11.5)/xx,y:=(ha*36)/xx,w:=(wa*4)/xx,h:=(ha*2.6)/xx
Gui,9: Add, Progress, x%x% y%y% w%w% h%h% Disabled BackgroundGray
Gui,9: Add, Text, xp yp wp hp BackgroundTrans 0x201 cBlack  +Border gCancel9,CANCEL
;-------------------------
x:=(wa*16)/xx,w:=(wa*14)/xx,h:=(ha*2.6)/xx
Gui,9:add,Edit,    x%x%   y%y%   w%w%  h%h%   readonly vED2x -vscroll,
;--
x:=(wa*30)/xx,y:=(ha*27)/xx,w:=(wa*31)/xx,h:=(ha*45)/xx
Gui,9:Show,x%x% y%y% w%w% h%h% ,TEST9            ;-9 GUI position and size
;-------------------------
GuiControl, Focus,ED11                    
send,^{end}
if (recx=1)
  GuiControl,9: Disable,recmsgbox
else
  GuiControl,9: Enable,recmsgbox
OnMessage(0x201, "WM_LBUTTONDOWN")
return
;----------------------------------------------------------------------------------------------------
Mediathekview1:
try
 run,https://mediathekviewweb.de/#query=+%C3%
Gui,9: destroy
return
;------------------------------
PLAY9:
if (ext="MP4")
  GuiControl,1: Enable,BTRecord1
ifexist,%pr1%
  {  
  if (ext="m3u8")
    GuiControl,1: Enable,BTRecord1
  }
GuiControl, Focus,ED11                    
gosub,childnew
Gui,9: destroy
return
;-------------------------------
RECORD9:
Gosub,recordx                              ;- <<<<<<<<<<<<<<<<
return
;-------------------------------
CONVERT9:
try
  run,https://convert-video-online.com/
Gui,9: destroy
return
;-------------------------------
CANCEL9:
Gui,9: destroy
Guicontrol,1:focus,ED11
return
;----------------------
WM_LBUTTONDOWN(wParam, lParam, msg, hwnd)
{
Gui, +LastFound
Checkhwnd := WinExist()
if hwnd = %Checkhwnd%
   PostMessage, 0xA1, 2
;- 0x201 is the number for Windows Message WM_LBUTTONDOWN, which is the message Windows sends when the mouse clicks on our window.
;- 0xA1 is WM_NCLBUTTONDOWN, to make Windows think we clicked on the non-client area of the window (the border).
;- The "2" tells windows we clicked on caption at the top of the window, as if to drag it.
}
;===================== END GUI-9 msgbox ===============================

;=========== LOOP RECORD checked ROWs =================================
RECselected:
if (recx=1)
  {
  msgbox, 262208,DOWNLOAD ,RECORD is running
  return
  }
Selectedrunning:=0
recx:=0,e6x:="",e5x:="",Rowx:= 0
Checkedx:=i:=0
while i:=LV_GetNext(i, "Checked")
  Checkedx++                                   ;- how many are checked
if (checkedx="0")
  {
  msgbox, 262208, ,NO ROW is selected for record
  return
  }
rowtot:=0
While (Rowx := LV_GetNext(Rowx, "checked"))
{
   rowtot++
   c1x:="",c2x:="",c3x:="",c5x:="",c8x:=""
   LV_GetText(C1x,Rowx,1) ,   LV_GetText(C2x,Rowx,2),   LV_GetText(C3x,Rowx,3),   LV_GetText(C5x,Rowx,5),   LV_GetText(C8x,Rowx,8)
   e5x .= c1x . ";" . c2x . ";" . c3x . ";" . c5x . ";" . c8x . ";" . rowx . "`r`n"
   e6x .= a_index . "_" . C3x . "`n"
}
msgbox, 262180, ,Want you download these selected videos ?`n---------------`n%e6x%`n---------------`n
 ifmsgbox,no
    {
    LV_Modify(0, "-check")                   ;- deselect all checked rows
    return
    }
;-----------------------
GuiControl,1: Disable,BTRECselected
recx:=1
Selectedrunning:=1
;------------------------
loop,parse,e5x,`n,`r
 {
  x:=a_loopfield
  if x=
     break
  z1:="",z2:="",z3:="",z4:="",z5:="",z6:=""
  stringsplit,z,x,`;
  c1:=z1,c2:=z2,c3:=z3,c5:=z4,c8:=z5,rowxx:=z6
  recnow:=a_index . "_" . rowtot . "_" . C3
  gosub,recordx                            ;<<<<<<<<<<<<<<<<<< RECORD
  LV_Modify(rowxx, "-check")               ;- deselect this checked row 
 }
recx:=0
rowtot:=0
recnow:=""
Selectedrunning:=0
msgbox, 262208, ,Download ended`nMaybe check size of these files`n-------------`n%e6x%
e5x=
e6x=
c1x:="",c2x:="",c3x:="",c5x:="",c8x:="",rowxx:=""
z1:="",z2:="",z3:="",z4:="",z5:="",z6:=""
GuiControl,1:Enable,BTRECselected
Guicontrol,1:,EDrecselected
try
   run,%folder1%
return
;==============================================================================
;-- ROW select
SELECTALL:
LV_Modify(0, "check")
return
;-----
DESELECTALL:
LV_Modify(0, "-check")
return
;=============================================================================



;============================= RECORD =================================
RECORDx:
 {
stringreplace,c5,c5,`:,-,all
C1:=RegExReplace(C1, "[<>:""/\\|?*.,!]") 
C2:=RegExReplace(C2, "[<>:""/\\|?*.,!]") 
C3:=RegExReplace(C3, "[<>:""/\\|?*.,!]") 
C1:=RegExReplace(C1,"\x20{2,}"," ")    ;- keep only one space
C2:=RegExReplace(C2,"\x20{2,}"," ")    ;- keep only one space
C3:=RegExReplace(C3,"\x20{2,}"," ")    ;- keep only one space
url:=""
localpath:=""
url:=C8
SplitPath,url, name, dir, ext, name_no_ext, drive
FOLDER1:="D:\M_MEDIA\M_FILME\"
localPath:= folder1 . C1 . "_" . C2 . "_" . C3 . "_" . C5 . ".mp4"
 }
;--------------------------------

if (ext="m3u8")
  {
  ifexist,%pr1%
     {
     recx=1
	 
	     if (selectedrunning=1)
         {
         Guicontrol,1:,EDRecselected,Rec...>> %recnow%
         RunWait, %comspec% /c %SPX% %url% --verbose --youtube-skip-dash-manifest -o "%localpath%",,hide
         Guicontrol,1:,EDrecselected,
         }
     else 
        {
	    GuiControl,9:Disable,RecMsgbox
        Guicontrol,9:,ED2x,Rec... %c3%
        GuiControl,1: Disable,BTRecord1
        sleep,1000
        Gui,9:destroy
        Guicontrol,1:,ED3,RECORD...>>  %c3%
    	 ;-------------------------------------------------------------------------
        RunWait, %comspec% /c %SPX% %url% --encoding UTF-8 -o "%localpath%",,hide
	    ;-------------------------------------------------------------------------
        Guicontrol,1:,ED3,RECORD ... ENDED
        sleep,2000
	    Guicontrol,1:,ED3,
        recx=0
        try
          run,%folder1%
        return
        }
	 }	
  else
     {
     msgbox, 262208,END ,Needs= %pr1%`nand ffmpeg.exe`nfor download m3u8
     return
     }
  return	 
  }
;--------------------------------

if (ext="mp4")
  {
    Q5xx:=""
    Aktsize:=""
    Whr.Open("HEAD",URL)    ;- C8
    Whr.Send()
    ;- bytesize1 is filesize 
    Q5xx:= Whr.GetResponseHeader("Content-Length")
	;msgbox,%localpath%
    FileGetSize,AktSize,%localpath%
     {
       If(Q5xx==Aktsize)
         {
         msgbox, 262208,,File already exist`n%localpath%
         return
         }
     } 
  recx=1
  settimer,checksize,1000                     ;- <<<<<<<<<<
       if (selectedrunning=1)
         Guicontrol,1:,EDRECselected,Rec...>> %recnow%
     else
	     {
         Guicontrol,1:,EDRECSelected,Rec...>> %C3%
         GuiControl,9: Disable,recmsgbox
         Gui,9: destroy
         }
  GuiControl,1: Disable,BTRecord1
  ;---------------------------------------------------------
  urldownloadtofile,%url%,%localpath%         ;- <<<<<<<<<<
  ;---------------------------------------------------------
  if (selectedrunning=0)
    {
    GuiControl,9: Enable,recmsgbox
    GuiControl,1: Enable,BTRECselected
	Guicontrol,1:,EDRECselected
    try
      run,%folder1%
    recx=0
    }

  settimer,checksize,off
  recx=0
  sleep,100
  GuiControl,1:,RecordBAR     ,
  GuiControl,1:,Downloadedsize,
  GuiControl,1:,Totalsize     ,
  C1:="",C2:="",C3:="",C5:="",C8:="",localpath:=""
  Guicontrol,1:,EDrecselected,
  ;try
  ;  run,%folder1%
  return
  }
;-------------------------------
else
  {
  msgbox, 262208, ,Check extension or URL`nEXT=%ext%`nC8=%c8%
  }
Guicontrol,1:focus,ED11
return
;----------------------------------------------
checksize:
FileGetSize,AktSize,%localpath%
RES2:=Round((100*Aktsize)/Q5xx)
GuiControl,1:,RecordBAR, %RES2%
GuiControl,1:,Downloadedsize,%aktsize%
GuiControl,1:,Totalsize   ,%Q5xx%
return
;----------------------------------------------
;===================== END RECORDx =======================================

;================== GUI-3 ================================================
;-------- PLAY AUDIO VIDEO ------------------
childnew:
Gui,1:submit,nohide
Gui,3: -DPIScale
Gui,3: +HwndBId  -Caption -Border
Gui,3: Margin, 0, 0
Gui,3:Color,Black,Gray
Gui,3:Font,s14 cGray,Lucida Console
settimer,aas1,on
;-------------------------------------------------------------
x:=(wa*0.0)/xx ,y:=(ha*0)/xx, w:=(wa*87)/xx , h:=(ha*84)/xx 
Gui,3:Add,ActiveX, x%x% y%y% w%w% h%h% vVlcx ,%xxe%
;-------------------------------------------------------------
;------------------------------------------------------------
x:=(wa*13)/xx
Gui,3:Show,x%x% y%y% w%w% h%h%,
;-------------------------------------------------------------
Gui,3:+Parent%AId%
Gui,3:default
Guicontrol,1:,ED3,%c3%
vlcx.playlist.stop()
vlcx.playlist.items.clear()
vlcx.playlist.add(C8,"","""""")
vlcx.playlist.next()
Guicontrol,1:focus,ED11
return
;------------------------------------------------------
;========= END VIDEO PLAY =============================================


;--------------- PLAY --------------------------
PLAY:
if C8<>
 {
 gosub,stop
 settimer,aas1,on
 vlcx.playlist.stop()
 vlcx.playlist.items.clear()
 gosub,play9
 }
return
;-----------  STOP -----------------------------
STOP:
settimer,aas1,off
sleep,200
vlcx.playlist.stop()
sleep,200
vlcx.playlist.items.clear()
sleep,200
Gui,3:destroy
gosub,clearall
return
;------------------------------------------------------
;========== CLEAR ===================
clearall:
  GuiControl,1:,PRBAR,0
  GuiControl,1:Text,Procentx   ,0`%
  GuiControl,1:Text,T2
  GuiControl,1:Text,T3
  GuiControl,1:,ED3
  GuiControl,1: Disable,BTRecord1
return
;-------------------------------------


;------------------
#IfWinActive ahk_class AutoHotkeyGUI ahk_exe AutoHotkey.exe
~left::
Goto1B:
vlcx.playlist.items.clear() 
acx:=vlcx.input.time
guicontrolget,jumpb
varxx=%jumpb%
gosub,gosubtimecalc
vlcx.input.time :=(-total+acx)
return
;------------------
~right::
Goto1F:
vlcx.playlist.items.clear()  
acx:=vlcx.input.time
guicontrolget,jumpf
varxx=%jumpf%
gosub,gosubtimecalc
endtotal:=(total+acx)
if (endtotal>=bc)
   endtotal:=(bc-10000)        ;- goto endtotal minus 10 sec
vlcx.input.time :=(endtotal)
return
#IfWinActive
;------------------
;========== VLC functions ============================
;-------- pause / PLAY --------------
pause1:
gui,1:submit,nohide
vlcx.playlist.items.clear() 
vlcx.playlist.togglePause()
return
;-------------------------------------
Prbar1:
gui,1:submit,nohide
gosub,checkx
if (acc=0 or bcx=0)
   return
MouseGetPos,xpos
x100:=(wa*99.8)/xx                                                                 ;-- <<< same as prbar width
;-correctur:=(wa*.02)/xx ;- evtl minus from procent
procent  :=round((100*xpos)/x100)
calctime :=((bc*procent)/100)
vlcx.input.time :=(calctime)
return
;---------------------------------

;========== VLC functions ============================
;-------- pause / PLAY --------------
pauseplay:
gui,1:submit,nohide
vlcx.playlist.items.clear() 
vlcx.playlist.togglePause()
GuiControl,2:Text,PausePlay,PAUSEx
return

;------- check ----------
checkx:
bc:=vlcx.input.length
ac:=vlcx.input.time

acc:=(ac//1000)
bcx:=(bc//1000)
return
;=========================================================


;=========== settimer progressbar ==================
aas1:
gui,1:submit,nohide
bc:=vlcx.input.length
ac:=vlcx.input.time
acc:=(ac//1000)
bcx:=(bc//1000)
if (acc=0 or bcx=0)
   return
;msgbox, 262208, ,acc=%acc%`nbcx=%bcx% , 1
SetFormat, float, 02
hours1   := (acc//3600)
minutes1 := (acc - hours1 * 3600)// 60
seconds1 := (acc - hours1 * 3600 - minutes1 * 60)
hours1  +=0.00
minutes1+=0.00
seconds1+=0.00
acc=%hours1%:%minutes1%:%seconds1%
;------- played-time ---------------

hours   := (bcx//3600)
minutes := (bcx - hours * 3600)// 60
seconds := (bcx - hours * 3600 - minutes * 60)
hours  +=0.00
minutes+=0.00
seconds+=0.00
bcx=%hours%:%minutes%:%seconds%
;----- total-time ----------------
ay:=vlcx.input.state
if (ay=0)
   cy=Idle
if (ay=1)
   cy=Opening
if (ay=2)
   cy=Buffering
if (ay=3)
   {
   cy=Playing
   ;GuiControl,2:Text,PausePlay1,PAUSE
   }
if (ay=4)
   {
   cy=Paused
   ;GuiControl,2:Text,PausePlay1,PLAY
   }
if (ay=5)
   cy=Stopped
if (ay=7)
   cy=Error
if (ay=6)
   {
   cy=Ended
   ;GuiControl,2:Text,T5,%cy%
   settimer,aas1,off
   GuiControl,1:,PRBAR,100
   ;GuiControl,2:Text,Procentx   ,100`%
   return
   }

;GuiControl,2:Text,T5,%cy%

    RES1:=Round((100*AC)/BC)
    GuiControl,1:,PRBAR ,%res1%
;GuiControl,2:Text,T1    ,%res1%`%   ;- procent
GuiControl,1:Text,T2    ,%acc%      ;- PlayedTime
GuiControl,1:Text,T3    ,%bcx%      ;- Lenght
return


;===============  timecalc ===========
gosubtimecalc:
total:=0
y1=
y2=
y3=
  stringsplit,Y,varxx,`:
  if y3<>
  {
  hours:=(y1*60*60)*1000
  minutes:=(y2*60)*1000
  seconds:=(y3*1000)
  total:=(hours+minutes+seconds)
  }

  if (y3="" and y2<>"")
  {
  minutes:=(y1*60)*1000
  seconds:=(y2*1000)
  total:=(minutes+seconds)
  }

  if (y3="" and y2="")
     total:=(varxx*1000)
return
;======================================

;===========================================================
;- from teadrinker
EncodeDecodeURI(str, encode := true, component := true) {
   static Doc, JS
   if !Doc {
      Doc := ComObjCreate("htmlfile")
      Doc.write("<meta http-equiv=""X-UA-Compatible"" content=""IE=9"">")
      JS := Doc.parentWindow
      ( Doc.documentMode < 9 && JS.execScript() )
   }
   Return JS[ (encode ? "en" : "de") . "codeURI" . (component ? "Component" : "") ](str)
}
;======================== SKAN xStr =========================
;-------- saved at  7. April 2020 16:34:11 from user SKAN --------------
;- xStr  for general text extraction and parsing XML  HTML 
;- https://www.autohotkey.com/boards/viewtopic.php?f=6&t=74050
xStr(ByRef H, C:=0, B:="", E:="",ByRef BO:=1, EO:="", BI:=1, EI:=1, BT:="", ET:="") {                           
Local L, LB, LE, P1, P2, Q, N:="", F:=0                 ; xStr v0.97 by SKAN on D1AL/D343 @ tiny.cc/xstr  
Return SubStr(H,!(ErrorLevel:=!((P1:=(L:=StrLen(H))?(LB:=StrLen(B))?(F:=InStr(H,B,C&1,BO,BI))?F+(BT=N?LB
:BT):0:(Q:=(BO=1&&BT>0?BT+1:BO>0?BO:L+BO))>1?Q:1:0)&&(P2:=P1?(LE:=StrLen(E))?(F:=InStr(H,E,C>>1,EO=N?(F
?F+LB:P1):EO,EI))?F+LE-(ET=N?LE:ET):0:EO=N?(ET>0?L-ET+1:L+1):P1+EO:0)>=P1))?P1:L+1,(BO:=Min(P2,L+1))-P1)  
}
;------------------------------------------------------------------
Separate(Number, Separator = "'") {
    Return RegExReplace(Number,"\G\d+?(?=(\d{3})+(?:\D|$))","$0" Separator)
}

SetEditCueBanner(HWND, Cue) {  ; requires AHL_L
   Static EM_SETCUEBANNER := (0x1500 + 1)
   Return DllCall("User32.dll\SendMessageW", "Ptr", HWND, "Uint", EM_SETCUEBANNER, "Ptr", True, "WStr", Cue)
}

;================== function just me for ListView-column  ============================
; https://autohotkey.com/board/topic/80265-solved-which-column-is-clicked-in-listview/
LV_SubitemHitTest(HLV) {
   ; To run this with AHK_Basic change all DllCall types "Ptr" to "UInt", please.
   ; HLV - ListView's HWND
   Static LVM_SUBITEMHITTEST := 0x1039
   VarSetCapacity(POINT, 8, 0)
   ; Get the current cursor position in screen coordinates
   DllCall("User32.dll\GetCursorPos", "Ptr", &POINT)
   ; Convert them to client coordinates related to the ListView
   DllCall("User32.dll\ScreenToClient", "Ptr", HLV, "Ptr", &POINT)
   ; Create a LVHITTESTINFO structure (see below)
   VarSetCapacity(LVHITTESTINFO, 24, 0)
   ; Store the relative mouse coordinates
   NumPut(NumGet(POINT, 0, "Int"), LVHITTESTINFO, 0, "Int")
   NumPut(NumGet(POINT, 4, "Int"), LVHITTESTINFO, 4, "Int")
   ; Send a LVM_SUBITEMHITTEST to the ListView
   SendMessage, LVM_SUBITEMHITTEST, 0, &LVHITTESTINFO, , ahk_id %HLV%
   ; If no item was found on this position, the return value is -1
   If (ErrorLevel = -1)
      Return 0
   ; Get the corresponding subitem (column)
   Subitem := NumGet(LVHITTESTINFO, 16, "Int") + 1
   Return Subitem
}
;====================================================================



;=============== for LISTBOX predefined GENRE / TV-STATION ==============
;==== DROPDOWNLIST====
FILEe5:
transform,dlm,chr,127
e5x=
(Ltrim Join|
SENDER_1
SENDER_2
Favoriten1
Favoriten2
Diverse
Doku
Film
Infotainment
Kultur_Kunst
Länder
Lokal
Magazin
Markt
Mathe
Märchen
NEWS
Recherche
Satire
Schule
Unfall_Verbrechen
Wissen
SCHWEIZ
AUSTRIA
_TEST
_SHORT
)
return
;===== END DROPDOWNLIST ===============


;-------------------------
Favoriten1:
e1=
(Ltrim Join|
!Arte.de Recherche 
!Arte.de arte journal
!Arte.de #aktuelles +Arte journal
!Arte.de *Linda,Lorin
#Arena
#Schweiz Aktuell
#10,vor,10
#Exakt,die,story
#Die,Story
#reporter
#brisant
#Heute
#WISO
#ZDFzoom
#Mex
#Markt
#Marktcheck
#Super.markt
#Kassensturz
#Ausland
#Frontal
#ZAPP
#Panorama
#Auslandsjournal
#Weltjournal
#Weltspiegel
#Länderspiegel
#Rundschau
#Technik
#Magazin
#Makro
#Kontrovers
#DOC
#ttt
#simplicissimus
#Heute-show
#Sketch-history
#Frontal +Toll!
#Frontal +Nachgehakt
#ZDF,Magazin,Royale
#Zwei am morge
#Gredig
recherche
mit,offenen,Karten
in,100,Sekunden
!NDR #Extra,3
!ARD #Extra,3
+realer,Irrsinn
+Gags
Gags
walulis
semsrott
#7,Tage
)
Guicontrol,1:,LB1,%e1%
return
;-----------------------------------
Favoriten2:
e1=
(Ltrim Join|
#ZAPP
#ttt
!Arte.de Recherche 
!Arte.de #Linda,Lorin
mit,offenen,Karten
in,100,Sekunden
!NDR #Extra,3
!ARD #Extra,3
!FUNK.net #Der,Biograph
!FUNK.net #STRG_F
!FUNK.net #TRU,DOKU
!FUNK.net #mailab
!FUNK.net #Jäger
+realer,Irrsinn
+Gags
walulis
semsrott
#7,Tage
Nuhr
)
Guicontrol,1:,LB1,%e1%
return
;-----------------------------------

;-------------------------
News:
e1=
(Ltrim Join|
!ARTE.de Recherche 
!Arte.de arte journal
!ARTE.DE #aktuelles +Arte journal
#landesschau
#landesschau Baden-Württemberg
#Landesschau Baden-Württemberg +Landesschau Baden-Württemberg
#Landesschau Rheinland-Pfalz
#zdfinfo
#Hallo
#hallo Deutschland
#hallo Niedersachsen
#Schweiz Aktuell
#Tagesschau
#abendschau
#Frankenschau
#BR24Live
#Aktuell
#Aktuelles
#Nachrichten
#3nach9
#info
#10,vor,10
#ZIB
#ZIB Flash
#reporter
#brisant
#maintower
#Heute
!ARD #monitor
!ARD #Aktuelle Stunde
#Aktuelle Stunde
#Monitor
vox pop
!DW #Der Tag
+Tagesschau in 100 Sekunden
)
Guicontrol,1:,LB1,%e1%
return
;-------------------------
SENDER_1:
e1=
(Ltrim Join|
!ARD
!MDR
!SWR
!NDR
!WDR
!BR
!DW
!ARTE.DE
!ARTE.FR
!ARTE.EN
!ARTE.ES
!ARTE.PL
!ARTE.IT
!KiKa
!HR
!RBB
!rbtv
!3SAT
!SR saarland
!SRF
!ORF
!PHOENIX
!ZDF
!FUNK.net
)
Guicontrol,1:,LB1,%e1%
;GuiControl, ChooseString, LB1,!ARTE.de
;sleep,500
;GuiControl,1:Focus,ED11
;sleep,1500
;click
;controlclick,Listbox1,!ARTE.DE
;Send {Blind}{enter}
;Send,{Ctrl down}{enter}{Ctrl up}
return
;-------------------------


;-------------------------
Doku:
e1=
(Ltrim Join|
#3nach9
#Betrifft
#Europamagazin
#Doku
#DokThema
#Doku <10
#Recherche
#PlusMinus
#Umschau
#Extra
#Doku&Reportage
#Reportage
#Respekt
#Universum
#Universum History
#Alpha-doku
#DokThema
!ARTE.de Recherche 
#ZDFzeit
#ZDFzoom
#ZDF-History
#Simplicissimus
#Exakt
#Brisant
!ZDF #Panorama
#Report
#Report München
#Frontal +Toll!
#Frontal +Nachgehakt
#Frontal
#ZAPP
#Panorama
#Auslandsjournal
#Weltjournal
#Weltspiegel
#Länderspiegel
#Rundschau
#Magazin
#Makro
#Kontrovers
#Die,Story
#DOC
recherche
mit,offenen,Karten
kultur und pop
Nachgehakt
Hammer der Woche
Anderswo
die Story
kreuz und quer
in 100 sekunden
!SRF #Rundschau
!SRF #DOK
!NDR #ZAPP
!SRF #Es,geschah,am
Geo-Reportage
ttt
#Schätze der Welt
Terra X
+Mythos
)
Guicontrol,1:,LB1,%e1%
return
;-------------------------

RECHERCHE:
e1=
(Ltrim Join|
!ARTE.de RECHERCHE
Exakt
Recherche
#Europamagazin
+Mythos
!SRF #Es,geschah,am
)
Guicontrol,1:,LB1,%e1%
return
;-------------------------

MAGAZIN:
e1=
(Ltrim Join|
#3nach9
#Europamagazin
#Schleswig-Holstein Magazin
#Rundschau Magazin
#Magazin 1
#österreich Heute Magazin
#Slowenien Magazin
+moma
!orf #thema
!hr #Schrauben
!hr #Die Ratgeber
)
Guicontrol,1:,LB1,%e1%
return
;-------------------------


INFOTAINMENT:
e1=
(Ltrim Join|
#3nach9
)
Guicontrol,1:,LB1,%e1%
return

;-------------------------
UNFALL_VERBRECHEN:
e1=
(Ltrim Join|
#Vorsicht,Verbrechen
#Vorsicht,Falle
#XY ungelöst
#XY
#Täter
Täter
Mord
tödlich
Unfall
Autounfall
+Mord +tödlich +Leiche +Täter
+Unfall
+Autounfall
Kriminalreport
*mord *tödlich *Leiche *Täter
Morddeutschland
#Kripo live
vermisst
#ZDFinfo +Täterjagd
#ZDFinfo +Ermittler
)
Guicontrol,1:,LB1,%e1%
return
;-------------------------
;-------------------------
LOKAL:
e1=
(Ltrim Join|
landesschau Baden-Württemberg
)
Guicontrol,1:,LB1,%e1%
return
;-------------------------
;-------------------------
MARKT:
e1=
(Ltrim Join|
#WISO
#Mex
#Markt
#Marktcheck
#Super.markt
#Kassensturz
#Markt XL
#Haushaltscheck
#Makro
+Das,Geschäft,mit
#Die,Tricks
+Die,Tricks
jo,hiller
)
Guicontrol,1:,LB1,%e1%
return
;-------------------------
Wissen:
e1=
(Ltrim Join|
#3nach9
#GRIPS
#GRIPS Mathe
#GRIPS Englisch
#GRIPS Deutsch
#Alpha
#Alpha Lernen
#Archivperlen
#nano
#english
#English Bite-size
#Wissenschaft
#Geschichte
#Planet Wissen
#xenius
#Leschs Kosmos
#alpha-Centauri
#Wirtschaft
#Bitcoin
#W,wie,Wissen
#Technik
#Entdeckung,der,Welt
#Ernährung
#Gesundheit
#Simplicissimus
!BR #Mathematik,zum,Anfassen
!arte.de #Geschichte
!arte.de #Wissenschaft
!arte.de #Entdeckung der Welt
!arte.de #Technik,und,Innovation
!Arte.de +Karambolage
!Arte.de +Fragestunde
!Arte.de +Flick,Flack
!3SAT Terra X
!ZDF Terra X
!3SAT Einstein
!SRF Einstein
!SRF #Es,geschah,am
!x:enius
+Karambolage
+Makro
+Geo reportage
+Mythos
Lesch
makroskop
Geo reportage
Perspektivwechsel
Wissen vor acht
Bitcoin
Universum
Quarks
Meilensteine der Technik
Genial konstruiert
blockchain
Universum Spezial
)
Guicontrol,1:,LB1,%e1%
return
;-------------------------

Schule:
e1=
(Ltrim Join|
#3nach9
#Alpha
#Alpha Lernen
#Alpha Lernen Deutsch
#Alpha Lernen Englisch
#Alpha Lernen Wirtschaft
#Alpha Lernen Mathe
#Alpha Lernen Physik
#Alpha Lernen Chemie
#Alpha Lernen Biologie
#Mathe
#Telekolleg
#Telekolleg Englisch
#Telekolleg Mathe
#English
#English Bite-size
#GRIPS
#GRIPS Mathe
#GRIPS Englisch
#GRIPS Deutsch
#Witschaft
#Bitcoin
#W,wie,Wissen
Bitcoin
Universum
Quarks
)
Guicontrol,1:,LB1,%e1%
return
;-------------------------


MATHE:
e1=
(Ltrim Join|
#GRIPS
#GRIPS Mathe
#Alpha
#Alpha Lernen
#Alpha Lernen  Mathe
#Mathe
#Telekolleg Mathe
#Telekolleg
)
Guicontrol,1:,LB1,%e1%
return
;-------------------------

KULTUR_KUNST:
e1=
(Ltrim Join|
#3nach9
#Kulturzeit
#Kultur
#Kino
#Film
#Filmklassiker
#Klassiker,der
#Spielfilm
+Stadt
ttt
#Zapp
!ARTE.de +Stadt - Land - Kunst
!ARTE.de *Linda,Lorin
!ARTE.DE +Flick,flack
)
Guicontrol,1:,LB1,%e1%
return
;-------------------------



;-------------------------
SCHWEIZ:
e1=
(Ltrim Join|
!SRF #Kassensturz
!SRF #Rundschau
!SRF #Tagesschau
!SRF 10,vor,10
!SRF #DOK
!SRF #Arena
!SRF #ECO
!SRF #Archivperlen
!SRF #mini
!SRF #SRF
!SRF #Comedy
!SRF #CH:Filmszene
!SRF #nano
!SRF #Schweiz
!SRF Einstein
!SRF #1,gegen,100
!SRF #Es,geschah,am
NZZ Format
NZZ Standpunkte
landesschau,Baden-Württemberg
#Es,geschah,am
)
Guicontrol,1:,LB1,%e1%
return
;-------------------------
;-------------------------
AUSTRIA:
e1=
(Ltrim Join|
#willkommen,ö
!ORF eco
Die,Million,Show
!ORF #Thema
#zib flash
#zib Nacht
#zib
#konkret
#österreich,heute
#Salzburg,heute
#Burgenland,heute
#Kärnten,heute
#Aktuell,nach,eins
#guten,morgen
#Studio 2
#Im,zweifel,schuldig

)
Guicontrol,1:,LB1,%e1%
return
;-------------------------
;-------------------------
SATIRE:
e1=
(Ltrim Join|
Sarah,Kuttner
Hazel,Brugger
Giacobbo
!rbb abendshow
#willkommen,ö
!NDR #Extra,3
!ARD #Extra,3
#Heute-show
#Sketch-history
#Frontal +Toll!
#Frontal +Nachgehakt
#ZDF,Magazin,Royale
+realer,Irrsinn
+Gags
Gags
#Zwei am morge
walulis
!ZDF #Die,Anstalt
#Grünwald
Comedy
Sketch
)
Guicontrol,1:,LB1,%e1%
return
;-------------------------
;-------------------------
Film:
e1=
(Ltrim Join|
#Dokfilm
#Film
#Spielfilm
#Märchenfilm
#Märchenperlen
#Kino - Kurzfilme
#Kino - Filme
#Kino
#Fernsehfilm
#ZDFinfo
#ZDF-HISTORY
Film
+Kurzschluss
Drama
Liebesdrama
DokuDrama
Kino Film
blow up
Filmgrössen
!SRF #Schweizer,Film
!SRF #CH:Filmszene
!ARD #Film
!MDR #Film
!SWR #Film
!NDR #Film
!NDR #NDR Dokfilm
!WDR #Film
!BR #Film
!DW #Film
!DW #Dokfilm
!ARTE.DE #Film
!ARTE.FR #Film
!KiKa #Film
!HR #Film
!RBB #Film
!3SAT #Film
!SRF #Film
!ORF #Film
!PHOENIX #Film
!SR #Film
!ZDF #Film
!SRF #Es,geschah,am
)
Guicontrol,1:,LB1,%e1%
return
;-------------------------
;-------------------------
Märchen:
e1=
(Ltrim Join|
Märchen
#Sonntagsmärchen
#Märchenperlen
Herzkino
Masha
Gromit
Garfield
Robin,Hood
#Shaun,das,Schaf
#Sesamstrasse,Magazin
#Sesamstrasse
!arte.de #junior
!ARTE.DE +Echt,genial
!KIKA
#Märchenfilm
)
Guicontrol,1:,LB1,%e1%
return
;-------------------------
;-------------------------
Länder:
e1=
(Ltrim Join|
+Portugal
+Philippinen
+Wildes
+Mythos
#Entdeckung
#Länder-Menschen
#Ländermagazin
#Expedition
#Eisenbahn,Romantik
+Stadt,Land,Kunst
Portugal
Philippinen
Holland Niederlande
Dänemark
#Schätze,der,Welt
Terra X
Verrückt,nach,Meer
Weltreisen
Kritisch Reisen
)
Guicontrol,1:,LB1,%e1%
return
;-------------------------
;-------------------------
Diverse:
e1=
(Ltrim Join|
)
Guicontrol,1:,LB1,%e1%
return
;-------------------------
;-------------------------
_TEST:
e1=
(Ltrim Join|
!arte #recherche +portugal *Lithium
!arte #Geschichte
!arte #recherche
planet,wissen
)
Guicontrol,1:,LB1,%e1%
return
;-------------------------

_SHORT:
e1=
(Ltrim Join|
#3nach9
Europamagazin
!arte.de +Stadt,Land,Kunst
!Arte.de *Linda,Lorin
!arte.de #Kultur,und,Pop
Wissen,vor
in,100,Sekunden
kultur,und,pop
Nachgehakt
+Hammer,der,Woche
Walulis
vox,pop
blow,up
börse,vor,acht
ttt
Sketch
Gags
#Zapp
#Schätze,der,Welt
#Simplicissimus
#Makro
xpress
#Leschs,Kosmos
#alpha-Centauri
#Terra Xpress
!3SAT Terra,X
!ZDF Terra,X
!Arte.de +Karambolage
!Arte.de +Fragestunde
!Arte.de +mit,offenen,Karten
!NDR #ZAPP
+Karambolage
!ZDF #ZDF,Magazin,Royale
!ZDF #Die,Anstalt
#Grünwald
)
Guicontrol,1:,LB1,%e1%
return
;-------------------------

;==========================================================================

;--------------------------------
SENDER_2:
e1=
(Ltrim Join|
#3nach9
#Vorsicht
#Drama
#Zeit
#Geschichte
#Monitor
#Reise
#Reisen
#Welt
#Weltspiegel
#Weltreisen
#DOK
#Mythos
#Schweizer,Film
#Film
#Filmgrössen
#Spielfilm
#Kino
#Fernsehfilm
#Dokumentarfilm
#Kurzfilm
#Kurzschluss
#Menschheit
#Land
#Länder
#Doc
#Docs
#Traumziel
#Hallo
#Universum
#Terra
#heute
#Aktuell
#Aktuelles
#Aktuelles,und
#Nachrichten
#Notizen
#Reporter
#Markt
#Mex
#Recherche
#Reportage
#Wildnis
#Natur
#Wissen
#Mathe
#Simplicissimus
#NZZ
#Geo
#Magazin
#Tagesschau
#Abendschau
#Abendshow
#Show
#Satire
#Journal
#Info
#Enigma
+Stadt - Land - Kunst
+Mit offenen Karten
!3SAT
!3SAT #Kulturzeit
!3SAT #Kulturplatz
!3SAT #Tele-akademie
!3SAT #Terra X
!3SAT #Schätze,der,Welt
!3SAT #nano
!3SAT #Reise
!3SAT #Spielfilm
!3SAT #Natur
!3SAT #Esskulturen
!3SAT #Kulturdoku
!3SAT #Schweizweit
!3SAT #Musik
!3SAT #Geschichte
!3SAT #Tiere
!3SAT #3sat
!3SAT #quer
!3SAT #querbeet
!3SAT #37,Grad
!3SAT #Ab,18!
!3SAT #Buch
!3SAT #Makro
!3SAT #Scobel
!3SAT #Netz,Natur
!3SAT #Ländermagazin
!3SAT #KinoKino
!3SAT #makro
!3SAT #Wissenschaft
!3SAT #Dokumentarfilm
!3SAT #Politik
!3SAT Einstein
!3SAT Lesch
!3SAT +universum
!3SAT +Traumziel
!ARD
!ARD #3nach9
!ARD #DokThema
!ARD #Pauk
!ARD #Traumziele
!ARD #English
!ARD #Planet
!ARD #Berlin
!ARD #Zeuge,der,Zeit
!ARD #Die,Ratgeber
!ARD #Simplicissimus
!ARD #Schleswig-Holstein,Magazin
!ARD #Magazin
!ARD #Rundschau,Magazin
!ARD #BR24,Rundschau
!ARD #Rundschau
!ARD #Tagesschau
!ARD #Doku & Reportage
!ARD #Dokumentation,und,Reportage
!ARD #Fahr,mal,hin
!ARD #Film,und,Serie
!ARD #Film
!ARD #Verrückt,nach
!ARD #Trailer
!ARD #Fernsehfilm
!ARD #Filme,im,Ersten
!ARD #Spielfilm
!ARD #Kunst + Krempel
!ARD #Unterwegs,in
!ARD #Nordtour
!ARD #Zwischen,Spessart,und,Karwendel
!ARD #Viel,für,wenig
!ARD #Unsere,Geschichte
!ARD #Abenteuer
!ARD #Wir,im,Saarland
!ARD #Game,two
!ARD #Tagesschau24
!ARD #Planet,Schule
!ARD #Durch,die,Wildnis
!ARD #Wissen
!ARD #W,wie,Wissen
!ARD #Verrückt,nach,Meer
!ARD #ARTE
!ARD #MDR,Thüringen,Journal
!ARD #Unser,Land
!ARD #Einfach,genial
!ARD #Landesschau,Baden-Württemberg
!ARD #Landesschau,Baden-Württemberg +Landesschau Baden-Württemberg
!ARD #Landesschau,Rheinland-Pfalz
!ARD #Servicezeit
!ARD #Die,Nordreportage
!ARD #Reportage
!ARD #Panorama
!ARD #Doku
!ARD #Zeigt,uns,eure,Heimat
!ARD #Wilder,wilder,Westen
!ARD #NDR,Talk,show
!ARD #MDR,aktuell
!ARD #NDR,info
!ARD #info
!ARD #Brandenburg,aktuell
!ARD #aktuell
!ARD #journal
!ARD #Hessenschau
!ARD #Hallo,Niedersachsen
!ARD #Hallo
!ARD #Monitor
!ARD #Morgenmagazin
!ARD #Nordmagazin
!ARD #Mittagsmagazin
!ARD #Nachtmagazin
!ARD #DAS!
!ARD #Abendschau
!ARD #Unser,Westen
!ARD #GRIPS
!ARD #Wir,in,Bayern
!ARD #zibb
!ARD #Kontrovers
!ARD #Tele-Gym
!ARD #Die,Reportage
!ARD #rbb,Kultur
!ARD #rbb,UM6
!ARD #maintower
!ARD #Meisterküche
!ARD #Stadt - Land - Quiz
!ARD #Glaubwürdig
!ARD #Tagesschau,in,100,Sekunden
!ARD #Checker,Can
!ARD #Erlebnis,Hessen
!ARD #Gut,zu,wissen
!ARD #Alles,wissen
!ARD #extra,3
!ARD #MDR,extra
!ARD #kinokino
!ARD #Die,Tricks
!ARD #Bayern,erleben
!ARD #SWR,extra
!ARD #BR,extra
!ARD #ARD,extra
!ARD #ARD-Buffet
!ARD #Live,nach,neun
!ARD #Comedy
!ARD #Lebensretter
!ARD #Feuer,und,Pfanne
!ARD #MDR,um,2
!ARD #Schleichfernsehen
!ARD #ZAPP
!ARD #quer,mit,Christopf
!ARD #Morddeutschland
!ARD #MDR,Sachsenspiegel
!ARD #MareTV
!ARD #Planet,Wissen
!ARD #Eisenbahn-Romantik
!ARD #Weltspiegel
!ARD #ttt
!ARD #Schätze,der,Welt
!ARD #Weltreisen
!ARD #phoenix - unvergessene,Szenen
!ARD #rbb Fernsehen
!ARD #Frankenschau,aktuell
!ARD #Euroblick
!ARD #Europamagazin
!ARD #mehr/wert
!ARD #Heimatküche
!ARD #Lokalzeit,Münsterland
!ARD #Lokalzeit,aus,Aachen
!ARD #Lokalzeit,Ruhr
!ARD #Lokalzeit,Bergisches,Land
!ARD #Lokalzeit,aus,Duisburg
!ARD #Lokalzeit,aus,Düsseldorf
!ARD #Lokalzeit,aus,Dortmund
!ARD #Lokalzeit,Südwestfalen
!ARD #Lokalzeit,aus,Bonn
!ARD #Lokalzeit,OWL
!ARD #Lokalzeit,aus,Köln
!ARD #Hessen,à,la,carte
!ARD #Weltbilder
!ARD #Marktcheck
!ARD #Giraffe
!ARD #mex
!ARD #WDRforyou
!ARD #neueneinhalb
!ARD #Wissen,vor
!ARD #respekt
!ARD #Kripo,live
!ARD #Vorsicht,Verbrechen
!ARD #Zur,Sache
!ARD #Wunderschön
!ARD #Grünwald
!ARTE.DE
!ARTE.DE #Recherche
!ARTE.de +Mit,offenen,Karten
!ARTE.de +Die,ganze,Wahrheit
!arte.de #Geschichte
!arte.de #Reportage
!arte.de #Recherche +re:
!arte.de #Wissenschaft
!arte.de #Aktuelles und Gesellschaft
!arte.de #Junior
!arte.de #Hintergrund
!arte.de #Perspektivwechsel
!arte.de #Aktuelles
!arte.de #Entdeckung,der,Welt
!arte.de #Leben,anderswo
!arte.de #Kulinarik
!arte.de #Natur
!arte.de #Reisen
!arte.de #Biographien
!arte.de #Kino
!arte.de #Filme
!arte.de #Filmgrössen
!arte.de #Fernsehfilme
!arte.de #Serien
!arte.de #Arte,concert
!arte.de #Wissen kompakt
!arte.de #Gesundheit und Medizin
!arte.de #Umwelt,und,Natur
!arte.de #Kultur,und,Pop
!arte.de #Kultur
!arte.de #Weltmusik
!arte.de #Kultur News
!arte.de #Fernsehfilme und Serien - Fernsehfilme
!arte.de #Technik,und,Innovation
!arte.de +Die,Geschichte
!arte.de +xenius
!Arte.de +Karambolage
!Arte.de +Fragestunde
!ARTE.de +Arte,reportage
!ARTE.de +GEO,reportage
!ARTE.DE +Stadt,Land,Kunst
!Arte.de *Linda,Lorin
!ARTE.DE +Vox,pop
!ARTE.DE +Flick,flack
!ARTE.FR
!ARTE.pl
!Arte.pl #Nauka
!Arte.pl #Nauka,Techno
!Arte.pl #Nauka,Natura
!Arte.pl #Nauka,Medycy
!Arte.pl #Nauka,W skrócie
!Arte.pl #Odkrycia,Podano
!Arte.pl #Odkrycia
!Arte.pl #Odkrycia,Podroze
!Arte.pl #Odkrycia,Jak
!Arte.pl #Odkrycia,Przyroda
!Arte.pl #Historia
!Arte.pl #Historia,XX
!Arte.pl #Historia,cywilizacje
!Arte.pl #Historia,Wybitne
!ARTE.it
!ARTE.en
!ARTE.en #History
!ARTE.en #History,20
!ARTE.en #History,Famous
!ARTE.en #History,Civilisations
!ARTE.en #Science
!ARTE.en #Scien,techno
!ARTE.en #Scien,in,brief
!ARTE.en #Scien,Environment
!ARTE.en #Scien,Medicin
!ARTE.en #Cultur
!ARTE.en #Cultur,pop
!ARTE.en #Cultur,arts
!ARTE.en #discov
!ARTE.en #discov,food
!ARTE.en #discov,Lives
!ARTE.en #discov,Travel
!ARTE.en #discov,Planet
!ARTE.en #ARTE,Concert
!ARTE.en #Polit,Investigation
!ARTE.en #Polit,Insights
!ARTE.en #Polit,View
!ARTE.es
!BR
!BR #Mathe,zum,Anfassen
!BR #Alpha
!BR #alpha-doku
!BR #alpha-Centauri
!BR #Alpha-Thema
!BR #Alpha-Demokratie
!BR #Alpen-Donau-Adria
!BR #Space,Night
!BR #aktiv,und,gesund
!BR #Tele-Gym
!BR #Grips,Englisch
!BR #GRIPS,Deutsch
!BR #Grund,Mathematik
!BR #Natur,exclusiv
!BR #Querbeet
!BR #Schnittgut
!BR #Mathe
!BR #Mathe,für
!BR #Wissen
!BR #Doku,und,Reportage
!BR #Film
!BR #Doku
!BR #English
!BR #Campus
!BR #SMS
!BR #Reportage
!BR #Abenteuer,Wildnis
!BR #Unter,unserem,Himmel
!BR #Zoogeschichten
!BR #Bergauf-Bergab
!BR #Telek,Mathematik
!BR #Telekolleg
!BR #Abendschau
!BR #BR-Klassik
!BR #Melodien,der,Berge
!BR #Planet,Wissen
!BR #Report,München
!BR #BR,extra
!BR #Stationen
!BR #kinokino
!BR #Frankenschau
!BR #Franken,aktuell
!BR #BR24,Rundschau
!BR #Bon,courage
!BR #Länder-Menschen-Abenteuer
!BR #Kabarett
!BR #Bühnenprogram
!BR #Xenius
!BR #beta,stories
!BR #BR
!BR #Geschichten
!BR #BR,Retro
!BR #DokThema
!BR #Die,Frage
!BR #PULS,Playground
!BR #Tagesgespräch
!BR #Faszination,Wissen
!BR #Wissen
!BR #Verbrechen,auf,der,Spur
!BR #Hauptsache,gesund
!BR #Ich,mach's
!BR #Lebenslinien
!BR #Lohnt,sich,das
!BR #Klassiker,der
!DW
!DW #Projekt,Zukunft
!DW #Auf,den,Punkt
!DW #Ausfahrt
!DW #Fokus,Europa
!DW #DokFilm
!DW #REV
!DW #Made,in,Germany
!DW #Der,Tag
!DW #Shift
!DW #In,good,shape
!DW #Euromaxx
!DW #Global,3000
!DW #Auf,ein,Wort
!DW #Kultur.21
!DW #Projekt
!DW #Reporter
!DW #World Stories
!DW #Check-in
!DW #Nahaufnahme
!HR
!HR #Schrauben
!HR #Die,Ratgeber
!HR #defacto
!HR #mex
!HR #hallo,Hessen
!HR #maintower
!HR #Hessen
!HR #alle,Wetter
!HR #dings,vom,Dach
!HR #Reise-Reportagen
!HR #Mittendrin
!HR #Engel,fragt
!HR #Alles,wissen
!HR #Herkules
!HR #Tobis,Städtetrip
!HR #Doku & Reportage
!HR #Reisen
!HR #Verurteilt
!HR #Mein,Fall
!HR #Spielfilm
!HR #Gesundmacher
!HR #Serie
!HR #Wissen
!KiKa
!KiKa #TanzAlarm
!KiKa #SingAlarm
!KiKa #Mein,Bruder
!KiKa #KiKaninchen
!KiKa #PEEKs,ZOO
!KiKa #Tib
!KiKa #CheXpedition
!KiKa #Belle
!KiKa #Löwenzähnchen
!KiKa #Heidi
!KiKa #Meine,Freundin
!KiKa #Mia,and,me
!KiKa #Petronella
!KiKa #Alles,neu,für,Lina
!KiKa #Stark!
!MDR
!MDR #MDR Dok
!MDR #unterwegs
!MDR #Schau,in,meine,Welt
!MDR #MDR,Zeitreise
!MDR #Filme
!MDR #Kabarett
!MDR #MDR,aktuell
!MDR #Umschau
!MDR #MDR,Sachsenspiegel
!MDR #MDR,Thüringen,journal
!MDR #MDR,Sachen-anhalt,heute
!MDR #DEFA-Dokumentationen
!MDR #Doku
!MDR #Zeigt,uns,eure,Heimat
!MDR #Reportage
!MDR #Kripo,live
!MDR #Einfach,genial
!MDR #Lebensretter
!MDR #MDR,um,2
!NDR
!NDR #ZAPP
!NDR #Extra,3
!NDR #Die,Tricks
!NDR #NDR,info
!NDR #DAS!
!NDR #Die,Nordreportage
!NDR #Film,im,NDR
!NDR #Film
!NDR #Nordmagazin
!NDR #Hallo,Niedersachsen
!NDR #Niedersachsen,18:00
!NDR #Schleswig-Holstein,18:00
!NDR #Hamburg,Journal
!NDR #Schleswig-Holstein,Magazin
!NDR #Doku & Reportage
!NDR #NDR,Talk,Show
!NDR satire
!NDR #Unsere,Geschichte
!NDR #Treckerfahrer
!NDR #Nordtour
!NDR #Kulturjournal
!NDR #Mein,Nachmittag
!NDR #MareTV
!NDR #Weltreisen
!NDR #die,nordstory
!NDR #Markt
!NDR #Kulturjournal
!NDR #45,min
!NDR #Expedition
!NDR #Panorama,3
!NDR #Mein,Nachmittag
!NDR #Show,&,Musik
!ORF
!ORF #willkommen,ö
!ORF #Gute,Nacht,ö
!ORF #eco
!ORF #Die,Million,Show
!ORF #Thema
!ORF #Nieder
!ORF #Kärnten
!ORF #Wien
!ORF #Burgenland
!ORF #österreich
!ORF #Steiermark
!ORF #Tirol
!ORF #ZIB,1
!ORF #Nachrichten,in,einfacher
!ORF #Nachrichten
!ORF #Kultur,heute
!PHOENIX
!PHOENIX #unter,3
!PHOENIX #phoenix,parlament
!PHOENIX #phoenix,runde
!PHOENIX #phoenix,vor,Ort
!PHOENIX #phoenix,persönlich
!PHOENIX #mein,Ausland
!PHOENIX #phoenix,der,Tag
!PHOENIX #phoenix,plus
!PHOENIX #corona
!PHOENIX #Beitrag
!PHOENIX ##rosenfeld
!PHOENIX #Denken
!PHOENIX #Dokumentationen
!PHOENIX #Alles,was,Recht,ist
!PHOENIX #unter,den,Linden
!PHOENIX #presseclub
!PHOENIX #Forum
!PHOENIX #Tagesgespräch
!PHOENIX #International
!rbtv
!rbtv #3nach9
!rbtv #buten en binnen
!rbtv #Dokumentation
!rbtv #Regionalmagazin
!rbtv #buten,en,binnen,regionalmagazin
!rbtv #buten,en,binnen,|regionalmagazin
!rbtv #buten,en,binnen,um6
!rbtv #Dok & Recherche
!rbtv #Mein,erstes,mal
!rbtv #Bremer,Teller
!rbtv #How,to,Tatort
!rbtv #Retro,Filme,aus,dem,Archiv
!rbtv #Die,Mutter,aller,Talkshows
!RBB
!RBB #Unser Leben
!RBB #Brandenburg
!RBB #Aktuell
!RBB #rbb,um6
!RBB #Sandmann
!RBB #Dokumentation
!RBB #Reportage
!RBB #Film
!RBB #rbb,wissenszeit
!RBB #Abenteuer
!RBB #Schau,in,meine,Welt
!RBB #rbb,Fernsehen
!RBB #rbb24
!RBB #Abendschau
!RBB #rbb,praxis
!RBB #30,favoriten
!RBB #Ein,sommer
!RBB #Team,upward
!RBB #zibb
!RBB #Panda
!RBB #rbb spezial
!RBB #Täter
!RBB #Heimatjournal
!RBB #Abendshow
!RBB #100
!RBB #Die,rbb,reporter
!RBB #rbb,Gartenzeit
!RBB #super.markt
!RBB #Reporter
!RBB #Berlin
!RBB #Krömer
!SR
!SR #Dokumentationen
!SR #Wir,im,Saarland
!SR #SR,3 - Comedy
!SR #Saarthema
!SR #Saar,Natur
!SR #aktuell
!SR #Kabarett
!SR #Saartalk
!SR #SR
!SR #Aktuell
!SRF
!SRF #DOK
!SRF #Kassensturz
!SRF #Rundschau
!SRF #Reporter
!SRF #Tagesschau
!SRF #10,vor,10
!SRF #DOK
!SRF #Arena
!SRF #ECO
!SRF #Einstein
!SRF #NZZ,Format
!SRF #NZZ,Standpunkte
!SRF #nano
!SRF #Film
!SRF #mini,schwiiz
!SRF #SRF,3,Musik
!SRF #Grand,designs
!SRF #Gesundheit
!SRF #Archivperlen
!SRF #Börse
!SRF #Kulturplatz
!SRF #Schweizer,Film
!SRF #SRF,news,spezial
!SRF #CO2NTROL
!SRF #rec.
!SRF #Gredig
!SRF #Es,geschah,am
!SRF #Puls
!SRF #Schweiz,aktuell
!SRF #SRFglobal
!SWR
!SWR #Comedy
!SWR #Eisenbahn,Romantik
!SWR #Planet,Schule
!SWR #Planet
!SWR #Wissen
!SWR #Technik
!SWR #Medienbildung
!SWR #Kultur
!SWR #Natur
!SWR #Länder
!SWR #Ratgeber
!SWR #Geschichte
!SWR #Entdeckungen
!SWR #Politik
!SWR #Kunscht
!SWR #odysso
!SWR #Landesschau,Rheinland-Pfalz
!SWR #Landesschau,Baden-Württemberg
!SWR #Feuer,und,Pfanne
!SWR #Heimat
!SWR #SWR1,Leute
!SWR #Film
!SWR #SWR,Aktuell
!SWR #SWR,Aktuell,Baden-Württemberg
!SWR #SWR,Aktuell,Rheinland-Pfalz
!SWR #Sofa-Richter
!SWR #lesenswert
!SWR #Tele-Akademie
!SWR #SWR - Die Wahl
!SWR #Fahr,mal,hin
!SWR #Debüt
!SWR #Walulis
!SWR #Landesart
!SWR #Show
!SWR #Spätschicht
!SWR #Vorsicht,Verbrechen
!SWR #Zur,Sache
!WDR
!WDR #Aktuelle,Stunde +angeklickt
!WDR #WDRforyou
!WDR #Wunderschön
!WDR #WDR
!WDR #WDR.DOK
!WDR #Ohjaaa
!WDR #Fernsehfilm
!WDR #Wir
!WDR #Viel,für,wenig
!WDR #Markt
!WDR #Servicezeit
!WDR #Westart
!WDR #Hier,und,heute
!WDR #Lokalzeit
!WDR #Ausgerechnet
!WDR #Unterhaltung
!WDR #Job,im,Gepäck
!WDR #Unser,Westen
!WDR #Aktuelle,Stunde
!WDR #Planet,Wissen
!WDR #Quarks
!WDR #Land,und,lecker
!WDR #Heimathäppchen
!ZDF
!ZDF #PANORAMA
!ZDF #Terra,X
!ZDF #ZDFinfo
!ZDF #ZDFinfo,Doku
!ZDF #ZDFinfo +Täterjagd
!ZDF #ZDFinfo +Ermittler
!ZDF #heute
!ZDF #heute,journal
!ZDF #heute,journal,update
!ZDF #auslandsjournal
!ZDF #ZDFheute,live
!ZDF #ZDF.Reportage
!ZDF #Panorama
!ZDF #Kultur
!ZDF #Kulturzeit
!ZDF #Musik
!ZDF #3SAT
!ZDF #3SAT Kulturdoku
!ZDF #Sketch-History
!ZDF #Leschs Kosmos
!ZDF #Spielfilm-Highlights
!ZDF #Spielfilm
!ZDF #ZDF-History
!ZDF #heute 19:00 Uhr
!ZDF #logo!
!ZDF #Löwenzahn
!ZDF #heute - in Europa
!ZDF #heute - in Deutschland
!ZDF #nano
!ZDF #heute-show
!ZDF #ZDF-Morgenmagazin
!ZDF #ZDF-Mittagsmagazin
!ZDF #Panorama
!ZDF #Nachrichten
!ZDF #Volle Kanne
!ZDF #Politik
!ZDF #Besonders,normal
!ZDF #maybrit,illner
!ZDF #drehscheibe
!ZDF #Bares,für,Rares
!ZDF #Menschen - das Magazin
!ZDF #Magazin
!ZDF #ZDF,Magazin,Royale
!ZDF #Planet,e
!ZDF #Checkpoint
!ZDF #scobel
!ZDF #Terra,Xpress
!ZDF #Frontal,21
!ZDF #Frontal
!ZDF #WISO
!ZDF #Kunst/design
!ZDF #ZDFzeit
!ZDF #plan,b:
!ZDF #Planet
!ZDF #Die,Anstalt
)
Guicontrol,1:,LB1,%e1%
return
;===================== END SCRIPT LB_LV_MEDIATHEK =================================

Return to “Skripte und Funktionen”

Who is online

Users browsing this forum: No registered users and 98 guests