[HN Gopher] Show HN: I made an extension to watch Netflix films ... ___________________________________________________________________ Show HN: I made an extension to watch Netflix films with screenplays in sync Author : justEgan Score : 140 points Date : 2020-08-16 14:55 UTC (8 hours ago) (HTM) web link (screenplaysubs.com) (TXT) w3m dump (screenplaysubs.com) | maydemir wrote: | It's not for me but it's a great extension! | justEgan wrote: | much appreciated! | [deleted] | [deleted] | kyle_martin1 wrote: | This cool. I did this exact thing in 2013 with DistanceFlix.com | ryanisnan wrote: | Really cool! It seems like the data synchronization is done | manually? | justEgan wrote: | There's some automation going on. Check out my reply to one of | the skeptical comments! | Gaelan wrote: | Where do you get the screenplays, out of curiosity? | abathur wrote: | I wondered this, too. Also--which draft, if there's more than | one? Is it like, "latest available", or "easiest to parse", or | do you have a policy like _only shooting scripts_? | adishy wrote: | not OP but I imagine from something like this | https://www.imsdb.com | anotheryou wrote: | I don't use netflix and prefer subtitles, but it looks nice! | | Maybe you could implement smooth scroll and some sort of an | overlay mode. | justEgan wrote: | Thank you, and that's a great idea I've considered for future | releases. More specifically, the layout presented in this video | looks ideal: https://www.youtube.com/watch?v=HybzbDBF7HQ. Where | the screenplay can replace the letterbox at the bottom. | | One of the reasons we decided not to implement that for now is | to provide a bigger room for error since our algorithm is still | not perfect. Sometimes the extension choose to focus on 1 or 2 | sentences next to the accurate dialogue. Having an entire | viewport height to show the screenplay means even if some | inconsistencies occur, the user may still be able to see the | accurate dialogue. | anotheryou wrote: | makes sense :) | | yea I like this example better, but thought of an actual | overlay. | mapgrep wrote: | Very cool. I have been fascinated by this whole area of what I | call "media stapling" since I spent about two years obsessively | watching the Big Lebowski as a stress reliever. This film has no | commentary track so people have recorded their own and you have | to sort of just manually sync up the mp3. I also do a lot of | interview transcription where text is stapled to audio. | | Anyway I see you have a comment here where you say you use the | closed captions to figure out where to staple in the script. | Would be cool to be able to staple in arbitrary other media - | text audio video whatever. | Animats wrote: | Oh, someone has to manually time the movie. They only support | about six movies. I expected that it would use closed captioning | data, do the sync automatically, and support far more titles. | walterbell wrote: | We had seamless synchronized open-standard multimedia (W3C | SMIL) in 2000 but not 2020. There are now attempts to bring | back a subset via epub standards. Meanwhile, most Internet | traffic is now video and there's no standard mechanism to | provide contextual timed commentary and other annotations. | justEgan wrote: | The syncing is done automatically, at least mostly. | | TL;DR: ScreenplaySubs fetches the subtitles from Netflix, | parses the PDF-formatted screenplays into JSON, and syncs by | calculating the sentence similarities between subtitle and | screenplay dialogue. | | In particular, we use the Universal Sentence Encoder for | deciding whether a subtitle matches with a screenplay dialogue. | If a screenplay dialogue is similar enough with the subtitles, | the former will be tagged with the timestamp provided by the | latter. | | A lot of the underlying problems presented with each step | sounds deceptively simple at first, but turns out to be quite | challenging and fun to research. E.g. Parsing PDFs in general | are not straightforward (https://filingdb.com/b/pdf-text- | extraction), and there's only a handful of resources on parsing | PDF screenplays beside a handful of research papers (https://gi | thub.com/drwiner/ScreenPy/blob/master/INT17_screen...), which | lead us to create our own open source repo for this | (https://github.com/SMASH-CUT/screenplay-pdf-to-json). | | Our screenplay-pdf-to-JSON converter is able to contain all | dialogues, transitions, actions within a particular screenplay | scene. With this, we're treating scenes as atomic, being able | to detect changes in scene ordering based on the tagged scene | timestamps. This also means if dialogues are swapped within a | scene in the movie, there will be some syncing inconsistencies. | | Some scenes do have little to no dialogues, which would pretty | much cause the extension to work on a best-effort basis. E.g. | The opening scene of There Will Be Blood has very minimal if | not no dialogue at all. This is the case where I need to jump | in and sync up the screenplay manually. OTOH, the opening scene | of Inglourious Basterds will work very well, since there are | tons of dialogues in it. This is the reason why I can't just | add movies and instantly upload it to the site. | | Would you be interested for me to get into more details? I was | thinking of writing a series of technical blog posts if there | are enough interests! | smnrchrds wrote: | > _ScreenplaySubs fetches the subtitles from Netflix_ | | How is this done? Isn't everything on Netflix protected by | DRM? | justEgan wrote: | You can fetch them by recording the network requests, as | explained in this repo: | https://github.com/isaacbernat/netflix-to-srt | walterbell wrote: | Please blog about the details! Are you following the W3C work | on synchronized multimedia? | | https://github.com/w3c/sync-media-pub | | https://www.w3.org/community/sync-media-pub/ | AriaMinaei wrote: | I'd definitely be interested to read more about the tech. I | wonder if it can be used to time-sync audiobooks to their | ebooks counterparts. | | This is my use-case: | | Kindle has a feature called "Audible Narration." You buy a | Kindle book, and the Audible audio book, which allows you to | play the audio book while it highlights the words on the | Kindle book as you're listening. This effortless switching | between audio and text enables some interesting reading | behavior. Certain books become easier to read. Note taking | also gets much easier (Highlighting text is much easier than | bookmarking timestamps on an audio book). | | The problem is, getting your annotations and highlights and | other data out of Kindle is very difficult, because Kindle | does not have a public API. Same with Audible. | | So I'm thinking of emulating Audible narration with a hybrid | ebook/audiobook reader app. The ebook would be a simple HTML | page (converted from epub, formatting be damned) and a simple | audio player. As the audio plays, the HTML page would scroll | and words would be highlighted. | | Challenge is to timestamp tag the HTML with the audio track. | I'd guess I could TTS the audio track and then somehow diff | the generated text with the epub content. Given that some | audiobooks are abridged, some read the footnotes on each | mention, and some explain the visuals, I would assume diffing | would not be very straightforward. | | Do you know of any solutions I could look into? | monadic2 wrote: | Is there any support for querying actual timestamp of the | video? | abathur wrote: | Interesting work. Glad you've been able to chart a path | through some tedious problems. | | Over the last several years I've imagined a lot of projects | (both serious utilities, and the absurd/artistic) in roughly | the territory you're exploring... | | - For my MFA thesis (2012) I used plaintext (thankfully, | though they had plenty of their own problems) transcripts of | a TV show as a corpus for generating poems from, and at the | time I thought it would be an interesting follow-up project | to turn them back into video clips. | | - Mapping film quotes/citations back to the script/film and | accuracy-checking movie quotes. (can imagine both of these | being useful for film forums like the movies/sci-fi stack- | exchange sites). | | - Generating script-cuts of movies that re-order/drop scenes | and just show the printed script on-screen where scenes were | cut. | | - A film-analysis/screenwriting-class sort of interface | oriented around reading a segment and then playing it (could | be particularly interesting when there happen to be multiple | known script drafts?) | | - Re-constructing a character monologue from lines spoken by | an actor that turned down the role. | | - Generating a super-cut of actor X saying Y. | | - Generating focused cuts of a film that cover, say, every | scene a given character does/doesn't appear in, or every | scene that mentions X. | AriaMinaei wrote: | This is great! | | Also check out LanguageLearningWithNetflix [0] which lets you | watch videos with two subs in different languages, displays the | subs as HTML so select/copy/define will work (and it has a built- | in dictionary too). It also allows you to quickly jump to the | beginning of each sentence so you can hear it multiple times, | which helps improve your listening skills. For me, it has been a | fun way to improve my German. | | On a side-note, please notice how none of these great features | are available to mobile users. iOS for example, is technically | perfectly capable of supporting this kind of extensibility, but | the App Store model limits it to a few narrow and specific use- | cases. | | [0] https://languagelearningwithnetflix.com | leppr wrote: | LLN is good but seems to favor anti-features like disabling | text selection on subtitles (except in the side pane) in order | to push their in-house paid-for features. | | Regarding your comment about extensibility, this applies to | mostly every software platform other than the web, | unfortunately. And even there, it feels like a happy accident. | There's much work to be done in this area. | davidzweig wrote: | Text selection is a fiddly CSS issue that Ognjen didn't get | around to fixing yet, it's not about pushing users towards | payment. There are two paid features (saving words and | machine translation.), everything else is free. About 3500 | paying users at $3.50/mo after taxes and fees (from 800k | total users), but before paying for servers/APIs, if you are | curious. | | [ Dear Netflix, let's be friends. Me and Og can do a lot with | little, but there's a lot of work to do still, and we can go | further, faster, together. Can we get a test account? | Regards, David. languagelearningextension@gmail.com ] | [deleted] | outadoc wrote: | > iOS for example, is technically perfectly capable of | supporting this kind of extensibility, but the App Store model | limits it to a few narrow and specific use-cases | | Injecting third-party code into a third-party app that has to | deal with DRM sounds like a recipe for disaster. | hombre_fatal wrote: | LLWN is useful just for the a/s/d shortcuts like the ability to | hit "S" to repeat a sentence until you understand it. | davidzweig wrote: | Thanks for the kind words. :) | WilTimSon wrote: | App Store is not really the best environment for niche apps, I | suppose. What about Android? I'd presume F-Droid could host | something like this even if the Play Market doesn't? | qwertox wrote: | It would be interesting to have a TTS synth output the screenplay | on another card, one which could be used by a blind person to | plug some headphones in (not covering all the sound, in order to | hear the environment and speeches). Maybe even optionally disable | the spoken words, and only output the scene description, and emit | a beep on a cut. | | The demo on the page looks great, and this is stuff which should | be automatable at some point by AI. | [deleted] | crazygringo wrote: | Very interesting! | | Fun tidbit: for TV actors, regularly reading pilot scripts and | then watching the produced pilot for comparison is a _huge_ | common educational technique. You get to imagine what kind of | acting and directorial choices you 'd make, and then see what was | actually done. Often times you'll realize you had totally | misinterpreted what a scene was even about. | | It's also fun to see how every script is filled with lines that | are "unactable" -- there's just no way any real person would ever | say anything like that. Then nine times out of ten, those lines | are cut from the final product, because even the best actors | couldn't make them work. | justEgan wrote: | Fascinating! It can also be the other way around, where an | actor miraculously interpreted an unactable script well. E.g. | Joaquin Phoenix delivered "It vexes me. I am vexed." in | Gladiator quite well. | bartread wrote: | Nitpick, but I think it was "It vexes me. I'm terribly | vexed." Otherwise agree with you though. It's not something | you imagine someone saying in the course of normal, or even | quite abnormal, conversation, but Joaquin Phoenix pulled it | off in spades - sounded totally natural, and entirely fit | with the character of Commodus. | colmvp wrote: | I feel like Seinfeld has a ton of those. Jason Alexander, | Julia Louise-Dreyfus, and Michael Richards had a lot of | moments where their acting ability carried what would | otherwise be a mundane script. | justEgan wrote: | ScreenplaySubs is a browser extension for Netflix that syncs up | movies with screenplays, displaying them side by side. It's like | having a subtitle that provides more insights to your films. | | Demo: https://vimeo.com/447986440 | tyingq wrote: | I really like the Amazon Prime Video "X ray" feature that shows | the actors, bios, etc, in the current scene. It's odd to me | that other services like Netflix don't have something similar. | sigjuice wrote: | Most likely other services don't do this because of patents. | smegger001 wrote: | and they don't own IMDB where much of this information is | already organized into a usable state. ___________________________________________________________________ (page generated 2020-08-16 23:00 UTC)