stefansundin / privatkopiera

:vhs: Tillägg till Chrome och Firefox för att privatkopiera enklare från nätet.
https://stefansundin.github.io/privatkopiera/
GNU General Public License v3.0
84 stars 17 forks source link

TV4 Undertexter #10

Open bjoh5107 opened 6 years ago

bjoh5107 commented 6 years ago

Nu funkar TV4-play åter, men tidigare var textade program, exempelvis "Badhotellet", uppdelade i två strömmar - en med själva själva programmet och en med undertexten (i form av en .srt fil). Nu hittar jag bara huvudprogrammet (strömmen "hls"), men får inte med undertexten.

stefansundin commented 6 years ago

Jag tittade lite på det lite igår. Det är nu svårare att få ned undertexterna. De är uppdelade i delar av 60-sekunder var. Jag lyckades inte få ffmpeg att ladda ned alla och sätta ihop dem.

Om någon kan komma på nåt sätt att få ffmpeg (eller något annat program) att klippa ihop alla undertexter till en fil så vore det toppen!

stefansundin commented 6 years ago

Nu testade jag precis detta, och ffmpeg laddar faktiskt ned alla filer (måste ha gjort något fel igår). Men det är fortfarande ett problem med tidkoderna, alla hamnar inom de första sekunderna av någon anledning.

ffmpeg -i 'https://lbs-usp-hls-vod.cmore.se/vod/271b1/n5goccmuyju(3961520_ISMUSP).ism/n5goccmuyju(3961520_ISMUSP)-textstream_swe=3000.m3u8' 3961520.srt
antenngubben commented 6 years ago

Har tittat lite på problemet med textningen på TV4. Om man tittar på varje enskild fil med textning så finns det en global tidskod och en lokal tidskod, troligtvis måste man ladda ner alla filer först och efter det skapa undertextfilen med ett ett separat program.

Sopor commented 6 years ago

