For the few geeky people among the visitors to this website who
wonder about certain aspects of how the ADP website is maintained, this
page is for you! This page was last updated on November 3, 2024, by webmaster Fred Brack.
Basic Facts
- My involvement with this website began in 2003 when I took over
as webmaster of the new Audio Description International website.
The American Council of the Blind offered me and the website a new
home in May 2010 when it was renamed the Audio Description Project
and moved to the ACB website.
- With the exception of two pages, all of the content of this
website is maintained by one person: me, Fred Brack, the
webmaster. (The exceptions are the Tech page and the Daily TV
Listing page.)
- While I used to use the free (and unsupported) product
Microsoft Expression Web 4 to organize and publish the pages, in mid-2021 I had to switch to Adobe's Dreamweaver to support new security protocols for publishing.
- The "header" and "footer" of each page on the website are common
and are maintained via what is called a Template, part of the Dreamweaver product.
- None of the pages are dynamically built via technologies such as
ASP, nor is any database product like SQL used. Every page is a straight HTML file. However,
I do use some JavaScript code to support features like
mobile devices, accessibility options, navigation options, and more recently the dynamic build of the pages which sort streaming service titles by year, genre, rating, etc.
- Most of the "Titles with AD" pages are programmatically
produced; that is, the web page is built by a program integrating
current title data with a base HTML template. (How do I do this? See below.)
Each program is similar but unique, typically over 1000 lines of
code per service.
- The programming language I use to build those pages and provide
a lot of website analysis and support is IBM's
Rexx Programming
Language, which I learned many years ago when I worked for IBM.
While Rexx runs on many platforms, the specific version I use is
Regina
Rexx for Windows. Why Rexx? Because I learned and
used the
language at IBM, and relearning it was less challenging than learning a new
language like Python. Rexx has a very flexible syntax and
structure.
- There are currently about 200 pages of HTML comprising this
website and well over 10,000 lines of Rexx code.
How the 'Titles With AD' Pages Are Maintained
The 20+ pages which comprise "Titles with AD" are the heart
of the website. The number of pages continues to grow each year
with the introduction of new streaming services. The individual
pages are maintained in a variety of means as noted below.
Non-Streaming Services
- The DVDs page was revised in February 2022 to consolidate all DVD listings on one page, eliminating several other pages (which had to be individually updated) in the process. The current page offers the following choices via buttons: This Year's DVDs, Last Year's DVDs, All DVDs, Kids' DVDs (rated G and PG), All DVDs by Rating, All DVDs by Genre. To find and validate NEW described DVDs, I consult the
DVDs
Release Dates website every week and copy the names of the
coming week's expected DVD releases into a spreadsheet for tracking.
Then I look up each title on Amazon and record the studio name.
If it is Sony, they will list whether or not the title has an AD
track under Product Details. It is rare that anyone else does
this. For the others, I look for an image of the back cover on
Amazon (also rare, but thank you Universal). If present, I
enlarge it and look for "English Audio
Description" or "DVS" as a language; then I mark the
title as having AD. If not present, I have to look for the
physical DVD in a local store each Tuesday (DVD release day).
If I can't find it in a store, I consult
www.worldcat.org, but this
generally only works after the day of release because the library
system has to obtain their copy first. For
those titles determined to have an AD track, I use a program I wrote
to add the key data about the title from Amazon to my DVD database (which ultimately drives the online DVD page via a JavaScript routine). Now I simply copy the updated DVDs Title database to the website where my JavaScript drives title selection.
I also list information about any new titles on the main page of the
website each week. (I was going to drop that, but some users complained...)
- The TV by Network page is built
programmatically from a database which is updated with new titles I glean from a program which analyzes
our weekly TV by Days listing
(a Google Doc to which the ADP site links). That page is manually
updated each week by my associate Timothy Wynn via a manual search of
available online listings. New in March 2022 is the feature that shows the latest updates at the top (via JavaScript).
- The Cinema Page is a listing of movies
currently playing in local cinemas with audio description available.
I create the page programmatically based on an email that Vicki Vogt
sends out weekly from Perkins School for the Blind in
Massachusetts.
- The Other Described Videos page is a catch-all
to list non-mainstream videos for free or fee that
you won't find in theaters or on major streaming services. Titles
are manually added.
Streaming Services
Ideally these pages would all be created programmatically from data supplied
by the streaming service to me, and that remains my objective! I only get some of them that way now.
When I get the data from the service, it typically arrives as an Excel
spreadsheet, and my program reads in all the data (from a .csv file), alphabetizes it, and
extracts the key information like genre and rating to create the
alphabetized index you see on the website. Please note my
discussion of title discrepancies below! Only the major services are covered below.
- Apple TV+ has a relatively small number of
described videos. I use a program I wrote to extract title information directly
from a weekly spreadsheet that Apple sends me, which fully meets my objective of "push a button" to get an updated HTML file in less than a minute! Thank you Apple.
- Disney+ has over 1000 described titles.
Disney gives me access to a Google Doc spreadsheet containing the
fields I requested, from which I programmatically build the
listing. They also offer several hundred titles with non-English AD which I list separately.
- Google Play Store lists titles for rent in a manner similar to iTunes. I capture all the titles from their "Movies with Audio Description" page as a text file and turn it into a page of HTML titles via software. Unfortunately, they don't list all their titles, and the same titles may come and go from that page, on which they seem to choose to consistently display a rotating list of just shy of 100 titles. They also don't supply year or rating.
- Hulu began offering AD in the spring of 2019
under the terms of a settlement agreement with the ACB.
Hulu is owned by Disney, and I have a contact there who maintains a database of Hulu titles for me to use in the same manner I process Disney+ titles.
- iTunes is a dream to work with! They send
me a spreadsheet every Tuesday from which I am able to directly
generate a new page of HTML of their titles with rare manual
intervention. Thank you again, Apple.
- Max began operation in late March 2021 as HBO Max after a settlement agreement with the ACB. Up until September 2024, spreadsheets of titles arrived every 2-3 weeks, but now Max is dropping back to quarterly, which is not acceptable to our users. We are negotiating with them once again...
- Netflix finally began sending me a workable spreadsheet in 2H22 which I use to generate the English AD page and the spin-off of a huge number of titles to the non-English AD page. Before this, I had to look up each title individually for 7 years!
- Paramount+ (the former CBS All Access) is
currently maintained in a semi-automated manner, as we do not yet
have a weekly data feed from them, always a future objective. It is a time-consuming process, largely manual, and very difficult to find deletions.
- Peacock is one of the newer streaming services. In January 2022, I was able to obtain a spreadsheet from NBCUniversal with all the Peacock titles. I am grateful that NBC reached out to me to set this in motion, and especially pleased that they go to the trouble of identifying missing description and give that information to me on the spreadsheet to share with you.
- Prime Video is also programmatically produced,
but it has been the most challenging, with changing formats and
information over time and the difficulty of dealing with the same
title and different video modes (like 4K) or options (like "With
Bonus Material"). I've been able to extract and include
listings for Free-With-Prime titles and Free-With-freevee TV titles
because my contact at Amazon flags them for me in the spreadsheet. In December 2022, I had to again revise my program because Amazon now tells me exactly which purchase options for each title have AD.
- Spectrum Access begin in May 2020. I
rebuild the page periodically from an updated list of titles they
send me. Since I only list titles for Spectrum (no other
details), this is an easy
process.
- Others: Within the past year or so I have added Fandango (spreadsheet), Pluto (spreadsheet, but infrequently), Roku (uncommitted to spreadsheet), Tubi (uncommitted to spreadsheet and broken at the moment), Plex (manual), ReelAbilities (uncommitted to spreadsheet), and Magellan (uncommitted to updates, though none have occurred)..
Complications
There are two types of complications that I have to deal with when
processing data from vendors programmatically.
The first is title, rating, and genre changes. Sometimes I get
a title which is incorrect in some manner. Examples:
- For Prime Video, for reasons unknown, ratings are sometimes
different for versions in different video formats (such as 4K) and
have to be overridden, or the regular ratings are incorrect. At the present time, over 500 genres are missing, and I have supplied them manually.
- I ask for and receive a single genre for each title from each
service, and sometimes their choice seems odd, so I need to override
it. For instance, a title will come in as "Historical
Fiction," where a better alternate choice to combine with other
titles would be "Drama" (which the service will list as an
alternative).
- Sometimes there are several versions of the same exact
title, and I need to force a distinction so users know which is
which. The most blatant example is Robin Hood, for which at
one time I was carrying FIVE versions! Another
example is Aladdin. In these cases, I have to catch them and
suffix them with more information, such as a year. In the case
of Robin Hood, I include the vendor, as in "Robin Hood [Disney
1973]."
- The situation really becomes complicated when I try to
consolidate titles for the Master AD List.
Minor title variations between providers creates multiple entries,
when there should only be one. I have a list of over 200 title
changes (consolidations) that my program consults for this purpose.
For example: "Tyler Perry's Single Moms Club" has to be
changed to "Tyler Perry's the Single Moms Club";
and 14+ Disneynature films have to be prefixed with "Disneynature:"
to match other services.
- Beginning in March 2023, I am entering studio names for titles without one, or with incorrect ones, into a database for use by all services in an effort to improve the quality of the listings.
The second complication is self-imposed: I like to do my users
a favor and list ADDITIONS since the last listing where it is convenient
to do so. This means I
have to track the date-of-first-entry for each title, then compare the
current list against the previous one, looking not only for additions,
but how long ago the addition occurred so I can mark it as ADDED in the
listing for a couple of weeks. Turns out that's a lot of code!
I should add that to help address problems in mismatched titles, bad years, missing or incorrect genres and ratings, about a year ago I began building what I call the Master Title Database (MTDB). Its objective is to contain correct information about every title we list. As of November 2024, it contains over 14,000 titles about a third of which have been verified as having fully correct information. It is currently in use to help make our listings as accurate as possible.
Supporting Code
There are numerous other programs I have written to support the
website. For instance, to create the Master AD list, I dynamically extract all the current titles with AD from all the HTML
pages for each service, then combine them into a consolidated listing.
In the second half of 2020, I implemented
some JavaScript to allow listing titles on pages by rating and (where
available) by year; and I created a Christmas-Themed Videos listing
which gets automatically updated year-round. In 2021, I worked on improving and generalizing title sorting to include listing only Movies or Series, for example, and simply presenting results on a single HTML page. This is all done via JavaScript - an interesting exercise to say the least! I also implemented a page which accumulates and presents only the last 10-days of updates for all the streaming and other services, plus one that lists the oldest described movies by provider or decade. In February 2022 when I updated the way DVDs are presented, I added a dynamically updated list of the latest DVDs and TV series to the main page. Finally, in September 2021 I was asked to introduce more white space into the website, which I did, along with modifying a few other things like colors and other presentation characteristics here and there.
The Other Pages
There is not a lot to say about the other 100+ pages on the site, as
they are all hand-coded content. The most dynamic page is the main
page, of course, which I update every Tuesday. (It's
Tuesday because that's the day of the week new DVDs are released.) I
review AD-related information that I receive from ADP Committee members,
users of the website, and stuff I find on my own to determine new
articles. I list any new DVDs and/or new TV shows with
description.
Periodically I update support material in the Reference section of
the main page (such as the "Audio Description: Where and How" report) or
other support material elsewhere.
Mobile and Accessibility Support, Plus How-To ...
- Accessibility support is discussed on a separate page:
Accessibility of
this Website.
- Mobile support is implemented via the method I discuss in an
article on my own home page:
Making a Website Mobile Friendly.
- Additional mobile technology is discussed in my article:
Automatic Resizing of Images for Mobile Devices.
- And while we are covering how-to stuff, you can also see my
articles on:
How to Build a Web Page Programmatically and
CSS for Images and Tables to Comply with HTML5 Standards.
Questions?
If you have any questions about how the site is put together, drop me
a line via the Webmaster link below.
Fred