Det finns en växel som är -fix_sub_duration men tyvärr blir det inte bra ändå :(

2
00:00:00,040 --> 00:00:00,080
Jag är här med min fästmö och
hennes föräldrar. De vet inget.

3
00:00:00,080 --> 00:00:00,120
Ja, han skickade det till mig.
Det har jag inte berättat.

4
00:00:00,120 --> 00:00:00,160
Jag vill gärna prata lite med er.

5
00:00:00,160 --> 00:00:00,200
Det vet jag inte! Han är medvetslös.
hamkg commented 6 years ago

Har rotat runt en del efter en lösning på detta problem och enda fungerande alternativet tycks vara programmet m3u8x som klarar att hämta alla webvtt-filer och sätta ihop dem till en srt-fil. Har testat det en gång och då var också synkningen helt OK. Dock verkar m3u8x bara finnas för Windows (går inte att köra under wine i Linux) och kräver dessutom att Chrome finns installerad. Alltså är det tekniskt möjligt, men om denna lösning kan integreras i andra program som privatkopiera eller svtplay-dl är en annan femma.

Bofinken commented 5 years ago

Jag ser att subtitle fortfarande saknas på tv4 program både för privatkopiera och UWTD. Är något på g eller får man försöka labba själv med m3u8x? Om det bara är att det kommer flera srt filer typ för varje paus så kan man ju sammanfoga dessa själv.

Sopor commented 5 years ago

svtplay-dl (senaste master) tar ner undertexterna på TV4 och den fungerar både i Windows, Mac och Linux

antenngubben commented 5 years ago

Har nu tittat vidare på problemet med texterna på TV4. Skapade ett program i Pascal som laddar ner alla delfilerna och sen sätter ihop dom. Det finns två tidkoder att ta hänsyn till, den första är den som som står direkt efter MAP=MPEGTS: detta värde delar man med 90000 då får man fram hur många sekunder in i filmen man är sen får man lägga till tiderna som står över textningen. Jag har aldrig programmerat något tillägg till någon webläsare och vet ej hur krångligt det är att få till det, men med Pascal var det inte några som helst problem. m3u8x funkar bra med, men eftersom jag kör Linux så fick jag ta tag i problemet på egen hand. Glömde att nämna en sak, den första textfilen börjar på 90000 men är i själva verket 0, så innan man delar med 90000 får man dra ifrån 90000 från värdet som står efter MPEGTS:

hamkg commented 5 years ago

Med all respekt för antenngubbens arbete så är nog ändå Sopors tips om att hämta undertexten med svtplay-dl det smidigaste för Linuxanvändare. Jag har dock haft problem att hämta program från tv4play med svtplay-dl (ljudet följer inte alltid med). Jag hämtar därför programmet med privatkopiera och sedan undertexten (enbart den) i svtplay: svtplay-dl -S --force-subtitle https://www.tv4play.se... Som det står i terminalfönstret tar det en stund, uppemot 60 sekunder, innan programmet konverterat till en sammanhängande .srt-fil. Det smidigaste vore förstås om privatkopiera hämtade undertexten direkt, men detta är smidigt nog.

Sopor commented 5 years ago

@hamkg om du använder ffmpeg 4.0 eller högre ska även ljudet fungera med svtplay-dl ...

hamkg commented 5 years ago

@Sopor ja, jag har gissat att det är ffmpeg som är boven. Slackware kör fortfarande 3.4.6. Det går att installera 4.x vid sidan av men då måste jag trixa så att svtplay-dl länkar till rätt version...

SYSophie commented 5 years ago

Jag ser att subtitle fortfarande saknas på tv4 program både för privatkopiera och UWTD. Är något på g eller får man försöka labba själv med m3u8x? Om det bara är att det kommer flera srt filer typ för varje paus så kan man ju sammanfoga dessa själv.

UWTD har haft stöd för undertexter från på tv4play igen sedan 8:e September 2018 - Länk. Så om du inte kan hämta undertexter m.h.a UWTD så kör du @Bofinken förmodligen en föråldrad version.

Ber dig att följa uwtd.me och dess forum.

Med vänlig hälsning, S.Y-Sophie, Moderator på UWTD.

SYSophie commented 5 years ago

@stefansundin då privatkopiera inte har stöd för segmenterade WEBVTT undertexter kanske det är värt att kika på följande alternativ att hämta följande icke-segmenterade undertexter.

Exempel manifest till segmenterat manifest: https://lbs-usp-hls-vod.cmore.se/vod/41624/tme3g3tbnki(11990130_ISMUSP).ism/tme3g3tbnki(11990130_ISMUSP)-textstream_swe=3000.m3u8

Exempel enstaka segment: https://lbs-usp-hls-vod.cmore.se/vod/41624/tme3g3tbnki(11990130_ISMUSP).ism/tme3g3tbnki(11990130_ISMUSP)-textstream_swe=3000-1.webvtt

Exempel av fullständig WEBVTT (ICKE segmenterad) - Detta kanske är lättare att implementera för privarkopiera för att ge support för undertext nerladdning. https://lbs-usp-hls-vod.cmore.se/vod/41624/tme3g3tbnki(11990130_ISMUSP).ism/tme3g3tbnki(11990130_ISMUSP)-textstream_swe=3000.webvtt

Observera att dessa undertexter inte finns listade i någon API eller manifest, så det man får göra är parse:a från HLS-manifestet.

Notera att dessa undertexter stundtals innehåller multipla insättningar, detta beror på att dessa är ihopsatta av de segmenterade undertexterna.Insättningarna är överlappande och ger en korrekt undertext, dock blir undertexten något tyngre. Det går att tabort dessa multipla insättningar bla. m.h.a SubtitleEdit.

Referenser: https://github.com/retrospect-addon/plugin.video.retrospect/issues/1188 https://github.com/spaam/svtplay-dl/issues/1133 https://github.com/spaam/svtplay-dl/issues/1050

Med vänlig hälsning, S.Y-Sophie, Mod @ UWTD.me

Lunarwalker60 commented 4 years ago

Hej på er! Jag gick med för att kunna söka hjälp ang textningen på TV4 Play. Jag har jobbat fram ett "GUI" i Excel som fungerar väl för att ladda ner upp till 10 streams samtidigt. För SVT funkar både video & text perfekt men för TV4 funkar bara videon. Har spanat runt och läst vad som finns om detta men jag är tyvärr inte så bevandrad i att "parsea manifest" o dylikt.

Kommandot: ffmpeg -i "https://lbs-usp-hls-vod.cmore.se/vod/f299e/dehanqsg3yf(12514045_ISMUSP).ism/dehanqsg3yf(12514045_ISMUSP).m3u8" -acodec copy -vcodec copy -absf aac_adtstoasc "Hamilton del 8.mp4" fungerar för video men följande fungerar inte för text: ffmpeg -i "https://lbs-usp-hls-vod.cmore.se/vod/f299e/dehanqsg3yf(12514045_ISMUSP).ism/dehanqsg3yf(12514045_ISMUSP)-textstream_swe=3000.m3u8" "12514045.srt"

Output: [https @ 044b27e0] HTTP error 400 Bad Request https://lbs-usp-hls-vod.cmore.se/vod/f299e/dehanqsg3yf(12514045_ISMUSP).ism/deha nqsg3yf(12514045_ISMUSP)-textstream_swe=3000.m3u8: Server returned 400 Bad Reque st

Kör kommandot direkt i Win 7 cmd-konsol. Ursäkta min bristande förmåga att formatera texten på ett sammanhängande vis, newbie här som sagt. Om någon kan ge mig en fingervisning om hur jag skall få hem texten, hel eller i segment så att jag har nåt att jobba med så kan jag mangla filerna och komma fram till ett automatiserat förfarande.

SYSophie commented 4 years ago

ffmpeg -i "https://lbs-usp-hls-vod.cmore.se/vod/f299e/dehanqsg3yf(12514045_ISMUSP).ism/dehanqsg3yf(12514045_ISMUSP)-textstream_swe=2000.webvtt" "12514045.srt"

@Lunarwalker60 det kan vara bra att avläsa innehållet i m3u8-manifestet då det där anges paths och då hade man sett att det inte är 3000 utan 2000 för just denna video som gäller.

Lunarwalker60 commented 4 years ago

Hej hej!

Nu plötsligt har ffmpeg lyckats sätta ihop textstreamen med stigande start-tider men jag får bara hem ca 17 av 42 minuter.

Följande rapport från ffmpeg: Input #0, webvtt, from 'https://lbs-usp-hls-vod.cmore.se/vod/f299e/dehanqsg3yf(1 2514045_ISMUSP).ism/dehanqsg3yf(12514045_ISMUSP)-textstream_swe=2000.webvtt':   Duration: N/A, bitrate: N/A     Stream #0:0: Subtitle: webvtt Output #0, srt, to '12514045.srt':   Metadata:     encoder         : Lavf56.40.100     Stream #0:0: Subtitle: subrip (srt)     Metadata:       encoder         : Lavc56.47.100 srt Stream mapping:   Stream #0:0 -> #0:0 (webvtt (native) -> subrip (srt)) Press [q] to stop, [?] for help size=      19kB time=00:17:57.04 bitrate=   0.1kbits/s video:0kB audio:0kB subtitle:10kB other streams:0kB global headers:0kB muxing ov erhead: 81.687767%

Vad menar ni med manifest? För mig är det en innehållsförteckning och det kan ju iofs stämma men hur kopplar jag det till kommandot jag får att jobba med från Privatkopiera?

Lunarwalker60 commented 4 years ago

Finns det något i det här som jag kan mata ffmpeg med för att hjälpa till

EXTM3U

EXT-X-VERSION:4

#

Created with Unified Streaming Platform(version=1.9.5)

AUDIO groups

EXT-X-MEDIA:TYPE=AUDIO,GROUP-ID="audio-aacl-128",NAME="audio",AUTOSELECT=YES,DEFAULT=YES,CHANNELS="2",URI="dehanqsg3yf(12514045_ISMUSP)-audio=128000.m3u8"

SUBTITLES groups

EXT-X-MEDIA:TYPE=SUBTITLES,GROUP-ID="textstream",NAME="Swedish",LANGUAGE="sv",AUTOSELECT=YES,DEFAULT=YES,URI="dehanqsg3yf(12514045_ISMUSP)-textstream_swe=2000.m3u8"

variants

EXT-X-STREAM-INF:BANDWIDTH=346000,CODECS="mp4a.40.2,avc1.4D400D",RESOLUTION=384x216,FRAME-RATE=25,VIDEO-RANGE=SDR,AUDIO="audio-aacl-128",SUBTITLES="textstream",CLOSED-CAPTIONS=NONE

dehanqsg3yf(12514045_ISMUSP)-video=202512.m3u8

EXT-X-STREAM-INF:BANDWIDTH=623000,CODECS="mp4a.40.2,avc1.4D401E",RESOLUTION=640x360,FRAME-RATE=25,VIDEO-RANGE=SDR,AUDIO="audio-aacl-128",SUBTITLES="textstream",CLOSED-CAPTIONS=NONE

dehanqsg3yf(12514045_ISMUSP)-video=463730.m3u8

EXT-X-STREAM-INF:BANDWIDTH=826000,CODECS="mp4a.40.2,avc1.4D401E",RESOLUTION=768x432,FRAME-RATE=25,VIDEO-RANGE=SDR,AUDIO="audio-aacl-128",SUBTITLES="textstream",CLOSED-CAPTIONS=NONE

dehanqsg3yf(12514045_ISMUSP)-video=654645.m3u8

EXT-X-STREAM-INF:BANDWIDTH=1138000,CODECS="mp4a.40.2,avc1.4D401F",RESOLUTION=1024x576,FRAME-RATE=25,VIDEO-RANGE=SDR,AUDIO="audio-aacl-128",SUBTITLES="textstream",CLOSED-CAPTIONS=NONE

dehanqsg3yf(12514045_ISMUSP)-video=949023.m3u8

EXT-X-STREAM-INF:BANDWIDTH=1585000,CODECS="mp4a.40.2,avc1.64001F",RESOLUTION=1280x720,FRAME-RATE=25,VIDEO-RANGE=SDR,AUDIO="audio-aacl-128",SUBTITLES="textstream",CLOSED-CAPTIONS=NONE

dehanqsg3yf(12514045_ISMUSP)-video=1371186.m3u8

EXT-X-STREAM-INF:BANDWIDTH=2584000,CODECS="mp4a.40.2,avc1.640028",RESOLUTION=1920x1080,FRAME-RATE=25,VIDEO-RANGE=SDR,AUDIO="audio-aacl-128",SUBTITLES="textstream",CLOSED-CAPTIONS=NONE

dehanqsg3yf(12514045_ISMUSP)-video=2312996.m3u8

EXT-X-STREAM-INF:BANDWIDTH=3878000,CODECS="mp4a.40.2,avc1.640028",RESOLUTION=1920x1080,FRAME-RATE=25,VIDEO-RANGE=SDR,AUDIO="audio-aacl-128",SUBTITLES="textstream",CLOSED-CAPTIONS=NONE

dehanqsg3yf(12514045_ISMUSP)-video=3534065.m3u8

variants

EXT-X-STREAM-INF:BANDWIDTH=132000,CODECS="mp4a.40.2",AUDIO="audio-aacl-128",SUBTITLES="textstream"

dehanqsg3yf(12514045_ISMUSP)-audio=128000.m3u8

keyframes

EXT-X-I-FRAME-STREAM-INF:BANDWIDTH=27000,CODECS="avc1.4D400D",RESOLUTION=384x216,URI="keyframes/dehanqsg3yf(12514045_ISMUSP)-video=202512.m3u8"

EXT-X-I-FRAME-STREAM-INF:BANDWIDTH=62000,CODECS="avc1.4D401E",RESOLUTION=640x360,URI="keyframes/dehanqsg3yf(12514045_ISMUSP)-video=463730.m3u8"

EXT-X-I-FRAME-STREAM-INF:BANDWIDTH=87000,CODECS="avc1.4D401E",RESOLUTION=768x432,URI="keyframes/dehanqsg3yf(12514045_ISMUSP)-video=654645.m3u8"

EXT-X-I-FRAME-STREAM-INF:BANDWIDTH=126000,CODECS="avc1.4D401F",RESOLUTION=1024x576,URI="keyframes/dehanqsg3yf(12514045_ISMUSP)-video=949023.m3u8"

EXT-X-I-FRAME-STREAM-INF:BANDWIDTH=182000,CODECS="avc1.64001F",RESOLUTION=1280x720,URI="keyframes/dehanqsg3yf(12514045_ISMUSP)-video=1371186.m3u8"

EXT-X-I-FRAME-STREAM-INF:BANDWIDTH=307000,CODECS="avc1.640028",RESOLUTION=1920x1080,URI="keyframes/dehanqsg3yf(12514045_ISMUSP)-video=2312996.m3u8"

SYSophie commented 4 years ago

Från huvud manifestet kan du få ut path till textstream och därefter modifiera ändelsen som jag beskrivit i detta inlägget Länk.

Det är ju dock lämpligt att som jag tidigare skrev att man avläser från huvud manifestet vad undertexten har för path @Lunarwalker60

Edit: Jag ser att ffmpeg gör det dåligt att hämta suben och outputar en 17min lång text. Föreslår att du öppnar texten i en webbläsare alt. hämtar med typ wget eller liknande och därefter konverterar med Subtitleedit för RAW-filen av webvtt-länken innehåller den fullständiga texten. (Antar att ffmpeg missuppfattar något i texten)

Den som ställer till det för ffmpeg är att man har en tom rad i början av nästa que detta är felaktig formatering i webbvtt och tolkas som slut av texten av ffmpeg.

Note: Hade ju varit nice om Bonnierbroadcasting slutade producera felaktig HLS-strömmar och dåligt formaterade undertexter.

Lunarwalker60 commented 4 years ago

Bonnierbroadcasting gör väl vad de kan för att man skall tvingas se reklamen. :-( När jag började ta hem strömmar från TV4 Play fungerade allt bra förutom textningen, som sagt. Underligt nog så kunde jag efter detta se avsnitten utan reklam genom att välja dem igen! Oftast är textningen ingen dealbreaker men när det pratas mycket tyska, franska eller ryska blir det jobbigt. Jag traggar vidare lite men hoppas att någon som är mer bevandrad hittar någon bra lösning som går att automatiseras.

Sopor commented 4 years ago

@Lunarwalker60 Det finns ju program som tar ner TV4:as undertexter. Det finns tillägg till Kodi med.

SYSophie commented 4 years ago

@Lunarwalker60 gör vad för reklamen? Att de lägger in en tom rad i undertexten? Nej. Det är felaktig formatering av undertexten. Och följer inte WebVTT standarden.

Det finns redan program utöver privatkopiera som kan hämta undertexterna. svtplay-dl,uwtd, retrospect osv. uwtd & retrospect nyttjar webbvtt medan svtplay-dl tar segmenterade primärt. Samtliga av dessa har automatiserat hämtningen av undertext.

Vet inte riktigt vad du väntar på. Jag har handlett dig i hur WebVTT hämtas genom uwtd & retrospect. Och nu även gett dig fler alternativ på program som kan hämta det.

Reklamen kan hindras med rätt inställningar i adblockers etc alternativt att man laddar hem avsnitten.

Lunarwalker60 commented 4 years ago

Nu har jag krystat fram ett GUI för SVT Play & TV4 Play. Detta med klassisk VB6 och i form av en fil: PCopy.exe Om någon vill testa så maila mig. OBS! Jag använder klassisk INI-fil för att inte skräpa ner registret i windows.

OBS! Skapa mapparna innan programmet startas - läs nedan ordentligt!

Väldigt viktigt att man väljer inställningar för att ange: Enhet (D:) valfri tillgänglig enhet Målsökväg: Där hemladdade filer läggs (under vald enhet) CMD-sökväg: Där temporära cmd-filer ligger (under vald enhet) Trash-sökväg: Dit skräpfiler flyttas (under vald enhet) (Jag raderar alla filer genom överskrivning 37 ggr innan dom tas bort från filsystemet, dock med ett separat program som inte inte ingår i detta projekt.) Antal samtidiga filer: 1 till 10 Antal sekunder mellan uppdateringar av GUI: 3 (lämpligt)

Sopor commented 4 years ago

Jag förstår inte vad ni ska ha dessa GUI till? Textbaserat är ju 100 gånger smidigare om man vill göra script och ladda ner många avsnitt eller köra flera svtplay-dl samtidigt. svtplay-dl första-avsnittet andra-avsnittet tredje-avsnittet och sen laddas de ner en efter en.

Lunarwalker60 commented 4 years ago

Alla är kanske inte så bekanta med att skriva skript och om man vill sätta upp nedladdning av de senaste avsnittet av fem olika serier - med undertexter, kan det vara smidigt att bara klicka lite och låta det sköta sig själv. Jag kombinerar ffmpeg & svtplay-dl i samma app (för TV4). Privatkopiera är såklart en grundförutsättning för detta. Min "app" har sina begränsningar eftersom jag bara har tillgång till VB6 och är för gammal att lära om till nya verktyg. Klara problem att installera på Win 10. -- Sent from my Android phone with mail.com Mail. Please excuse my brevity.On 2020-03-27, 15:25 Sopor notifications@github.com wrote:

Jag förstår inte vad ni ska ha dessa GUI till? Textbaserat är ju 100 gånger smidigare om man vill göra script och ladda ner många avsnitt eller köra flera svtplay-dl samtidigt.

svtplay-dl första-avsnittet andra-avsnittet tredje-avsnittet och sen laddas de ner en efter en.

—You are receiving this because you were mentioned.Reply to this email directly, view it on GitHub, or unsubscribe.

Kajji08 commented 2 years ago

Har det hittats en lösning på problemet att vissa TV4Play filer får "stutters"?